为了账号安全,请及时绑定邮箱和手机立即绑定

生成缓冲区半径多边形 - 可能的投影问题

生成缓冲区半径多边形 - 可能的投影问题

ibeautiful 2023-10-06 11:02:50
我创建了一个带有 Pointsgeometry列的 GeoDataFrame:1. 创建dfdf = 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自dfgdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df["lat"],df["long"]),                                                                 crs={"init": "epsg:4326"})gdf3. 重新投影到使用米的 CRS 并计算buffer_radius每个点周围10KMgdf.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.nameOut: 'buffer_radius'上述过程似乎产生了我想要的 GeoDataFrame和一个名为包含多边形的gdf新“几何”列。buffer_radius然后我想绘制这些新创建的多边形,所以首先我转换了列的 CRS buffer_radius:5. 重新投影到 CRS,让我可以生成绘图:gdf.to_crs(epsg=4326,inplace=True)6. 生成最终情节:然后我尝试绘制多边形,但它返回一个空图:gv.Polygons(gdf)我的绘图返回空这一事实让我想知道这是否可能是投影问题?有谁知道我在这里做错了什么?任何想法或指示将不胜感激。谢谢
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

这显然是一个问题geoviews,它不使用活动几何列,而是使用名为 的默认列geometry。如果您只是使用缓冲区 ( gdf["geometry"] = gdf.geometry.buffer(10000)) 覆盖几何列,或者确保要绘制的数据帧在几何列中具有您想要的几何图形,那么它应该可以工作。



查看完整回答
反对 回复 2023-10-06
  • 1 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号