ブログ記事
で参考にしているスクリプト群
- parseKml.py : kml をパースして、緯度経度をCSVで保存するスクリプト
ブログ記事
で参考にしているスクリプト群
""" | |
伊勢市のオープンデータライブラリの災害時避難所情報のkmlファイルから | |
避難所名、緯度軽度のCSVファイルを生成するスクリプト | |
注意 | |
避難所名に含まれている改行文字は半角スペースに変換している | |
""" | |
import xml.etree.ElementTree as et | |
import csv | |
import argparse | |
def parseKml(kmlfile, csvfile): | |
ns = {'kml': 'http://www.opengis.net/kml/2.2'} | |
tree = et.ElementTree(file=kmlfile) | |
root = tree.getroot() | |
doc = root[0] | |
placemarks = doc.findall("kml:Placemark", ns) | |
with open(csvfile, "wt") as file: | |
writer = csv.writer(file) | |
for p in placemarks: | |
name = p.findall("./kml:name", ns)[0] | |
latlonstr = p.findall("./kml:Point/kml:coordinates", ns)[0] | |
latlon = latlonstr.text.split(",") | |
# 名称、緯度、経度の並びで出力 | |
row = [name.text.replace("\n", " "), latlon[1], latlon[0]] | |
writer.writerow(row) | |
if __name__ == "__main__": | |
parser = argparse.ArgumentParser(description="伊勢市のオープンデータの災害時避難所のkmlファイルから緯度経度のCSVファイルを生成する") | |
parser.add_argument("kmlfile", help="災害時避難所のkmlファイル名") | |
parser.add_argument("csvfile", help="出力ファイル名") | |
args = parser.parse_args() | |
parseKml(args.kmlfile, args.csvfile) |