UTM坐标转GPS方法分享
最近第一次接触到了UTM坐标值,项目需求要将其转换成GPS坐标,在网上找了将近一天的资源(ps:好多帖子只有几行代码,用到的库、转换原理什么的都没有说一下),这里分享下自己的调研结果,也欢迎大家补充。
1. UTM简介
UTM的介绍网上有很多,不再赘述,这里主要讲一下UTM的坐标表示方法,方便大家理解转换过程。该部分主要参考了 这里。
UTM坐标的主要信息包含:经度分区(1-60)、东向位置、纬度分区(C-X,不包含I、O)、北向位置。其位置定义方式如下:
1)东向位置
UTM坐标系规定每个经度区均有一条中心经线,如11区的经度范围为120W-114W,则其中心经线为117W(各经度区的中心经线请参考: Utm Zones)。中心经线以东的点到中心经线距离为正,中心经线以西的点到中心经线距离为负。则某点的东向位置即为该点到中心经线的距离加500000m。例如: 中心经线以东8m的点的东向位置为:500000 + 8 = 500008m中心经线以西350m的点的东向位置为:500000 - 350 = 499650m。
2) 北向位置
北半球北向位置即为该点到赤道的距离。南半球北向位置为10000000m减去该点到赤道的距离。例如:赤道以北34m的点的北向位置为:34m。赤道以南34m的点的南向位置为:10000000 - 34 = 9999966m,所有点的北向位置也是正数。
2. UTM转GPS网站
Online Coordinates Converter网站提供了包含WGS84及UTM在内的多种坐标系在线转换功能,可以用作测试代码转换是否准确的参考标准。
3. 代码实现UTM转GPS
在网上找到了utm功能包,这个包是python写的,提供了UTM和GPS互相转换的接口函数,在路径utm/utm/conversion.py下,from_latlon()和to_latlon()函数分别实现GPS到UTM和UTM到GPS的转换,函数里有详细的转换步骤,我直接在conversion.py脚本的最后加了下面几行代码,然后运行这个脚本就行了(虽然有点莽,但是可行)。
if __name__ =='__main__':
utm_Point = numpy.loadtxt('保存UTM坐标的文本路径.txt')
print (len(utm_Point))
output=open('保存转换后GPS坐标的文本路径.txt','w+')
for i