[英]Group by and combine intersecting/overlapping geometries in geopandas
我有一个 geopandas dataframe,它有几行重叠的多边形几何图形以及一个索引(唯一且连续)。 我想将重叠的多边形几何合并成一个多多边形并保持各个重叠多边形的相应最小索引。
例如:地理数据框如下:
假设索引为 10233、10235、10238 的多边形几何重叠。 我想要一个单行,这些几何合并在一个多多边形中(而不是 3 个单独的几何),并且相应的索引应该是 10233 的 3 行的最小索引。我想对整个地理数据框执行此操作
我尝试使用 geopandas 的溶解 function:
gdf = gdf.dissolve(by = 'index').reset_index()
这不会做任何事情,因为“索引”是唯一的。 我也试过:
gdf = gdf.dissolve().reset_index()
但是,这会将所有几何图形组合成单行多多边形
我想这就是你的想法:
import geopandas as gpd
# load your geodataframe ..
# self join on geodataframe to get all polygon intersections
intersects = gdf.sjoin(gdf, how="left", predicate="intersects")
# dissolve intersections on right index indices using the minimum value
intersects_diss = intersects.dissolve("id_right",aggfunc="min")
# dissolve again on left index using minimum
intersects_diss = intersects_diss.reset_index().dissolve("id_left",aggfunc="min")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.