UTM 转 WGS84 (Python代码版)

网友投稿 1941 2022-05-30

前言

本文不讲原理,只分享实践思路和代码。基于Python语言,使用pyproj库进行WGS 和UTM的转换。

一、安装pyproj

UTM 转 WGS84 (Python代码版)

pip install pyproj

二、示例代码

''' UTM的x,y 转 WGS84的经纬度 ''' from pyproj import Transformer # 参数1:坐标系WKID 广州市 WGS_1984_UTM_Zone_49N 对应 32649 # 参数2:WGS84地理坐标系统 对应 4326 transformer = Transformer.from_crs("epsg:32649", "epsg:4326") x = 766544.7801555358 y = 2517564.4969607797 lat, lon = transformer.transform(x, y) print("x:", x, "y:", y) print("lat:", lat, "lon:", lon)

输出:

x: 766544.7801555358       y: 2517564.4969607797

lat: 22.744435950000007  lon: 113.5954174

三、算法效率

这里计算1s内,能运行多少次转换,以UTM 转 WGS84为例子。

''' 计算1s内,能运行多少次转换(UTM的x,y 转 WGS84的经纬度) ''' from pyproj import Transformer import time # 参数1:坐标系WKID 广州市 WGS_1984_UTM_Zone_49N 对应 32649 # 参数2:WGS84地理坐标系统 对应 4326 transformer = Transformer.from_crs("epsg:32649", "epsg:4326") sum_t=0.0 #花费的总时间 i = 0 # 计算1s内,能运行多少次转换。 while sum_t < 1: time_start = time.time() # 开始计时 print("i:", i) i = i + 1 ########### x = 766544.7801555358 y = 2517564.4969607797 lat, lon = transformer.transform(x, y) print("x:", x, "y:", y) print("lat:", lat, "lon:", lon) ########### time_end = time.time() # 结束计时 sum_t=(time_end - time_start)+sum_t #运行所花时间 print('time cost', sum_t, 's') print("\n")

这是我电脑的结果,1s能转换2489次左右。

四、查询坐标系WKID

可以从以下两个网站进行查询:

地理坐标系WKID:https://developers.arcgis.com/javascript/3/jshelp/gcs.htm

投影坐标系WKID:https://developers.arcgis.com/javascript/3/jshelp/pcs.htm

比如,查询广州市的,先查广州市的UTM区号WGS_1984_UTM_Zone_49N;然后在官方网页,用Ctrl + F搜索一下,能找到WGS_1984_UTM_Zone_49N 对应 32649

五、pyproj官网文档学习

https://www.osgeo.cn/pyproj/examples.html

参考:https://bbs.huaweicloud.com/blogs/article?id=5e43167ee0724d4e961ecfab6a554cdc

本文只提供参考学习,谢谢。

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:四种跨浏览器窗口通讯
下一篇:Django的SerializerMethodField
相关文章