GeoPandas は、 Pandas に 地理データのサポートを追加するオープン ソース プロジェクトです。
この記事では GeoPandas を使って GeoJson のポリゴンを統合する。
下記を参考にした。
GeoJSON上の複数区域のgeometryデータを一つにまとめる
上記の記事と同じく
富山県の「舟橋村」「上市町」「立山町」のGeoJson のポリゴンを統合して
富山県中新川郡 のポリゴンを作成する。
GeoJson は下記を使用した。
(1) 下記をダウンロードする。
(2) GeoPandas を使って ポリゴンを統合する
# GeoPandas を使って GeoJson を読み込む DATA_FILE_NAME = "N03-21_16_210101.json" gdf = gpd.read_file(DATA_FILE_NAME) # わかりやすさのために、カラムをリネームする renamed_gdf = gdf.rename( columns={ "N03_001": "prefecture", "N03_002": "bureau", "N03_003": "parent_city", "N03_004": "child_city", "N03_007": "city_id" } ) # 統合対象であるparent_cityを持つレコードを抽出する has_parent_gdf = renamed_gdf.dropna(subset=["parent_city"]) has_parent_gdf # ポリゴンを統合する grouped_gdf = renamed_gdf.dissolve(by=["prefecture", "parent_city"], as_index=False) # 不要となったカラムを削除しカラム名を変更する parent_city_gdf = grouped_gdf[["parent_city", "prefecture", "geometry"]].rename( columns={"parent_city": "city"} ) # 中新川郡を抽出する nakaniikawa_gdf = parent_city_gdf[parent_city_gdf["city"]=="中新川郡"] # GeoJson に書き出す。 nakaniikawa_gdf.to_file('nakaniikawa.geojson', driver='GeoJSON')
(3) ポリゴンを描画する
nakaniikawa_gdf.plot() plt.show()
統合前
統合後
https://github.com/ohwada/World_Countries/tree/main/geoPandas/polygon_disolve/toyama_nakaniikawa