我想将Voronoi区域分配给起始点。我从优美的文档中获得了灵感:https://shapely.readthedocs.io/en/stable/manual.html#voronoi-图表。但正如我们从示例中看到的,第一个点是(0,0)
,但第一个多边形有顶点(2,1)
(它描述了中心的多边形(。但是现在我失去了点和多边形之间的关系。
有没有更好的方法将多边形(即面积(与初始点联系起来?
我的完整代码:
# gdf = is a GeoDataFrame
minx, miny, maxx, maxy = gdf.total_bounds
bound = Polygon([(minx, miny),
(maxx, miny),
(maxx, maxy),
(minx, maxy)])
points = MultiPoint(gdf.geometry.to_list())
parcels = voronoi_diagram(points , envelope=bound)
areas = [p.area for p in parcels]
gdf['area'] = areas
这个关系是可以计算的(多边形中只包含一个点(,但我有很多数据(数百万点(,所以我正在寻找更好的解决方案。正如你所看到的,可能有不必要的转换,从地质标准到点和回来。
使用geovoronoi
库,函数voronoi_regions_from_coords
可以实现您想要的功能。