【问题标题】:Merging together multiple shapefiles with block level data for each state into a single country wide shapefile将每个州的多个 shapefile 与块级数据合并到一个国家范围的 shapefile
【发布时间】:2021-06-07 18:58:01
【问题描述】:
我正在尝试使用 python 将多个 shapefile 合并为一个 shapefile。对于每个美国州,我都有一个 shapefile,其中包含州的地理边界和州内的一些内部块级边界。我想将所有这些 shapefile 放在一个适用于整个国家的 shapefile 中。有谁知道我如何在 python 中做到这一点。我看过 geopandas,但它们的连接似乎是为了重叠数据,而不仅仅是附加新数据。
【问题讨论】:
标签:
python
pandas
shapefile
geopandas
【解决方案1】:
Geopandas 数据框有一个方法溶解(),它聚合几何形状。在下面的示例中,赞比亚的各省被聚合为整个国家的单一形状。有关 .dissolve 的更多信息,请访问here。
# Zambia provinces
zambia_provinces.head()
ADM0_EN ADM0_PCODE ADM1_EN ADM1_PCODE geometry
0 Zambia ZM Central ZM10 POLYGON ((29.99949 -12.00267, 30.00002 -12.002...
1 Zambia ZM Copperbelt ZM20 POLYGON ((27.94644 -12.28198, 27.95514 -12.297...
2 Zambia ZM Eastern ZM30 POLYGON ((33.25764 -11.58238, 33.26164 -11.585...
3 Zambia ZM Luapula ZM40 POLYGON ((29.37374 -8.70908, 29.36164 -8.72298...
4 Zambia ZM Lusaka ZM50 POLYGON ((29.98254 -14.64278, 29.98494 -14.643...
zambia_provinces.plot(edgecolor='black')
plt.show()
# Aggregate the provinces and show the changes
zambia = zambia_provinces.dissolve(by='ADM0_PCODE')
zambia.head()
geometry ADM0_EN ADM1_EN ADM1_PCODE
ADM0_PCODE
ZM POLYGON ((28.83832 -16.43402, 28.83588 -16.439... Zambia Central ZM10
zambia.plot(edgecolor='black')
plt.show()