避難所情報をGoogleマイマップで効率的に公開する方法(緯度経度情報の取得)

はじめに

奈良市の避難所情報をGoogleマイマップで公開する際の効率的な方法についてご紹介します。重要なのは、住所から緯度経度を割り出すことです。このプロセスには様々な方法が存在しますが、今回はJupyterLabとPythonを用い、ローカル環境でのジオコーディングを行う「jageocoder」というモジュールを活用します。

データの準備: エクセルファイルのダウンロードと整形

まず、奈良市の防災情報オープンデータから、指定避難所および指定緊急避難場所に関するエクセルファイルをダウンロードします。

ダウンロード後、不要なデータを整理し、有効な情報のみを抽出します。具体的には、エクセルファイルの最初の2行と右側の無駄な3列を削除し、その後CSVファイルとして出力します。

Pythonによるジオコーディング処理

次に、JupyterLabを使ってPythonでの処理に移ります。先ほど整形したCSVファイルを使用します。

(事前に「jageocoder」モジュールをインストールしておきます。)

以下のPythonスクリプトを実行すると、住所情報から緯度経度が取り出され、それらが元のCSVファイルに追記され 「指定避難所-表1_緯度経度付き.csv」という新しいファイルに出力されます。

import pandas as pd
import jageocoder
import json
jageocoder.init()

# ファイルの読み込み
df = pd.read_csv('指定避難所-表1.csv')

# 所在地の列に「奈良市」を加える
df['所在地'] = '奈良市' + df['所在地']

# 緯度経度情報を取得する関数の定義
def get_lat_lon(address):
    result = jageocoder.search(address)
    if result is not None and len(result) > 0:
        lat = result['candidates'][0]['y']
        lon = result['candidates'][0]['x']
        return lat, lon
    else:
        return None, None

# 各住所の緯度経度を取得してDataframeに追加
df['緯度'] = None
df['経度'] = None

for index, row in df.iterrows():
    lat, lon = get_lat_lon(row['所在地'])
    df.at[index, '緯度'] = lat
    df.at[index, '経度'] = lon
df
# 結果をCSVファイルに保存
df.to_csv('指定避難所-表1_緯度経度付き.csv', index=False)

Googleマイマップへのインポートと確認

最終的に、処理が完了したCSVファイルをGoogleマイマップにインポートすることで、奈良市の避難所情報が公開されます。

ただし、jageocoderによるジオコーディングは実際の位置から数百メートルの誤差を生じることがあります。特に避難所といった重要な場所の場合、実際に避難所が指定されている所在地や住所を確認し、適切に利用することが重要です。

この方法により、奈良市の避難所情報を迅速かつ正確にGoogleマイマップに公開することができます。災害時における迅速な情報共有は、地域住民の安全と支援に直結するため、このようなデジタルツールの活用は非常に有効です。

Shareこの記事をシェアしよう!