我有一個包含6列座標對的數據框:度數|分鐘|秒(對於經度和緯度)。這就是所謂的NAD83格式。我想將它們轉換爲僅有2列十進制格式的新數據幀,即NAD27。Python地理空間座標格式轉換
我通常使用的庫,geopy幾乎支持所有格式,所以實際上並沒有專門的轉換函數。我在這裏查看文檔以確保: https://geopy.readthedocs.io/en/1.10.0/
python是否有任何其他方式轉換爲NAD27?
感謝您閱讀
我有一個包含6列座標對的數據框:度數|分鐘|秒(對於經度和緯度)。這就是所謂的NAD83格式。我想將它們轉換爲僅有2列十進制格式的新數據幀,即NAD27。Python地理空間座標格式轉換
我通常使用的庫,geopy幾乎支持所有格式,所以實際上並沒有專門的轉換函數。我在這裏查看文檔以確保: https://geopy.readthedocs.io/en/1.10.0/
python是否有任何其他方式轉換爲NAD27?
感謝您閱讀
我們假設你的數據幀df
包含列lonD
,lonM
,lonS
,latD
,latM
和latS
。 然後在內部使用geopandas
,shapely
和pyproj
。
import geopandas as gpd
import numpy as np
from shapely.geometry import Point
def dms_to_dec(d, m, s):
sign = np.sign(d)
return d + sign * m/60 + sign * s/3600
points = df.apply(lambda row: Point(dms_to_dec(*row[['lonD', 'lonM', 'lonS']]),
dms_to_dec(*row[['latD', 'latM', 'latS']])),
axis=1)
gdf_nad83 = gpd.GeoDataFrame(df, geometry=points, crs={'init': 'EPSG:4269'})
gdf_nad27 = gdf_nad83.to_crs({'init': 'EPSG:4267'})
哇從頭開始轉換,你看起來很容易!謝謝,讓我試試看。 –
嘗試通過pip進行勻稱安裝時,我總是收到錯誤。這很奇怪。我將看到關於查找.whl文件並以這種方式進行安裝。 –
茶杯,身材勻稱,gdal/ogr絕對不是最便利的套餐。使用Anaconda通常使它更容易,我建議嘗試一下。 –
您確定要進行NAD83-> NAD27轉換,或只是希望將DMS轉換爲十進制表示嗎?一個數據(NAD)確定了座標應該表示的方式(也就是十進制或DMS)。 –
另外,您確定NAD83或NAD27數據是您想使用的數據嗎?更典型的選擇是GPS所使用的WGS84。 –
我80%確定我需要NAD27,我必須通過其他幾個庫檢查他們接受的內容。到目前爲止,似乎NAD27是要走的路。 –