Більше

Неправильне перетворення координат pyProj


Я використовую pyProj для перетворення екстентів між двома різними географічними системами. У випадку, коли обидві мої системи однакові, я очікую, що отримаю ті ж обсяги, що і введені, але це не відбувається у наведеному нижче випадку:

імпортувати pyproj inProj = pyproj.Proj ("+init = EPSG: {0}". формат (3857)) # Mercator outProj = pyproj.Proj ("+init = EPSG: {0}". формат (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.

Якщо я зміню свої системи координат

імпортувати pyproj inProj = pyproj.Proj ("+init = EPSG: {0}". формат (3857)) # Mercator outProj = pyproj.Proj ("+init = EPSG: {0}". формат (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 трансформації printx print (inProj, outProj, x1, y1) (-179.99998854118687, 85.08398750388278) # з координатами x, y точкового точкового друку (inProj, outProj, x2, y2) (-13.178719028497799, 61.16289280460126)

Управління за допомогою GDAL (кулінарна книга Python GDAL/OGR: Прогнози)

from 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) print transf. : 2] (-179.99998854118684, 85.05112976833757) # з координатами x, y точки y надрукувати друк transf.TransformPoint (x2, y2) [: 2] (-13.178719028497795, 61.000416666720845)

Якщо ви хочете використовувати списки координат:

x = (-20037507.0672, -1467048.29156) y = (20037509.6184, 8625918.8737) для i, j у zip (x, y): друк трансформації (inProj, outProj, i, j) (-179.99998854118687, 85.08398750388278.1878878) ))


Перегляньте відео: импорт точек с координатами Широта-Долгота и WGS-84 (Жовтень 2021).