我创建了一个带有 Pointsgeometry列的 GeoDataFrame:
1. 创建df
df = pd.DataFrame([[51.502687, -3.538329, 2242, 1, 47],
[52.699185, -0.050122, 870, 2, 35],
[51.574387, 0.397882, 651, 3, 47],
[51.43874, 0.395791, 625, 4, 35],
[51.23965, 0.561919, 614, 5, 36]],
columns = ["lat","long","num_of_trucks","performance","num_of_routes"]
)
df
2. 创建gdf自df
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df["lat"],df["long"]),
crs={"init": "epsg:4326"})
gdf
3. 重新投影到使用米的 CRS 并计算buffer_radius每个点周围10KM
gdf.to_crs(epsg=3395,inplace=True)
#gdf.to_crs(epsg=3857,inplace=True)
#gdf.to_crs(epsg=27700,inplace=True)
gdf["buffer_radius"] = gdf.geometry.buffer(10000)
4. 将几何列更改为新buffer_radius列
gdf = gdf.set_geometry('buffer_radius')
gdf.geometry.name
Out: 'buffer_radius'
上述过程似乎产生了我想要的 GeoDataFrame和一个名为包含多边形的gdf新“几何”列。buffer_radius
然后我想绘制这些新创建的多边形,所以首先我转换了列的 CRS buffer_radius:
5. 重新投影到 CRS,让我可以生成绘图:
gdf.to_crs(epsg=4326,inplace=True)
6. 生成最终情节:
然后我尝试绘制多边形,但它返回一个空图:
gv.Polygons(gdf)
我的绘图返回空这一事实让我想知道这是否可能是投影问题?
有谁知道我在这里做错了什么?任何想法或指示将不胜感激。
谢谢
倚天杖
相关分类