##道路ネットワークの取得
道路ネットワークの取得方法は、前回の記事↓↓↓を参考にしてください。
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()
##まとめ
いかがでしょうか。今回は横浜市を例に可視化してみました。
もっといろいろな都市を可視化して比べてみたいですね。