Pythonでボロノイ図を作成してバス停人口の分析をしてみる

最終更新日

Comments: 0

ソシム「指標・特徴量の設計から始めるデータ可視化学入門 データを洞察につなげる技術」を参考に、ボロノイ図の作成を行います。本記事では実際のGISと組み合わせて、バス停周辺の人口分布分析に応用してみた事例を紹介します。

 

 

ボロノイ図とは

ボロノイ図(Voronoi diagram)とは、ある平面上に複数の点(サイト)があるとき、その各点に対して「その点から最も近い領域」を分割する手法です。簡単に言えば、各点が自分の“縄張り”を持つように平面を分けるものです。わかりやすい解説ははこちらをおすすめします。

▼QGISで作成したボロノイ図

 

 

実践:GISデータとボロノイ図の組み合わせ

本の著者がpythonのコードやアウトプットをGitHubで公開しています。これらのコードを元に点データをGISデータに置き換えて実践しました。

GitHubのコードで本に記載されている以下の様なグラフを作成することができます。単純にボロノイ図を作成する場合と、最大領域を設定した場合について紹介されています。

GISのデータについては下妻市のバス停で行うことにしました。(なんとなく路線が多すぎず・・・ということで適当に選びました)国土数値情報をそのまま使用しています。実際の路線図は国土数値情報の発表以降に変更となっていることをご了承ください。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

 

単純にバス停の位置からボロノイ図を作成

この段階では、バス停間の最近傍領域が明確に可視化されます。しかし、生成されたポリゴンの外縁が際限なく外に伸びるという、ボロノイ図特有の性質が問題となります。サンプルコードでは-1から1の範囲でダミーの点を発生させていますが、GISでは市境の外に点を作成する必要があります。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

 

ボロノイ図とバッファの組み合わせ

前図での課題を踏まえ、本書でも紹介されていたバッファ(書籍内では「円盤」、サンプルコードでは「ディスク」と記載)との組み合わせを試みました。各バス停から300mのバッファを生成し、ボロノイポリゴンとオーバーレイすることで、無限に広がる問題を解消するとともに、実際の徒歩圏を考慮した表現としています。

この図では、「どのバス停が、どの地域を実質的にカバーしているか」が、視覚的かつ定量的に捉えやすくなります。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

 

ついでに、バッファが融合されているこの形をみると、いつも「はらぺこあおむし」を思い出してしまいます!

 

 

 

小地域とのオーバーレイによる人口集計

最後に、ボロノイ図と小地域(国勢調査の町丁・字単位)をオーバーレイし、各小地域の人口をボロノイ領域に按分します。以下の緑色が小地域になります。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)、政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

 

オーバーレイすると以下の様なポリゴンが作成されます。同時に人口の按分処理を行っています。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)、政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

▼人口の按分方法については以下の記事で紹介しています

 

最後にバス停ごとに再集計して完成です。このアプローチにより、従来の「路線全体の周辺人口」では把握しづらかった、各バス停単位での実質的な利用可能人口の推定が可能になりました。

出典:「国土数値情報(バスルート)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N07-2022.html)、「国土数値情報(バス停留所)」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-P11-2022.html)、政府統計の総合窓口(e-Stat)(https://www.e-stat.go.jp/)および「地理院タイル」(国土地理院)(https://maps.gsi.go.jp/development/ichiran.html)を加工して作成

 

 

まとめ

今回はソシム「指標・特徴量の設計から始めるデータ可視化学入門 データを洞察につなげる技術」を参考にボロノイ図の作成を行いました。

今回のように、ボロノイ図と小地域データを組み合わせ、バス停ごとに人口を割り当ててみると、より細かい単位でのサービスの届き具合を把握することができます。

実は下妻市のコミュニティバス(今回作成した地図の北東部・北西部のバス停が該当)では、統計上1日あたり50人程度の利用者しかいないそうです。いかに地方でのバス利用の少なさがわかると思います。

 

 

シェアする

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする