eyecatch

QGISでレイヤ同士の重複箇所と属性情報を抽出!インターセクト処理の実践的活用法

投稿日: 最終更新日:
この記事はQGIS 3.40を使用しています。 現在のLTRは3.44です。

この記事でわかること


  • QGISでベクタレイヤー同士の交差部分を抽出する方法
  • インターセクト処理のパラメータ設定
  • インターセクト処理の活用事例と結果の解釈方法

こんな人におすすめ


  • 空間解析の処理を学びたい方
  • ポリゴンデータに重なる重複データの抽出をしたい方

はじめに

GISにおけるデータ分析では、異なるレイヤー同士で重なっている部分だけを抽出したい場面がよくあります。例えば、「メッシュごとに交差する森林地域の面積を計算したい」「市町村エリアごとに交差する河川の長さを求めたい」といったケースです。こうした“重なり(交差)部分”を抽出する際に使うのが、空間演算の「交差(インターセクト)」処理です。 この記事では、QGISにおけるインターセクト処理について、基本的な考え方から実際の操作方法、結果の見方までを解説します。

インターセクトとは

インターセクト(交差)とは、2つ以上のベクタレイヤーにおいて、空間的に重複している部分だけを抽出する空間演算です。一見するとクリップ処理と似ていますが、インターセクトは出力結果の属性に、入力レイヤーの属性だけでなく、抽出に使用したオーバーレイレイヤーの属性も引き継ぐ点が大きな違いです。

ポリゴン(複数地物)をオーバーレイレイヤーとしてインターセクトを実行すると、入力データはポリゴン地物の境界ごとに分割された状態で出力されます。

そのため、出力結果から「オーバーレイレイヤーのどの領域と重なっていたのか」を判別できます。

インターセクトの処理イメージ
インターセクトの処理イメージ

インターセクトの実行

インターセクト処理の実行には、以下の2つのレイヤが必要になります。

  • 入力レイヤ

    切り抜きたい対象となるベクタデータです。ポイント、ライン、ポリゴンのいずれの形状でも入力として使用できます。

  • オーバーレイレイヤー

    交差の判定に使うデータです。入力レイヤーに対して、このオーバーレイレイヤーと交差している部分が出力結果として抽出されます。

ここでは、国土数値情報ダウンロードサイトよりダウンロードした日本全国の「鉄道線(ラインデータ)」と東京都の「行政区域(ポリゴンデータ)」でインターセクトを実行していきます。

使用データ
使用データ

国土数値情報からダウンロードした鉄道のラインデータは全国分のため、日本全域の鉄道線が含まれていることがわかります。

鉄道線データの属性デーブル。全国分の鉄道線のデータであることがわかる
鉄道線データの属性デーブル。全国分の鉄道線のデータであることがわかる

ウインドウ上部のメニューバーから[ベクタ]→[空間演算ツール]→[交差(intersect)]を選択します。

ウインドウの上部にあるメニューから[ベクタ]→[空間演算ツール]→[交差(intersect)]を選択する
ウインドウの上部にあるメニューから[ベクタ]→[空間演算ツール]→[交差(intersect)]を選択する

または、メインウインドウ右側のプロセシングツールボックスで「交差」や「intersect」などと検索して、処理を起動することもできます。

[プロセシングツールボックス]→[ベクターオーバレイ]→[交差(intersect)]からも起動可能
[プロセシングツールボックス]→[ベクターオーバレイ]→[交差(intersect)]からも起動可能

インターセクト処理では以下の項目を設定します。

インターセクトの設定画面
インターセクトの設定画面
  1. 入力レイヤ

    交差判定を行うベクタレイヤーをドロップダウンから選択します。現在プロジェクトに読み込まれているレイヤが一覧表示されます。

  2. オーバーレイレイヤ

    交差判定を行うもう一方のベクタレイヤーを選択します。このレイヤの形状に合わせて入力レイヤが切り抜かれます。

  3. 入力レイヤからコピーする属性

    入力レイヤーから結果に引き継ぐ属性フィールドを選択することができます。特に変更しなければ全ての属性が引き継がれます。

  4. オーバーレイレイヤからコピーする属性

    オーバーレイレイヤーから結果に引き継ぐ属性フィールドを選択することができます。特に変更しなければ全ての属性が引き継がれます。

  5. 詳細パラメータ
    • オーバーレイの属性の接頭辞 出力結果のレイヤの属性でオーバーレイレイヤから継承した属性のカラム名に接頭辞をつけることができます。
    • グリッドサイズ 指定した場合、出力結果のレイヤは指定されたサイズのグリッド幅でスナップされます。
  6. 交差(intersect)

    結果の出力先を指定します。一時レイヤとして保存する場合は「一時レイヤを作成」を選択、ファイルとして保存する場合は[...]ボタンをクリックして保存先とファイル名を指定します。

インターセクトの結果確認

鉄道線のラインデータが東京都の領域で切り抜かれていることがわかります。見た目はクリップ処理と似ていますが、属性テーブルを見ると、出力結果のレイヤーが入力レイヤーとオーバーレイレイヤーの両方の属性を持っていることが確認できます。

インターセクトの処理結果
インターセクトの処理結果
インターセクトの結果レイヤの属性テーブル
インターセクトの結果レイヤの属性テーブル

今回のオーバーレイレイヤーは、東京都の市町村ごとに地物が分かれたポリゴンデータです。そのため、出力結果のレイヤーにも市町村名の情報(「N03_004」列)が引き継がれます。市町村名の列で色分けすれば、鉄道線がどの市町村を通っているかも判別できます。

インターセクト処理結果。クリップ同様ポリゴンの領域にデータを切り抜いた上に、ポリゴンの地物の属性も継承するため、どの市町村に属する鉄道線なのかも判別することができる
インターセクト処理結果。クリップ同様ポリゴンの領域にデータを切り抜いた上に、ポリゴンの地物の属性も継承するため、どの市町村に属する鉄道線なのかも判別することができる

インターセクトの活用事例

単一エリアごとの面積を求める

例えば、画像のように対象エリア内に正方形の区画を用意し、各区画内に森林地域の面積がどれくらいあるかを調べるとします。森林地域のポリゴンとグリッドでインターセクトを実行します。

調査エリアを5kmごとに区切ったグリッドと森林地域ポリゴン
調査エリアを5kmごとに区切ったグリッドと森林地域ポリゴン

実行結果は、グリッドの区画ごとに区切られた森林地域ポリゴンが出来上がります。属性テーブルにはグリッドのid番号も保持していることがわかります。

属性テーブルにはグリッドデータが持っていたid番号を保持している
属性テーブルにはグリッドデータが持っていたid番号を保持している

この状態でポリゴンの面積を算出し、グリッドIDごとに面積を集計すれば、各グリッド内の森林面積を求められます。

各グリッド内の森林面積の集計結果
各グリッド内の森林面積の集計結果

ラインデータの共通箇所を抽出する

インターセクトではラインデータ同士で実行することで、両ラインデータが共通している箇所を抽出することができます。例えば、上下水道の埋設管と道路工事予定の干渉箇所の検出などで活用できるでしょう。

この場合、2つのラインが同じ位置で重なっている必要があります。一方のラインがもう一方を横切っているだけの場合や、ライン同士がわずかにずれている場合は抽出されないため注意しましょう。

それぞれのパターンでのインターセクト結果。左図では一方のラインがもう一方のラインを横切っているが、この場合はインターセクトの結果は何も抽出されない。右図では両者のラインが正確に一致している箇所(赤点線箇所)が抽出される。
それぞれのパターンでのインターセクト結果。左図では一方のラインがもう一方のラインを横切っているが、この場合はインターセクトの結果は何も抽出されない。右図では両者のラインが正確に一致している箇所(赤点線箇所)が抽出される。

おわりに

インターセクト処理は、GISにおける基本的かつ重要な空間演算の1つです。インターセクトを活用すると、2つのデータの共通部分を、両方の属性を保持したまま抽出できます。一方で、地物が分割されてデータが細かくなるため、クリップに比べて処理時間が長くなったり、出力結果のデータサイズが大きくなったりする点には注意しましょう。


データの出典

この記事を書いた人
QGIS LAB編集部
QGIS LAB編集部

QGIS LABは、オープンソースのGISソフトウェア「QGIS」に関する総合情報メディアです。「位置から、価値へ。」をコンセプトに、位置情報で世界を拓くための知識と技術をお届けします。

関連する記事