أكثر

سلسلة Proj4 لـ NAD83 (2011) / لويزيانا الجنوبية (ftUS)


أحاول تحويل إحداثيات NAD83 (2011) / Louisiana South (ftUS) على خرائط المسح إلى خطوط الطول / العرض باستخدام Proj4 في Python.

يمكن أن تشير لي أحدهم في الاتجاه الصحيح؟

لقد تحققت من خطوط العرض / الطول على موقع earthpoint.us. يبدو أن تحويلهم ينجح. هذا هو كود python الخاص بي الذي يحتوي على سلسلة Proj4.

===============

من pyproj import Proj #EPSG: 6479 من epsg-registry.org southla = '+ proj = lcc + lat_1 = 30.7 + lat_2 = 29.3 + lat_0 = 28.5 + lon_0 = -91.33333333333333 + x_0 = 3280833.3333 + y_0 = 0 + ellps = GRS80 + المسند = NAD83 + towgs84 = 0،0،0،0،0،0،0 + الوحدات = us-ft + no_defs 'p = Proj (southla) lonlat = p (3037416.890، 709211.549، معكوس = صحيح) طباعة "٪ s،٪ s "٪ (lonlat [1]، lonlat [0])

نظرًا لعدم وجود دعم EPSG: 6479 (NAD83 (2011) / Louisiana South (ftUS)) في PROJ4 (انظر إلى تعليق mkennedy) سأوضح المشكلة مع EPSG: 3452، NAD83 / Louisiana South (ftUS) لأن المشكلة هي نفسها ، وحدات الإسقاط.

الحل مع بيبروج

استيراد pyproj southla = pyproj.Proj ('+ proj = lcc + lat_1 = 30.7 + lat_2 = 29.3 + lat_0 = 28.5 + lon_0 = -91.33333333333333 + x_0 = 3280833.3333 + y_0 = 0 + ellps = GRS80 + datum = NAD83 + towgs84 ، 0،0،0،0،0،0 + وحدات = us-ft + no_defs ') # or southla = pyproj.Proj (init =' epsg: 3452 ') wgs84 = pyproj.Proj (' + proj = longlat + ellps = WGS84 + datum = WGS84 + no_defs ') longlat = pyproj.transform (southla، wgs84،3037416.890، 709211.549) طباعة longlat (-93.986162555568697 ، 34.865093872789771)

نتيجة

حل مع GDAL

من osgeo import osr southla = osr.SpatialReference () southla.ImportFromEPSG (3452) wgs84 = osr.SpatialReference () wgs84.ImportFromEPSG (4326) x = 3037416.890 y = 709211.549 نتيجة طباعة TransformPoint (س ، ص) (-92.105819299234454 ، 30.447920720765676 ، 0.0)

نتيجة

لماذا الاختلاف؟

نظرًا لأن PyProj تفترض أن إحداثياتك بالأمتار وأن وحدة EPSG: 3452 (أو EPSG: 6479) هي "قدم الاستقصاء الأمريكية" (الوحدات = us-ft) -> انظر إلى تحويل إحداثيات X و Y إلى خط العرض / الطول باستخدام pyproj ويعيد Proj.4 الإحداثيات الخاطئة

save_units = صحيحإصلاح المشكلة (يغير pyproj بصمت '+ الوحدات =' المعلمة)

foot_proj = pyproj.Proj (init = "epsg: 3452"، save_units = True) longlat = pyproj.transform (foot_proj، wgs84،3037416.890، 709211.549) >>> longlat print longlat (-92.105819299234469، 30.447920720765683)

نتيجة


تريد سلاسل PROJ.4 دائمًا الاتجاه الخاطئ للشرق (x_0) والشمال الخاطئ (y_0) بالأمتار ، بغض النظر عن وحدات النظام المرجعي للإحداثيات. قم بتغيير + x_0 إلى 1000000.0 وستحصل على النتائج التي تريدها.


تقدم QGIS سلاسل المشاريع هذه لـ NAD83 Louisiana South (ftUS):

EPSG: 3452 EPSG: 3457 EPSG: 3553 + proj = lcc + lat_1 = 30.7 + lat_2 = 29.3 + lat_0 = 28.5 + lon_0 = -91.33333333333333 + x_0 = 999999.9999898402 + y_0 = 0 + ellps = GRS80 + towgs84 = 0،0،0 ، 0،0،0،0 + الوحدات = us-ft + no_defs EPSG: 102282 (من ESRI) + proj = lcc + lat_1 = 29.3 + lat_2 = 30.7 + lat_0 = 28.5 + lon_0 = -91.33333333333333 + x_0 = 1000000 + y_0 = 0 + ellps = GRS80 + وحدات = m + no_defs EPSG: 102682 (من ESRI) + proj = lcc + lat_1 = 29.3 + lat_2 = 30.7 + lat_0 = 28.5 + lon_0 = -91.33333333333333 + x_0 = 1000000 + y_0 = 0 + datum = NAD83 + الوحدات = us-ft + no_defs

لم يتم دمج الإطار الزمني NAD83 (2011) في QGIS بعد.


شاهد الفيديو: Change Projection - Coordinate System in ArcMap (شهر اكتوبر 2021).