WGS84 与 UTM 互转(Python代码版)
Posted 一颗小树x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WGS84 与 UTM 互转(Python代码版)相关的知识,希望对你有一定的参考价值。
前言
本文不讲原理,只分享实践思路和代码。基于Python语言,使用pyproj库进行WGS 和UTM的转换。
目录
一、安装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代码转换的结果:
三、UTM 转 WGS84-示例代码
'''
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://blog.csdn.net/tap880507/article/details/111608529
https://blog.csdn.net/ywcpig/article/details/107516253
本文只提供参考学习,谢谢。
以上是关于WGS84 与 UTM 互转(Python代码版)的主要内容,如果未能解决你的问题,请参考以下文章
GlobalMapper精品教程012:WGS84转2000地理坐标系与平面坐标系
windows下python3.5安装setuptools以及百度坐标系(bd-09)火星坐标系(国测局坐标系gcj02)WGS84坐标系之间的坐标互转python实现以及python中exce