トップページ人工知能,実世界DBインタラクティブ,ダイナミックな地図(OpenStreetMap を利用)Python の overpass を用いて OpenStreetMap のデータをダウンロード(書きかけ)

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

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

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

先人に感謝

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

前準備

Python のインストール,pip と setuptools の更新,Python 開発環境

Python の URL: http://www.python.org/

【Python, pip の使い方】

Python, pip は,次のコマンドで起動できる.

Python 開発環境のインストール】

(Windowsの場合のみ)マイクロソフト C++ ビルドツール (Build Tools) のインストール

Windows での マイクロソフト C++ ビルドツール (Build Tools) のインストール手順: 別ページで説明している.

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

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

  1. Visual Studio の x64 Native Tools コマンドプロンプト管理者として実行起動する

    起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.

    ※ 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:

    Visual Studio Community のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」もインストールされる.その手順は,別ページで説明している.

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

    [image]

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

  1. マイクロソフト C++ ビルドツール (Build Tools)Visual Studio 2017 をインストールする
  2. VS 2017 用 x64 Native Tools コマンドプロンプトを起動する

    起動は,Windows のメニューで「Visual Studio 20..」の下の「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」を選ぶ.「x64」は,64ビット版の意味である.

    ※ 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」がないとき:

    Visual Studio Community のインストールを行うことで, 「x64 Native Tools コマンドプロンプト (x64 Native Tools Command Prompt)」もインストールされる.その手順は,別ページで説明している.

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

    [image]
  4. 終了の確認

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

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

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

    pip show geopandas
    

    [image]

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

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

  1. Google Map を開く

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

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

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

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

    [image]

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

  1. Jupyter Qt Console を起動

    jupyter qtconsole
    

    [image]
    ->

    Iris データセットの準備

    Python プログラムを動かす

    • Windows では,「python」コマンドやPython ランチャーである「py」コマンド
    • Ubuntu では,「python3」コマンド

    開発環境や Python コンソール(Jupyter Qt ConsoleSpyderPyCharmPyScripter など)の利用も便利である.

    ※ 「jupyter qtconsole」を入れたのに,jupyter qtconsole起動しない という場合には,次の操作で,インストールを行ってから,もう一度試してみる.

    python -m pip install -U jupyterlab jupyter jupyter-console jupytext spyder
    
  2. 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)
    

    [image]
  3. 結果である response オブジェクトの確認

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

    print(response)
    

    [image]
  4. 欲しいデータのタイプの設定

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

    次の Python プログラムを実行

    書きかけ
    
  5. ライン」のデータの確認

    次の Python プログラムを実行

    書きかけ
    
  6. ノード」のデータの確認

    次の Python プログラムを実行

    書きかけ
    

まとめ