トップページ -> データベース研究スタート -> インタラクティブ,ダイナミックな地図(OpenStreetMap を利用) -> Python の overpass を用いて OpenStreetMap のデータをダウンロード(書きかけ)
[サイトマップへ]  

Python の overpass を用いて OpenStreetMap のデータをダウンロード(書きかけ)

OpenStreetMap (http://www.openstreetmap.org)は, 世界規模の無料で使えるオンラインの地図データベースシステム.

Python の overpass パッケージは, OpenStreetMap の Overpass API を Python から使えるようにする機能を持ったソフトウエア.

先人に感謝

キーワード: OpenStreetMap, Overpass API, Python, overpass, geopandas, GeoJSON, 地図データダウンロード, ポイント, ライン, エリア, タグ


前もって準備しておくこと

前準備として,Anaconda のインストールが終わっていること. 手順を下に説明しています.

Anaconda のインストール

Python 3 の開発環境である Anacondaをおすすめ.Window でのインストール手順は次の通りです(Linuxでも同様の手順です).

  1. https://www.continuum.io/downloads#windowsを開く

  2. Download」をクリックする.

  3. ダウンロードが始まるので確認する.

  4. ダウンロードした .exe ファイルを実行して,Anacondaをインストール.

Python のパッケージ overpass のインストール

Anaconda プロンプトを管理者として開き,次のコマンドを実行.

pip install overpass

Python のパッケージ geopandas のインストール

あとで GeoJSON オブジェクトを扱いたいので,そのためのパッケージもインストールする. Anaconda プロンプトを管理者として開き,次のコマンドを実行.

conda install -c conda-forge geopandas

Google Map を用いて緯度経度を調べてみる

あとでデータをダウンロードするときのために,Google Map を使って緯度・経度を調べてみる

  1. Google Map を開く

    https://www.google.co.jp/maps

  2. Google Map で好きな場所に移動する

  3. 右クリックして,「この場所について」を選ぶ

  4. 緯度,経度が表示されるので,メモしておく


Python を用いて OpenStreetMap のデータをダウンロード

IPython シェル」を使う.

Anacondaに入っている開発環境 spyder を実行し,右下の ipython コンソールを使うのが簡単.

  1. Python で,ダウンロードしたい地図の緯度と経度の設定

    次の Python プログラムを実行

    ※さきほど調べた緯度と経度

    (実行例)

    import overpass
    lat = 34.4461
    lon = 133.2315
    api = overpass.API() 
    map_query = overpass.MapQuery(lat - 0.001, lon - 0.001, lat + 0.001, lon + 0.001)
    response = api.Get(map_query)
    

  2. 結果である response オブジェクトの確認

    GeoJSON 形式のデータになっていることを確認

  3. 欲しいデータのタイプの設定

    OpenStreetMapの「ライン」のデータのうち,「highway」であるようなデータが欲しいとする. OpenStreetMap には,ポイントやラインやエリアには,「highway」のようなタグ付いている.

    次の Python プログラムを実行

    書きかけ
    

  4. ライン」のデータの確認

    次の Python プログラムを実行

    書きかけ
    

  5. ノード」のデータの確認

    次の Python プログラムを実行

    書きかけ
    

まとめ