pyproj - Как определить начальные точки любой зоны UTM
Я пытаюсь преобразовать систему X,Y в широту и долготу, и кажется, что многие люди рекомендуют pyproj
В своем примере кода они используют p1 = Proj(init='epsg:26915')
а также p2 = Proj(init='epsg:26715')
Но это для UTM Zone15. Вот мой пример x = 492893.53, y= 5458938.38 и мой пример кода для UTM Zone10N:
p1 = Proj(init='epsg:26910')
p2 = Proj(init='epsg:26710')
x,y = 492893.53, 5458938.38
x2,y2 = transform(p1, p2, x, y)
На выходе x2, y2 нет правильной широты и долготы
Я попытался проверить значение epsg для UTM Zone 10N, есть 3 версии онлайн: версия 1, версия 2, версия 3 Я перепробовал все из них, ни одна из них не работает.
Что на самом деле означает p1, p2 и как я могу найти значения p1, p2 для любой зоны UTM?
1 ответ
Если вы конвертируете в lat-long, то вам нужна проекция для вашей системы координат lat-long. В большинстве случаев это широта WGS84, используемая GPS, это код EPSG 4326.
import pyproj
ll = pyproj.Proj(init="epsg:4326")
тогда вам нужен прогноз от ваших точек данных. В этом случае вы говорите, что это UTM10, но вы не говорите, какой из вариантов, но нет возможности узнать по координатам. Сначала давайте попробуем версию WGS84:
>>> utm10 = pyproj.Proj(init="epsg:32610")
>>> pyproj.transform(utm10, ll, 492893.53, 5458938.38)
(-123.0977143330712, 49.28315708900033)
Это выглядит как возможный длинный лат (на самом деле (-123, 49) длинный лат) для действительной области UTM10. Поэтому я не уверен, что означает "ни один из них не работает" в вашем вопросе.
Два других кода проекции дают близкие или идентичные результаты. Какой из них вы используете, не может быть определено только из числа - вы должны спросить, кто бы ни предоставил номера, в какой проекции они находятся.
Вы даже не можете определить, в какой зоне UTM находятся точки, учитывая ваши координаты x и y. Это может быть любая зона на планете, поскольку числа x и y дублируются для каждой зоны в диапазоне долготы каждой зоны.