日本の自治体の境界データをダウンロードする
/
日本の自治体の境界データをダウンロードします。
# ファイル構成
project_dir
├── /R2_boundary
│ ├── /04_miyagi/04_miyagi.shp
│ └── (省略)
└── ***.ipynb <- 実行用ノートブック
# 境界データのダウンロード
import requests
# 境界データのディレクトリ作成
!mkdir -p ./R2_boundary
# 都道府県リスト
prefs = [["hokkaido",1], ["aomori",2], ["iwate",3], ["miyagi",4], ["akita",5], ["yamagata",6], ["fukushima",7],
["ibaraki",8], ["tochigi",9], ["gunma",10], ["saitama",11], ["chiba",12], ["tokyo",13], ["kanagawa",14],
["niigata",15], ["toyama",16], ["ishikawa",17], ["fukui",18], ["yamanashi",19],
["nagano",20], ["gifu",21], ["shizuoka",22], ["aichi",23], ["mie",24],
["shiga",25], ["kyoto",26],["osaka",27], ["hyogo",28], ["nara",29], ["wakayama",30],
["tottori",31], ["shimane",32], ["okayama",33], ["hiroshima",34], ["yamaguchi",35],
["tokushima",36], ["kanagawa",37], ["ehime",38], ["kouchi",39],
["fukuoka",40], ["saga",41], ["nagasaki",42], ["kumamoto",43], ["oita",44], ["miyagi",45], ["kagoshima",46],
["okinawa",47]]
# 都道府県でデータを抽出
for name,i in prefs:
# e-statのURL
prefCode = str(i).zfill(2)
pref_dir = prefCode + "_" + name
print(pref_dir, prefCode)
# shpのURL
url = f"https://www.e-stat.go.jp/gis/statmap-search/data?dlserveyId=A002005212020&code={prefCode}&coordSys=1&format=shape&downloadType=5&datum=2000"
# ディレクトリが存在するか
if not os.path.exists(f"./R2_boundary/{pref_dir}"):
# urlにリクエスト
urlData = requests.get(url).content
# 出力ファイル名
filename = f"./R2_boundary/{pref_dir}.zip"
with open(filename ,mode='wb') as f: # wb でバイト型を書き込める
f.write(urlData)
# ディレクトリの作成
!mkdir -p ./R2_boundary/$pref_dir
# zipファイルの解凍
!unzip ./R2_boundary/$pref_dir".zip" -d ./R2_boundary/$pref_dir > /dev/null
# zipファイルの削除
!rm ./R2_boundary/$pref_dir".zip"
# ファイル名前の変更
paths = glob.glob(f"./R2_boundary/{pref_dir}/*")
for path in paths:
# 変更後
rename = path.replace(f"r2ka{prefCode}", pref_dir)
# ファイル名の変更
os.rename(path, rename)
# まとめ
日本の自治体の境界データをダウンロードしました。