gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:24:29 25 4
gpt4 key购买 nike

我创建了一个带有 Points geometry 列的 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。从 df

创建 gdf
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df["lat"],df["long"]),
crs={"init": "epsg:4326"})
gdf

3。重新投影到使用米的 CRS 并计算每个点周围 10KM buffer_radius

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 的新“几何”列,其中包含多边形。

然后我想绘制这些新创建的多边形,所以首先我转换了 buffer_radius 列的 CRS:

5。重新投影到允许我制作情节的 CRS:

gdf.to_crs(epsg=4326,inplace=True)

6。制作最终情节:

然后我尝试绘制多边形,但它返回了一个空图:

gv.Polygons(gdf)

enter image description here

我的情节返回空的事实让我想知道这是否可能是投影问题?

有人知道我在这里做错了什么吗?任何想法或指示将不胜感激。

谢谢

最佳答案

这显然是 geoviews 的问题,它没有使用事件几何列,而是使用名为 geometry 的默认列。如果您只是用缓冲区覆盖几何列 (gdf["geometry"] = gdf.geometry.buffer(10000)) 或确保要绘制的数据框具有您想要的几何图形专栏,它应该可以工作。

关于python - 生成缓冲区半径多边形 - 可能的投影问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64197696/

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