OSMnx で京都の地図を描いてみる
以下の記事を読んで使ってみたくなった。
ソースはこちら。
というわけで、
import osmnx as ox G = ox.graph_from_place('Kyoto, Japan', network_type='drive') ox.plot_graph(ox.project_graph(G))
というようなコードを手持ちの Mac 上の Anaconda Python 環境で試そうとしたけど、
ImportError: dlopen(/Users/xxx/anaconda3/lib/python3.6/site-packages/fiona/ogrext.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libuuid.1.dylib
などと出て、
brew install ossp-uuid ln -s /usr/local/lib/libuuid.dylib /usr/local/lib/libuuid.1.dylib
などとしてみたけど、次は
ImportError: dlopen(/Users/xxx/anaconda3/lib/python3.6/site-packages/fiona/ogrext.cpython-36m-darwin.so, 2): Library not loaded: @rpath/libkea.1.4.7.dylib Referenced from: /Users/xxx/anaconda3/lib/libgdal.20.dylib Reason: image not found
などと出て、キリがない。専用の仮想環境をつくったほうが幸せになれそう。
OSMnx documentation — OSMnx 0.8.1 documentation
に従うだけだが、
conda create --override-channels -c conda-forge -n OSMNX python=3 osmnx source activate OSMNX
としたら上記の Python コードが動いた。けどネットワーク構造を計算する処理が重いのか、全然終わらない。
というわけで、以下のAPIを眺めて、京都御所から範囲を広げていく作戦。
https://osmnx.readthedocs.io/en/stable/osmnx.html#osmnx.core.graph_from_place
import osmnx as ox G = ox.graph_from_point(center_point=(35.02514, 135.76239), network_type='drive', distance=1000) ox.plot_graph(ox.project_graph(G))
distance が中心からの距離 (m)。100とかだと御所なので道が見つからずエラーになった。
distance=1000 なら手持ちの MBA mid 2012 でも1分以内に処理が終わる。
鴨川とか、二条城とかが分かる。
御所のまわりは規則的だけど遠くなるにつれて細かすぎてごちゃごちゃしている。
distance=10000は15分くらいでなんとか処理できた。
いろいろ解析もしてみたいけどそのうち。