トップページ -> 最新情報技術の実習と研究ツール -> インタラクティブ,ダイナミックな地図(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をインストール.

Windows で Python のパッケージ overpass のインストールと geopandas のインストール

あとで GeoJSON オブジェクトを扱いたいので,geopanda もインストールする.

  1. Microsoft Build ToolsVisual Studio 2017 をインストールする

  2. VS 2017 用 x64 Native Tools コマンドプロンプト管理者として起動する

    起動は,Windows のメニューで「Visual Studio 2017」の下の「VS 2017用 x64 Native Tools コマンドプロンプト」のように操作する.

  3. VS 2017 用 x64 Native Tools コマンドプロンプトで,次のコマンドを実行
    python -m pip instal --upgrade pip
    pip install --ignore-installed --upgrade overpass 
    pip install --ignore-installed --upgrade geopandas 
    

※ 「pip install --ignore-installed --upgrade geopandas」ではなくて, GitHub からソースコードをダウンロードしてインストールしたい場合

  1. Microsoft Build ToolsVisual Studio 2017 をインストールする

  2. VS 2017 用 x64 Native Tools コマンドプロンプトを起動する

    起動は,Windows のメニューで「Visual Studio 2017」の下の「VS 2017用 x64 Native Tools コマンドプロンプト」のように操作する.

  3. VS 2017 用 x64 Native Tools コマンドプロンプトで,次のコマンドを実行
    python -m pip instal --upgrade pip
    pip install git+https://github.com/geopandas/geopandas
    

  4. 終了の確認

    エラーメッセージが出ていないことを確認

  5. インストールできたことの確認

    バージョン番号が表示されれば OK

    conda list geopandas
    

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

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

  1. Google Map を開く

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

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

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

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


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

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 形式のデータになっていることを確認

    print(response)
    

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

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

    次の Python プログラムを実行

    書きかけ
    

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

    次の Python プログラムを実行

    書きかけ
    

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

    次の Python プログラムを実行

    書きかけ
    

まとめ