-1

我正在尝试将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 个版本:版本 1版本 2版本 3 我尝试了所有版本,但都不起作用。

p1, p2 的真正含义是什么?如何找到任何 UTM 区域的 p1, p2 值?

4

1 回答 1

2

如果要转换为经纬度,则需要经纬度坐标系的投影。在大多数情况下,这是 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 的有效区域,这看起来像是一个可能的 lat-long(实际上 (-123, 49) 是 long-lat)。所以我不确定在你的问题中“它们都不起作用”是什么意思。

其他两个投影代码产生接近或相同的结果。仅凭数字无法确定您使用的是哪一个——您必须询问提供数字的人,他们在哪个投影中。

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

于 2017-02-27T23:06:55.737 回答