溶解在geopandas中后删除多边形的内线

Lui*_*ise 3 gis python-3.x geopandas

我正在使用一个城市的地理数据框,其中每个单位都是一个地区(行政部门)。它的情节是这样的:

import geopandas as gpd
df = gpd.read_file('districts_lima.geojson')
df.plot()
Run Code Online (Sandbox Code Playgroud)

区

然后,我使用名为zone. 结果是:

df2 = df.dissolve(by='zone', aggfunc='sum')
df2.plot(column='population', legend=True, cmap='Blues')
Run Code Online (Sandbox Code Playgroud)

按地区划分的人口

我唯一的问题是,当我用较暗的边界重现同一个图时,很明显一些合并的多边形(区域)有内线,这些线是原始地理数据框的内区边界。这在此图中清楚地显示:

df2.plot(column='population', legend=True, cmap='Blues', edgecolor='black')
Run Code Online (Sandbox Code Playgroud)

按边界地区划分的人口

有没有办法使用 geopandas 删除多边形的内线,这样它们就不会出现在最后一个图中?

我的数据可以在这里找到。

Lui*_*ise 5

其实,我找到了一个很好的解决方案,所属专门到被应用后,创建了我的问题的事实dissolve()的性质geopandas。显然,问题是由连续内部单元的边界线中不明显的差异产生的,这阻止了折叠以删除生成的多边形的内部线。

这是通过添加一个小缓冲区来加宽多边形线来解决的,这样那些不明显的差异就被消除了,并且初始多边形的每条内线实际上都重叠了。具体来说,我需要添加:

df2['geometry'] = df2['geometry'].buffer(0.0001)

df2 = df.dissolve(by='zone', aggfunc='sum')

所以现在 plot 命令

df2.plot(column='population', legend=True, cmap='Blues', edgecolor='Black')

产量:

我正在寻找的结果