أكثر

PyProj تنسيق التحويل غير صحيح

PyProj تنسيق التحويل غير صحيح


أنا أستخدم pyProj لتحويل النطاقات بين نظامين جغرافيين مختلفين. في حالة تماثل كلا النظامين لدي ، أتوقع استعادة نفس النطاقات التي تم إدخالها ولكن هذا لا يحدث للحالة المذكورة أدناه:

import pyproj inProj = pyproj.Proj ("+ init = EPSG: {0}". format (3857)) # Mercator outProj = pyproj.Proj ("+ init = EPSG: {0}". format (3857)) x = (-20037507.0672، 20037509.6184) y = (-1467048.29156، 8625918.8737) طباعة pyproj.transform (inProj، outProj، x، y)

خرج الناتج ليكون:((-20037507.0672, -20037507.067178484), (-1467048.2915600014, 8625918.873699998))

وهو غير صحيح لأن نطاقات X-Coordinate الخاصة بي هي نفسها لـ xMax و xMin.

إذا قمت بتغيير أنظمة التنسيق الخاصة بي

import pyproj inProj = pyproj.Proj ("+ init = EPSG: {0}". format (3857)) # Mercator outProj = pyproj.Proj ("+ init = EPSG: {0}". format (4326)) # WGS84 x = (-20037507.0672، 20037509.6184) y = (-1467048.29156، 8625918.8737) طباعة pyproj.transform (inProj، outProj، x، y)

خرج تنسيق X الخاص بي ليكون:(-179.99998854118687, -179.99998854099357)

وهو مرة أخرى غير صحيح. هل هذا بسبب مشكلة في المجال في pyProj أم أن هناك أي سبب آخر؟


لقد أخطأت في معاملات pyproj

من pyproj import Proj ، تحويل inProj = Proj ("+ init = EPSG: 3857")) outProj = Proj ("+ init = EPSG: 4326") x1، y1 = (-20037507.0672، 20037509.6184) x2، y2 = (-1467048.29156 ، 8625918.8737) # مع إحداثيات x، y لتحويل طباعة النقطة x (inProj، outProj، x1، y1) (-179.99998854118687، 85.08398750388278) # مع إحداثيات x، y لتحويل الطباعة النقطية (inProj، outProj، x2، y2) (-13.178719028497799، 61.16289280460126)

التحكم باستخدام GDAL (كتاب طبخ Python GDAL / OGR: الإسقاطات)

من osgeo import osr from_srs = osr.SpatialReference () from_srs.ImportFromEPSG (3857) to_srs = osr.SpatialReference () to_srs.ImportFromEPSG (4326) transf = osr.CoordinateTransformation (from_srs، to_srs) print1 (transf) : 2] (-179.99998854118684، 85.05112976833757) # بإحداثيات x، y لنقل الطباعة بالنقطة y. TransformPoint (x2، y2) [: 2] (-13.178719028497795، 61.000416666720845)

إذا كنت تريد استخدام قوائم الإحداثيات:

x = (-20037507.0672، -1467048.29156) y = (20037509.6184، 8625918.8737) لـ i، j in zip (x، y): تحويل الطباعة (inProj، outProj، i، j) (-179.99998854118687، 85.08398750388278190) (-1368960 )