UTM 轉 WGS84 (Python代碼版)
前言

本文不講原理,只分享實踐思路和代碼。基于Python語言,使用pyproj庫進行WGS 和UTM的轉換。
一、安裝pyproj
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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。