pyproj - 如何确定任何 UTM 区域的初始点

pyproj - How to decide the initial points of any UTM zone

我正在尝试将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不是正确的经纬度

我试图检查UTM Zone 10N的epsg值,在线有3个版本:version 1, version 2, version 3 我尝试了所有方法,none 有效。

p1、p2 的真正含义是什么?如何找到任何 UTM 带的 p1、p2 的值?

如果您要转换为经纬度坐标系,那么您需要经纬度坐标系的投影。在大多数情况下,这是 GPS 使用的 WGS84 Lat-long,即 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)

这看起来像是 UTM10 有效区域的可能经纬度(实际上 (-123, 49) 是经纬度)。所以我不确定 "none of them work" 在你的问题中是什么意思。

其他两个投影代码产生接近或相同的结果。您使用哪一个 不能 仅根据数字来确定 - 您必须询问提供数字的人他们在什么投影中。

根据您的 x 和 y 坐标,您甚至无法确定这些点位于哪个 UTM 区域。它们可以是地球上的任何区域,因为 x 和 y 数字对于每个区域的经度带中的每个区域都是重复的。