如何将接触的多边形与geopandas合并

Jak*_*ake 3 python polygon geopandas

我需要将 shapefile 中的所有接触多边形与 geopandas 合并。那么有没有解决办法呢。例如,下图必须是一个多边形,而不是多个多边形。

谢谢

要合并的多边形

mar*_*eis 5

这取决于您希望如何处理附加到这些多边形的数据。如果您不关心它们并且只对几何图形感兴趣,一种选择是溶解整个 GeoDataFrame,然后分解它。

combined_polygons = gdf.dissolve().explode()
Run Code Online (Sandbox Code Playgroud)

然而,这可能不是最有效的解决方案。最好的方法是确定邻接分量并根据这些分量进行溶解。你可以libpysal很容易地做到这一点。

import libpysal

# create spatial weights matrix
W = libpysal.weights.Queen.from_dataframe(gdf)

# get component labels
components = W.component_labels

combined_polygons = gdf.dissolve(by=components)
Run Code Online (Sandbox Code Playgroud)

后者将允许您指定aggfuncdissolve管理其他属性。