OSMnxで取得した道路ネットワークデータから極座標グラフを作ろう!
8694 ワード
道路ネットワークの取得
道路ネットワークの取得方法は、前回の記事↓↓↓を参考にしてください。
OSMnxを用いて,オープンストリートマップから道路ネットワークデータを取得しよう。
前回取得した道路ネットワークデータの可視化結果(横浜市)
このデータを元に、方向ごとに集計して可視化していきます。
今回つくるもの:極座標グラフ
世界各都市の道路が向いている方角が可視化されたグラフを比べてみると何がわかるのか?
データの分布
bearingdata.py
import pandas as pd
import osmnx as ox
import matplotlib.pyplot as plt
G = ox.graph_from_place(f'Yokohama, Kanagawa, Japan', network_type='drive')
# calculate edge bearings and visualize their frequency
G = ox.add_edge_bearings(G)
bearings = pd.Series([data['bearing'] for u, v, k, data in G.edges(keys=True, data=True)])
ax = bearings.hist(bins=30, zorder=2, alpha=0.8)
xlim = ax.set_xlim(0, 360)
ax.set_title('street network bar chart')
plt.show()
横浜市の道路の方向データ
極座標の作成
bearingplot.py
# polar plot
import numpy as np
n = 30
count, division = np.histogram(bearings, bins=[ang*360/n for ang in range(0,n+1)])
division = division[0:-1]
width = 2 * np.pi/n
ax = plt.subplot(111, projection='polar')
ax.set_theta_zero_location('N')
ax.set_theta_direction('clockwise')
bars = ax.bar(division * np.pi/180 - width * 0.5 , count, width=width, bottom=0.0)
ax.set_title('street network polar coordinates', y=1.1)
plt.show()
横浜市の道路の方向の極座標グラフ
他の市でもやってみました。
まとめ
いかがでしょうか。今回は横浜市を例に可視化してみました。
もっといろいろな都市を可視化して比べてみたいですね。
Author And Source
この問題について(OSMnxで取得した道路ネットワークデータから極座標グラフを作ろう!), 我々は、より多くの情報をここで見つけました https://qiita.com/keijipoon/items/2c8569f213df57c0ca26著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .