Help us understand the problem. What is going on with this article?

OSMnxを用いて,オープンストリートマップから道路ネットワークデータを取得しよう.

express_road.jpg

道路ネットワークデータについて

道路ネットワークデータは、node(点)部分とそのnodeとnodeを結んだedge(線)で構成されています。
いわゆる「グラフ理論」と呼ばれる分野です。

GPSの走行データについては、専門用語で「プローブデータ」と呼ばれています。なのでこのあたりの領域を調べる際には、
"道路ネットワーク" "プローブデータ" "GPS" などを組み合せて探してみましょう。

OSMnxについて

南カリフォルニア大学の都市計画学部の教授である Geoff Boeingさんが提供してくれているパッケージです.
geoff-boeing-headshot-1.jpg

OSMnx: Python for Street Networks

以下の記事でOSMnxを用いた道路ネットワークの可視化が取り上げられています.

Gigazin:世界各都市の道路が向いている方角が可視化されたグラフを比べてみると何がわかるのか?

API経由で道路ネットワークデータを取得しよう。

事前にパッケージをインストールしておきます。

brew install spatialindex
pip3 install osmnx 
pip3 install pandas
pip3 install csv
makeData.py
import pandas as pd
import osmnx as ox
import csv

def DriveWay(PREFECTURE):
        # 道路ネットワークデータを取得。
        G = ox.graph_from_place(f'{PREFECTURE}, Japan', network_type='drive')

        # グラフデータからDataFrame形式に変更。
        # nodeの情報
        node=pd.DataFrame(ox.save_load.graph_to_gdfs(G, nodes=True, edges=True, node_geometry=True, fill_edge_geometry=True)[0])
        # edgeの情報
        edge=pd.DataFrame(ox.save_load.graph_to_gdfs(G, nodes=True, edges=True, node_geometry=True, fill_edge_geometry=True)[1])
        # csv形式で出力。
        node.to_csv(f'out/DriveWay_Node_{PREFECTURE}.csv')
        edge.to_csv(f'out/DriveWay_Edge_{PREFECTURE}.csv')

        # 道路ネットワークを可視化
        ox.plot_graph(G)

def main():
        PRE_LIST=["TOKYO","CHIBA","KANAGAWA"]
        for PREFECTURE in PRE_LIST:
                print(f'{PREFECTURE} IN PROGRESS')
                DriveWay(PREFECTURE)

if __name__ == "__main__":
  main()

出力結果(横浜市)

yokohama.png

yamashita.png

いい感じに横浜港エリアの道路ネットワークが見えてきました。
これが無料ってすごいですね。

ぜひOSMnx使ってみてください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away