即使我的问题How to create an accurate buffer of 5 miles around a coordinate in python?有一个答案,但我无法代表它。
我有一系列经纬度,经度浮动的格式的位置,并且需要以米为单位计算buffer
。
这些地点来自葡萄牙,所以我在这里拿到了“ {right}” crs
:https://epsg.io/3763,即epsg:3763
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['latitude'], df['longitude']),
crs={'init' :'epsg:3763'})
gdf['radius'] = gdf.geometry.buffer(50)
根据上面的答案,应该给我指定半径(以米为单位)周围的多边形,但实际上返回的半径为度。
我知道,这应该很简单,但是我仍然很困惑。谢谢!
答案 0 :(得分:1)
您在数据框中的点是经/纬度。您需要使用lat / lon crs初始化数据帧,然后重新投影。
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['latitude'], df['longitude']),
crs={'init' :'epsg:4326'})
gdf = gdf.to_crs(epsg=3763)
gdf['radius'] = gdf.geometry.buffer(50)