gpt4 book ai didi

Python地理空间坐标格式转换

转载 作者:行者123 更新时间:2023-12-05 09:19:10 27 4
gpt4 key购买 nike

我有一个包含 6 列坐标对的数据框:

Degrees|Minutes|Seconds

(纬度和经度)。这称为 NAD83 格式

我想将它们转换为只有 2 列的十进制格式的新数据框,称为 NAD27

我通常使用的库 geopy 几乎支持所有格式,因此实际上没有专门的转换函数。我浏览了此处的文档以确保: https://geopy.readthedocs.io/en/1.10.0/

python有没有其他方法转换成NAD27?

最佳答案

假设您的 DataFrame df 包含列 lonDlonMlonSlatDlatMlatS。然后下面应该工作,在内部使用 geopandasshapelypyproj

import geopandas as gpd
import numpy as np
from shapely.geometry import Point

def dms_to_dec(d, m, s):
sign = 1 - 2 * np.signbit(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'})

关于Python地理空间坐标格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41820969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com