🗺️
geopandas でshapefileをgeojsonに変換する
QGISで地道に変換してましたが練習&楽するために
同ディレクトリ内のshapefileをすべてgeojsonに変換します。
状況に応じて使う関数
dissolveは特定のカラムで地物を融合
simplifyは情報減らしてデータが軽くなる(たまに使う)
import geopandas as gpd
from pathlib import Path
import pandas as pd
def dissolve(df, col):
df = df[[col, 'geometry']]
df = df.dissolve(by=col)
return df
def simplify(df, tolerance=0.00001):
df.geometry = df.geometry.simplify(tolerance=tolerance)
return df
files = Path().glob('**/*.shp')
for file in files:
print(file, 'loading...')
df = gpd.read_file(file)
print('CRS_Before: ', df.crs)
df = df.to_crs(epsg=4326)
print('CRS_After: ', df.crs)
# 保存パスとディレクトリ作成
dest = Path('result') / file
dest.parent.mkdir(parents=True, exist_ok=True)
df.to_file(dest.with_suffix('.geojson'), driver="GeoJSON", encoding='utf-8')
Discussion