QGISでHelloCyclingのステーションごとにボロノイ図を作成し需要を可視化する
やること
市内の移動にHello Cyclingをよく利用します。
行きたい場所に手軽に移動できて大変便利なのですが、思った場所にステーションがなかったり、あっても全ての自転車が貸出中であったりと、時々ステーション探しに難儀することがあります。
HelloCyclingは全てのステーションの情報をGBFS形式で公開しています。そこでステーションの需要をQGISで可視化して、地域ごとのステーション需要を把握してみたいと思います。
手順としては、QGISで境界データの人口密度表示と、ステーションデータのポイントから生成したボロノイ図に重なるエリアの面積を集計し、各ボロノイ多角形に人口密度を付与します。
利用するデータは以下になります。
- HelloCycling バイクシェア関連情報(GBFS形式 / station_information)
- e-stat > 境界データ > 小地域 > 国勢調査 > 2020年 > 小地域(町丁・字等)(JGD2011) > 世界測地系緯度経度・Shapefile > 東京都
1. 国勢調査データの取得
1.1 データのダウンロードと読込み
-
e-statから国勢調査データをダウンロードし、解凍したのちにシェープファイルをQGISに読み込みます。
1.2 人口密度の計算
- 読み込んだ境界データのレイヤーから属性テーブルを開き、人口密度(
pop_dens
)を計算します。 - フィールド計算機を開き、人口(JINKO)を面積(area)で割り、新しいフィールド
pop_dens
を作成します。その際、km2単位となるように1000000をかけます。
1.3 データの確認
- 再度属性テーブルを開き、人口密度フィールド(例:
pop_dens
)が作成されていることを確認します。
2. HelloCycling ステーションデータの取得
2.1 HelloCyclingのステーションデータを読み込むために、便利なプラグインである「GBFS-NOW」をインストールします。
2.2 ツールバーから「GBFS-NOW」を起動し、HelloCyclingのステーションデータを読み込みます。
2.3 読み込まれたステーションデータを確認します。
3. 境界データのシンボル設定(人口密度で色分け)
3.1 境界データレイヤの【プロパティ】を開き、【スタイル】タブで「分類(Graduated)」を選択します。
3.2 分類フィールドに人口密度(pop_dens
)を指定し、カラースキームを選択して色分け表示します。
3.3 QGISの地図画面に戻り、結果を確認します。
4. ボロノイ図の作成
4.1 属性テーブルを開き、「式による地物選択」を開きます。
4.2 条件式として「"住所" LIKE '%東京都%'
」を入力し、「地物を選択」ボタンをクリックし、東京都にあるステーションのみを選択します。結果を別のレイヤーとして保存します。
4.3 メニューの「ベクタ」 > 「ジオメトリツール」 > 「ボロノイポリゴン」を選択します。
4.4 入力レイヤに先ほど保存した東京都内のステーションデータレイヤを指定します。
4.5 作成したボロノイポリゴンレイヤをマップに追加し、確認します。
5. 境界データとボロノイ図の重なり(交差)抽出
5.1 「ベクタ」 > 「ジオプロセシングツール」 > 「Intersection」を選択します。
5.2 入力レイヤ:ボロノイポリゴンレイヤ、オーバーレイレイヤ:境界データレイヤを指定します。
5.3 交差処理を実行すると、、各ボロノイ多角形と境界データとの交差部分(重なりエリア)のポリゴンが生成されます。出力レイヤを保存し、結果を確認します。
注)「無効なジオメトリがあります」というエラーが表示された場合、下記のようにプロセッシングツールから「ジオメトリを修復」を選択して無効なジオメトリを修復します。
6. ボロノイ多角形ごとに人口密度の集計・付与
6.1 交差レイヤには、各交差ポリゴンについて、もともとの町丁目の人口密度(pop_dens
)の情報が含まれています。 まず、各交差ポリゴンについて pop_dens × $area
の値を算出するフィールド(例:int_pop
)を作成します。
6.2 「空間集計」ツールを使い、ボロノイ多角形ごとに交差ポリゴンの int_pop
の合計値を集計します。(合計値は int_pop_sum
となります)
6.3 ボロノイ多角形内の人口合計 int_pop_sum
を面積 $area
で割り、人口密度を計算します。その際、km2単位となるように1000000をかけます。
7. 結果の表示
属性テーブルを開き、人口密度に応じてカラーランプを設定します。
地図画面に戻り、結果を確認します。
まとめ
QGISで町丁目の人口密度を色分け表示し、HelloCyclingのステーションデータから作成したボロノイ図に重なるエリアの面積を集計して、各ボロノイ多角形に人口密度の数値を付与し、ステーションごとの需要を可視化しました。
ここから読み取れる需要はあくまでも国勢調査による人口密度に基づいたものになりますので、必ずしも実際のステーションの需要と一致するものではありません。需要の指標としては「昼間人口」などのデータを用いた方がより現実を反映した結果になるかもしれません。ここで解説した手順に沿って、その他のデータを用いてあらためて可視化してみるとまた違った傾向が見られるでしょう。ぜひお試しいただけたらと思います。
Discussion