【python】CSVからgeoJSONファイルに変換する
CSVファイルを地図に載せたいなと思っていたのですが、ネットだと色々な変換サービスだったり、QGISを使えばできると思います。
それぞれのサービスを立ち上げるのが面倒(ごめんなさい!汗)な性格な僕にとって、簡単に変換するツールが作れないかと思いまして、開発してみました。
ソースコード
import csv
import json
import os
# ファイル名を取得
filepath = "./toilet.csv"
basename = os.path.splitext(os.path.basename(filepath))[0]
# CSVファイルを読み込む
with open( filepath , "r", encoding='utf_8') as f:
reader = csv.reader(f)
header = next(reader)
items = list(reader)
# CSVファイルをGeoJSONに変換する
features = []
for item in items:
feature = {
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [item[3], item[2]]
},
"properties": {
"name": item[0],
"address": item[1],
"floor": item[4],
"tel": item[5],
"start": item[6],
"exit": item[7],
"time_remarks": item[8],
"remarks1": item[9],
"remarks2": item[10]
}
}
features.append(feature)
# GeoJSONファイルを書き込む
with open("./" + basename + ".geojson", "w", encoding='utf_8') as f:
json.dump({"features": features}, f, indent = 2, ensure_ascii=False)
子育て支援マップを開発したときに、乳幼児対応トイレを作っていたのですが、その時のコードです。
CSVファイルを読み込んで、featuresの配列を指定して、geoJSONファイルの規格通りに、値を読み込んでいく、という感じです。
Pythonで実行する
これでサクッと変換できちゃいます。
ソースコード最後の、indent = 2は改行コードで、綺麗に整列してくれます。
pythonでサクッとgeoJSONファイルが作れました!
興味のある方、ぜひ、やってみてくださいね!
この記事が気に入ったらサポートをしてみませんか?