WGS84 与 UTM 互转(Python代码版) |
您所在的位置:网站首页 › wgs84坐标系的单位 › WGS84 与 UTM 互转(Python代码版) |
前言
本文不讲原理,只分享实践思路和代码。基于Python语言,使用pyproj库进行WGS 和UTM的转换。 目录 一、安装pyproj 二、WGS84 转 UTM-示例代码 三、UTM 转 WGS84-示例代码 四、算法效率 三、查询坐标系WKID 四、pyproj官网文档学习 一、安装pyproj pip install pyproj 二、WGS84 转 UTM-示例代码 ''' WGS84的经纬度 转 UTM的x,y ''' from pyproj import Transformer # 参数1:WGS84地理坐标系统 对应 4326 # 参数2:坐标系WKID 广州市 WGS_1984_UTM_Zone_49N 对应 32649 transformer = Transformer.from_crs("epsg:4326", "epsg:32649") lat = 22.744435950 lon = 113.595417400 x, y = transformer.transform(lat, lon) print("x:", x, "y:", y)输出结果: x: 766544.7801555358 y: 2517564.4969607797 对比结果精准性,Apollo6.0代码转换的结果: 输出: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: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 https://www.osgeo.cn/pyproj/examples.html 参考:https://blog.csdn.net/tap880507/article/details/111608529 UTM坐标和WGS84坐标(如何转换? https://blog.csdn.net/ywcpig/article/details/107516253 本文只提供参考学习,谢谢。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |