小编Fra*_*ank的帖子

用 shapely 填充 MultiPolygon 中的洞 - 荷兰 2 位数邮政编码

我在这里找到了荷兰 4 位邮政编码的 shapefile:

https://public.opendatasoft.com/explore/dataset/openpostcodevlakkenpc4/export/?location=9,52.16172,5.56595&basemap=jawg.streets

我想做的是将共享前两位数字的邮政编码组合起来,然后将它们绘制在地图上。

不幸的是,数据似乎有问题——荷兰的一些地区似乎没有被覆盖。结果,当我组合多边形以获取 2 位数多边形(从 4 位数多边形)时,生成的多边形中存在孔。

我需要填补这些漏洞。我看过类似问题的帖子,但似乎没有什么能完全满足我的需要。特别是,我看到一篇关于使用凹壳的帖子,但这在这里似乎有点矫枉过正。

我已经设法修复了几个工件(例如“条子”),但漏洞仍然存在。

这是我到目前为止所拥有的:

from shapely.ops import cascaded_union
from shapely.geometry import JOIN_STYLE, Polygon, MultiPolygon

import os
import folium
import pandas as pd
import geopandas as gpd

GEOM_LOC = r"PATH_TO_FILE_ABOVE\openpostcodevlakkenpc4.shx"

# Get the data
geom = gpd.read_file(GEOM_LOC)

# Remove empty or nan records
is_empty = geom.geometry.is_empty
is_nan = geom.geometry.isna()
geom = geom[~(is_empty | is_nan)]

# Add field for 2 digit postcode
geom["digit"] = geom.pc4.apply(lambda x: x[0:2])
geom = geom[["digit", "geometry"]]

# …
Run Code Online (Sandbox Code Playgroud)

python gis maps shapely geopandas

4
推荐指数
1
解决办法
7280
查看次数

标签 统计

geopandas ×1

gis ×1

maps ×1

python ×1

shapely ×1