python-3.x - 在geopandas中溶解后删除多边形的内线

标签 python-3.x gis geopandas

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

import geopandas as gpd
df = gpd.read_file('districts_lima.geojson')
df.plot()

districts

然后,我使用名为 zone 的变量将一些地理单位合并为更大的组。结果是:

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

population by zones

我唯一的问题是,当我用较暗的边界再现同一个图时,很明显一些合并的多边形(区域)具有内部线,它们是原始地理数据框的内部区域边界。这张图清楚地显示了这一点:

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

population by zones with borders

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

我的数据可以找到here .

最佳答案

我实际上找到了一个很好的解决方案,该解决方案特别适用于在应用 geopandasdissolve() 属性后创建的问题。显然,问题是由连续内部单元的边界线的不明显差异产生的,这阻止了折叠以删除生成的多边形的内部线。

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

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

之前

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

现在是绘图命令

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

产量:

the result I was looking for

关于python-3.x - 在geopandas中溶解后删除多边形的内线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797292/

相关文章:

python - 如何在 python 中编写嵌套并发代码?

python-3.x - Pandas 有条件地组合(和求和)行

ruby - 使用 Ruby 查找多边形内的坐标

python - 合并重叠的多边形直到没有重叠

python - 如何处理osmnx中的大 map

matplotlib - 颜色图的自定义刻度标签

python - Python 3 已经被广泛采用了吗?

Python C-API : Using `PySequence_Length` with dictionaries

python - 使用 Anaconda 安装 GDAL