أكثر

التحويل الصحيح (عدم الإسقاط؟) من مخروطي لامبرت امتثالي؟

التحويل الصحيح (عدم الإسقاط؟) من مخروطي لامبرت امتثالي؟


لقد بدأت بنشر https://stackoverflow.com/questions/6963991/how-can-i-transform-the-coordinates-of-a-shapefile

باختصار ، عثرت على ملف أشكال هنا ، وأريد أن أكون قادرًا على تحويله إلى إحداثيات خطوط الطول / العرض (الجيوديسية؟) التي يمكنني تخزينها في قاعدة بيانات PostGIS الخاصة بي. أواجه مشكلة في العمل مع مكتبات Ruby ، ​​لكن هذه مشكلة منفصلة. أولاً ، أحتاج إلى فهم الإسقاط بشكل صحيح.

في ملف zip المرتبط ، يوجد ملف .prj يحتوي على ما يلي (إنه سطر واحد فقط ، لكنني فصلته لسهولة القراءة):

PROJCS ["NAD_1983_StatePlane_California_III_FIPS_0403_Feet"، GEOGCS ["GCS_North_American_1983"، DATUM ["D_North_American_1983"، SPHEROID ["GRS_1980"، "GRS_1980"، 6378137.0،291 ["Lambert_Conformal_Conic"]، PARAMETER ["False_Easting"، 6561666.666666666]، PARAMETER ["False_Northing "_2، 1640416.666666667]، PARAMETER [" Central_Meridian "، - 120،33.4]، PARAMETER [" Standard_Parallel_366] ]، PARAMETER ["Latitude_Of_Origin"، 36.5]، UNIT ["Foot_US"، 0.3048006096012192]

لم أتمكن من العثور على الأدوات التي تترجم ملفات .prj إلى سلسلة إسقاط ، لذلك استخدمت هذا كمرجع وتوصلت إلى:

+ proj = lcc + datum = NAD83 + ellps = GRS80 + lat_1 = 37.06666666666667 + lat_2 = 38.43333333333333 + lat_0 = 36.5 + lon_0 = -120.5 + x_0 = 6561666.666666666 + y_0 = 1640416.66666666667 + وحدات = أخضر

لقد علمت أن النقاط في ملف الأشكال هذا يجب أن تتوافق مع المواقع في سان فرانسيسكو ، حتى أتمكن من اختبار عملي:

cs2cs -f "٪ .8f" + proj = lcc + datum = NAD83 + ellps = GRS80 + lat_1 = 37.06666666666667 + lat_2 = 38.43333333333333 + lat_0 = 36.5 + lon_0 = -120.5 + x_0 = 6561666.6666666664 + y_0 = 16666666664 ft + pm = Greenwich + no_defs + to + proj = lonlat + datum = WGS84 + ellps = WGS84 6011287.4999795845 2100857.2499904726 -164.18117482 17.72087079 0.00000000

هذا حوالي 1000 كيلومتر غرب هاواي ، لذا من الواضح أن هذا ليس صحيحًا. لقد جربت العديد من الأشياء المختلفة ، لكن أقرب ما حصلت عليه كان عن طريق تجريد + الوحدات = us-ft.

cs2cs -f "٪ .8f" + proj = lcc + datum = NAD83 + ellps = GRS80 + lat_1 = 37.06666666666667 + lat_2 = 38.43333333333333 + lat_0 = 36.5 + lon_0 = -120.5 + x_0 = 6561666.6666666664 أخضر no_defs + to + proj = lonlat + datum = WGS84 + ellps = WGS84 6011287.4999795845 2100857.2499904726 -126.98864867 40.47509388 0.00000000

هذا حوالي 500 كيلومتر شمال غرب سان فرانسيسكو.

ما الذي افتقده هنا؟
إذا قمت باستيراد ملف الشكل إلى ArcGIS Explorer عبر الإنترنت ، فإنه يفهمه تمامًا.


أعتقد أن السلسلة الصحيحة لهذا الإسقاط هي:

+ proj = lcc + lat_1 = 37.06666666666667 + lat_2 = 38.43333333333333 + lat_0 = 36.5 + lon_0 = -120.5 + x_0 = 2000000 + y_0 = 500000.0000000002 + ellps = GRS80 + المسند = NAD83 + to_meter = 0.304800 no_d12

انظر: http://spatialreference.org/ref/esri/102643/


تنسيق الأنظمة المرجعية والتحويلات أمر معقد ومصدر للمشاكل في الممارسة العملية.

لست على علم بأي أداة تحول WKT إلى proj4. كتلميح عام ، ابحث عن أعمال مفاتيح PROJCS على موقع Spatial Reference (هذه هي الطريقة التي وجد بها nhopton إجابته) للعثور على تلميحات حول الإسقاط الخاص بك.


بناءً على طلب EPSG31468 ، إليك نص برمجي Python بسيط للغاية للتحويل من أي تنسيق عرض تتم معالجته بواسطة GDAL إلى سلاسل Proj4:

#! / usr / bin / python # تم إصدار هذا الرمز في المجال العام ، ولكن قد يخضع لترخيص (تراخيص) مكتبات الجهات الخارجية التي تم استخدامها. # لا يوجد على الإطلاق أي ضمان أو ضمان الملاءمة للغرض. استيراد sys استيراد osgeo.osr كـ osr projectionString = sys.stdin.read () sr = osr.SpatialReference () sr.SetFromUserInput (projectionString) proj4 = sr.ExportToProj4 () if proj4 == "": print ("تعذر التحويل سلسلة الإدخال. ") else: print (proj4)

لا يوجد قدر كبير من معالجة الأخطاء ، ولكنه يعمل مع السلاسل التي جربتها بها.

لاستخدامه ، اكتب شيئًا مثل:

$ cat larrysWKT.txt | toproj4.py + proj = lcc + lat_1 = 37.06666666666667 + lat_2 = 38.43333333333333 + lat_0 = 36.5 + lon_0 = -120.5 + x_0 = 2000000 + y_0 = 500000.0000000001 + ellps = GRS80 + الوحدات = us-ft + no_defs

او حتى:

صدى $ EPSG: 27700 | toproj4.py + proj = tmerc + lat_0 = 49 + lon_0 = -2 + k = 0.9996012717 + x_0 = 400000 + y_0 = -100000 + ellps = متجدد الهواء + السحب 84 = 446.448، -125.157،542.06،0.15،0.247،0.842، - 20.489 + وحدة = م + لا توجد بيانات

بالتساوي ، سيحتاج مستخدمو Windows إلى القيام بذلك:

c: > اكتب larrysWKT.txt | python toproj4.py c: > echo EPSG: 27700 | python toproj4.py

بطبيعة الحال ، ستحتاج إلى تثبيت Python ، بالإضافة إلى GDAL / OGR وروابط Python المقابلة. يجب أن يتمكن مستخدمو Linux من الحصول على هذا من مستودعات الحزم الخاصة بهم ، وأعتقد أن مستخدمي Windows يمكنهم تثبيته من مثبت OSGeo4W.


شاهد الفيديو: اعراض الاجهاض في الشهر الثاني. علامات الاجهاض في الشهر الثاني وسقوط الجنين. اسباب الاجهاض