ゾーン隣接行列の作り方

都市交通関連の分析において、ゾーン間が隣接しているかを判定するための隣接行列が必要になる場面が発生します。この隣接関係を表現する隣接行列の作成はそこまで難しいことではないのですが、少しマニアックな情報かつ難しいことではないがゆえにネット上に作成方法がなかなか落ちていませんでした。そこで今回の記事では、QGISを用いたこの隣接行列の作成方法を記載したいと思います。

隣接行列とは

そもそも隣接行列とは、あるゾーンから見たときに隣接しているゾーンを表現する行列を指します。この隣接行列は、隣接関係による特異性の分析や空間自己相関の考慮等において用いることがあります。

実際に隣接行列を作成する

サンプルデータの取得

 まずは、ゾーン間隣接行列を作成するためのサンプルデータとして、東京パーソントリップ調査のゾーンデータを取得します。以下のサイトからshapeファイルをダウンロードします

データ提供 | 東京都市圏交通計画協議会
東京都市圏パーソントリップ調査

ダウンロードされたファイルから、今回は計画基本ゾーンを使用していきます。

隣接行列作の作成

隣接行列を作成するための方法はいくつかあると考えられますが、今回は以下の方法で実施する手法をご紹介します。

  • ゾーンのバッファーを作成
  • 作成したバッファーの重複部分の取得

上記手法では、各ゾーンに対して小さなバッファーを作成することで、隣接しているゾーン間で重なりを発生させ、その重なった部分を検知することで隣接行列の作成を行うためのデータを生成します。では具体的な作業をしていきたいと思います。

ゾーンのバッファーを作成

ベクター > 空間演算ツール > バッファー を選択します。

入力レイヤーにダウンロードした計画基本ゾーンのデータ(H30_kzone)を選択し、距離に10m等適当に小さな値を設定します。この値は、隣接ゾーンとして設定されたいゾーン同士が重複し、隣接ゾーンとして設定されてほしくないゾーンが同士が重複しない距離を設定することが重要です。

上記の設定で実行を押すと各ゾーンに対してバッファーが作成され、各ゾーンの隣接部分は、以下の図のように重複部分が発生します。

作成したバッファーの重複部分の取得

次に上記で作成したバッファーの重なっている部分を抽出します。

ベクター > 空間演算ツール > 交差  を選択します。

入力レイヤに元のゾーンファイルを、オーバーレイヤに作成したバッファーレイヤを設定し実行します。これによって、重複部分のゾーンリストが作成されます。

作成された重複部分のゾーンリストが、想定通りの挙動か確認します。

隣接行列を作成するためのQGIS上では以上で終了です。
後は、上記テーブルを使用し必要に応じて行列表現への変換等を実施することで隣接行列を行う計算に組み込むことが可能です。ぜひ活用してみてください!

コメント

タイトルとURLをコピーしました