プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

避難所データの加工について(避難所検索@伊勢 v1.1)

避難所検索@伊勢に、避難所データの更新機能を追加しました(v1.1)。

以前、避難所データの加工方法をまとめましたが、こちらの機能追加時に避難所データの加工方法を少し整理したので、改めてまとめておきます。

加工方法

基本のやり方は以前の記事で書いたものと同じです。

大きく異なる点は、

  • 避難所情報の Excel ファイルから、緯度経度欄がなくなった
  • 緯度経度は kml ファイルから取得する必要がある

という2点です。

kml ファイルからの緯度経度の抽出

この手の仕事は python ですね。ということで、pythonでスクリプトを書きました。

加工前のKMLはこんな感じでした。

mor@DESKTOP-DE7IL4F:~/work/escape/shelters/kml$ head -50 saigaijisiteihinansyo.kml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
  <Document>
    <Style id="SYMBOL2.symbolStyle">
      <IconStyle>
        <Icon>
          <href>https://www.city.ise.mie.jp/_res/projects/default_project/_page_/001/005/573/hinan4.png</href>
        </Icon>
        <scale>1</scale>
      </IconStyle>
    </Style>
    <Placemark>
      <name>三重交通G スポーツの杜 伊勢 (三重県営総合競技場陸上競技場)</name>
      <description><![CDATA[<table><tr><td style="color:#0000FF;padding-right:1em;">所在地</td><td>伊勢市宇治館町510</td></tr><tr><td style="color:#0000FF;padding-right:1em;">電話番号</td><td>0596-22-0189</td></tr><tr><td style="color:#0000FF;padding-right:1em;"> ◆洪水への対応</td><td>○</td></tr><tr><td style="color:#0000FF;padding-right:1em;"> ◆土砂災害への対応</td><td>○</td></tr><tr><td style="color:#0000FF;padding-right:1em;"> ◆地震への対応</td><td>○</td></tr><tr><td style="color:#0000FF;padding-right:1em;"> ◆津波への対応</td><td>-</td></tr><tr><td style="color:#0000FF;padding-right:1em;">  ◆指定避難所(市の呼称)</td><td>○</td></tr><tr><td style="color:#0000FF;padding-right:1em;">  ◆津波緊急避難所(市の呼称)</td><td>-</td></tr><tr><td style="color:#0000FF;padding-right:1em;">  ◆安全度ランク</td><td>☆☆☆</td></tr><tr><td style="color:#0000FF;padding-right:1em;">  ◆避難生活施設(市の呼称)</td><td>-</td></tr><tr><td style="color:#0000FF;padding-right:1em;">備考</td><td></td></tr></table>]]></description>
      <styleUrl>#SYMBOL2.symbolStyle</styleUrl>
      <Point>
        <coordinates>136.72986,34.46533</coordinates>
      </Point>
    </Placemark>
    <Placemark>
      <name>三重交通G スポーツの杜 伊勢 体育館 別館(県営総合競技場体育館(サブ))</name>

(後略)

これの Placemark タグが避難所を表しているので、このタグを探し、この中の Point タグを探し、さらにその中にある緯度経度情報( coordinates タグ)を拾い出して、避難所名と合わせて、CSVで出力するというものです。

出力結果は、

mor@DESKTOP-DE7IL4F:~/work/escape/shelters/kml$ head places.csv
三重交通G スポーツの杜 伊勢 (三重県営総合競技場陸上競技場),34.46533,136.72986
三重交通G スポーツの杜 伊勢 体育館 別館(県営総合競技場体育館(サブ)),34.4653851906044,136.72662795765
高麗広公民館(ふれあい工房),34.4150590015743,136.743425989006
(後略)

こんな感じで、避難所名、緯度、経度、が並ぶ CSV として保存しています。

興味のある方はこちらの gist をご覧ください。

避難所データの作成

kml ファイルから緯度経度情報が抽出できれば、公開されている Excel ファイルの避難所データに緯度経度を追加し、アプリで利用する形式の CSV ファイルとして保存します。

この際、

  • 一部避難所については、緯度経度情報の記載がないため、緯度経度は空欄としておく
  • 一部避難所の名称に改行が含まれているので、半角スペースで置き換えた

という処理を行っています。

ちなみに、避難所名称に全角スペースが含まれているところもあるのですが、それについては特に変更していません。別の用途でこのデータを操作したい場合は、ちょっと注意したほうがよいかもしれませんね。

まとめ

公開されている伊勢市のオープンデータは、この記事の時点で 2021年4月のものなのですが、伊勢市が Google Map で公開しているのを見ると 2021年10月 のデータっぽいです。

せっかく、 kml にして、 Google Map に読ませてるなら、ついでのデータも更新して置いてくれればいいのになー。 > 伊勢市さん