Python:如何将Voronoi单元扩展到几何体的边界?

2024-10-03 21:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个geopandas数据帧dfMdcentersdfMd由多边形构成,而centers由点构成Here指向文件的链接

f,ax=plt.subplots()
dfMd.plot(ax=ax, column='volume')
centers.plot(ax=ax, color='red')

enter image description here

我想生成扩展到整个几何体的点的Voronoi流苏。这就是我正在做的:

from shapely.geometry import mapping
g = [i for i in centers.geometry]
coords = []
for i in range(0, len(g)):
    coords.append(mapping(g[i])["coordinates"]) # for first feature/row

from libpysal.cg.voronoi  import voronoi, voronoi_frames

regions, vertices = voronoi(coords)
region_df, point_df = voronoi_frames(coords)


fig, ax = plt.subplots()
region_df.plot(ax=ax, color='white',edgecolor='black', lw=3)
dfMd.plot(ax=ax, column='volume',alpha=0.1)
point_df.plot(ax=ax, color='red')

fig, ax = plt.subplots()
region_df.plot(ax=ax, color='white',edgecolor='black', lw=3)
dfMd.plot(ax=ax, column='volume',alpha=0.1)
point_df.plot(ax=ax, color='red')

enter image description here

如何将Voronoi区域扩展到我的dfMd的外部边界


Tags: dfforplotcolumnpltredcoordsax
1条回答
网友
1楼 · 发布于 2024-10-03 21:33:06

您需要在voronoi_frames()内有一个选项clip=box()。相关代码如下

from shapely.geometry import box

region_df, point_df = voronoi_frames(coords, clip=box(-4.2, 40.15, -3.0, 40.85))

voronoi

相关问题 更多 >