先日、防災科研さんの地すべり地形分布図をプロットしようとして、ちょっとした問題に引っかかりました。
1.ZIP ファイルに5つの SHP ファイルが納められている。
2.ZIP ファイルは150個。
3.ZIP ファイルから、目的の SHP のみを解凍せずに取り出したい。
4.取り出した SHP を結合し、1つの SHP として保存したい。
QGIS で試みるも、複数の SHP からその一部を機械的に取り出せません。
ArcGIS Pro 2.5 では ZIP を扱えません。技があるのかとサポートに問い合わせましたが、やはり標準では対応しておらず、開発&有償になるとのこと(余談ですが、サポートさんのレスが以前に比べずいぶん遅くなりました)。
それほど大仰なモノでもないでしょう。
ということで、簡素にできたのがコチラ。
import os import glob import pandas as pd import geopandas as gpd path = './input/*.zip' #folder 'input' zfiles = glob.glob(path) #zip files in the folder gdf_300=gpd.GeoDataFrame() for zfile in zfiles: fname=os.path.splitext(os.path.basename(zfile))[0] gdf_temp=gpd.read_file('zip://'+str(zfile)+'!ls300_'+fname+'.shp') gdf_300=pd.concat([gdf_300, gdf_temp]) gdf_300=gdf_300.reset_index(drop=True) gdf_300.to_file('./output/300.shp', encoding='utf-8')
GIS のカジュアルユーザーだからでしょうか、Python との併用が合理的に感じます。
0 件のコメント:
コメントを投稿