eyecatch

「プロセシングツールが動かない」を解決!無効なジオメトリの対処法

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

この記事でわかること


  • QGISのプロセシングツールがエラーで止まる原因の一つである「無効なジオメトリ」について
  • 無効なジオメトリの代表的なパターン(自己交差、重複頂点など)
  • QGISで無効なジオメトリをチェックし、修正する具体的な手順

こんな人におすすめ


  • QGISで空間演算を実行するとエラーが出て困っている方
  • 無効なジオメトリを見つけて解消したい方
  • データの品質や信頼性を高めたい方

はじめに

QGISでクリップや空間結合などのプロセシングツールを実行した際に、「無効なジオメトリ」というエラーが表示されて処理が止まってしまうことがあります。

このエラーは、データの形状に問題があることを示しています。放置したままでは、処理が失敗するだけでなく、ほかのGISソフトで正常に読み込めなかったり、意図しない見た目で描画されたりすることもあります。

この記事では、無効なジオメトリとは何か、どのような場面で問題になるのか、そしてQGISでチェック・修正する方法をわかりやすく解説します。

プロセシング処理が実行できない

クリップや空間結合などのプロセシングツールで処理を実行すると、「無効なジオメトリがあります。ジオメトリを修正するか、プロセシングの設定などで『無効地物フィルタ』を変更してください」といったメッセージが表示され、処理が中断することがあります。

例えば、下の図は国土数値情報ダウンロードサービスから取得した 洪水浸水想定区域データ と、行政区域データ のうち大阪市だけを抽出したポリゴンデータを表示したものです。

大阪市の行政区域データと洪水浸水想定区域データ
大阪市の行政区域データと洪水浸水想定区域データ

この洪水浸水想定区域データを入力レイヤ、大阪市のポリゴンをオーバーレイレイヤとして「切り抜く(clip)」 を実行すると、画像のようにエラーが表示されて処理が失敗します。

クリップの実行結果。無効なジオメトリがあり処理が失敗してしまっている
クリップの実行結果。無効なジオメトリがあり処理が失敗してしまっている

これは、入力レイヤとして使用した「洪水浸水想定区域データ」の中に、ジオメトリ形状に問題のある地物が含まれているためです。

このように無効なジオメトリが含まれていると、プロセシングツールが正常に実行できないなど、ような問題が起こります。

無効なジオメトリとは

ベクタデータにおける点・線・面といった形状のことを、「ジオメトリ」と呼びます。

ジオメトリには、地理空間データとして成立するための形状ルールがあります。無効なジオメトリ とは、そのルールに違反している図形のことです。代表的なパターンとして、次のようなものがあります。

ポリゴンデータの場合

  1. 自己交差:ポリゴンの境界線が自分自身と交差している
  2. 重複頂点:同じ座標の頂点が連続して存在している
  3. 内側のリングが外側のリングと交差:穴(内側リング)が外枠を突き抜けている
  4. 面積がゼロのポリゴン:頂点が2点しかない、または一部もしくはすべての頂点が同一線上にある
ポリゴンデータのジオメトリエラーの事例。n1、n2・・・はポリゴンを構成する頂点の順番を示す
ポリゴンデータのジオメトリエラーの事例。n1、n2・・・はポリゴンを構成する頂点の順番を示す

ラインデータの場合

  1. 長さがゼロのライン:始点と終点だけで構成され、しかもその2点が同じ地点にある
  2. 重複頂点:同じ座標の頂点が連続している
  3. 自己交差:頂点以外の箇所で線が自己接触している
ラインデータのジオメトリエラーの事例。n1、n2・・・はラインを構成する頂点の順番を示す
ラインデータのジオメトリエラーの事例。n1、n2・・・はラインを構成する頂点の順番を示す

こうした無効なジオメトリは、データの作成や編集の過程で意図せず発生することがあります。

トポロジチェッカーでジオメトリの有効性をチェック

無効なジオメトリの有無を確認するには、トポロジチェッカー を使います。トポロジチェッカーは、ツールバーエリアを右クリックして 「トポロジチェッカーパネル」 にチェックを入れると、QGIS画面の右側に表示されます。

トポロジチェッカーパネルの表示
トポロジチェッカーパネルの表示

まずは、トポロジチェッカーの設定を行います。

  1. トポロジチェッカーパネルの設定ボタンをクリックします。
  2. チェック対象のレイヤを指定します。
  3. チェックするルールを指定します。ジオメトリのエラーを確認したい場合は、「不正なジオメトリがあってはならない」 を選択します。
  4. [+]をクリックしてルールを追加します。
  5. [OK]をクリックします。
トポロジチェッカーの設定
トポロジチェッカーの設定

設定ができたら、実際にチェックを実行します。

  1. [すべて検証する]をクリックすると、設定したルールに基づいて検証が実行されます。
  2. エラーが見つかった場合は、該当する地物がリストに表示されます。項目をクリックすると、その地物に地図がズームします。
  3. 「キャンバスにエラーを表示」にチェックを入れると、エラーのある地物がマップ上でハイライト表示されます。ただし、個別のエラーを確認するときは見づらくなることもあるため、必要に応じてオン・オフを切り替えるとよいでしょう。
トポロジチェッカーの実行結果
トポロジチェッカーの実行結果

ジオメトリの有効性をチェックし無効なジオメトリは早期に解消することで、データの品質を保ち、データの不備に起因する処理の失敗を防ぐことができます。

無効なジオメトリの修正方法

エラーが見つかった地物は、編集モードで1件ずつ手作業で修正することもできます。ただし、エラーのある地物が多い場合は手間がかかります。そこでここでは、自動でエラーを解消する方法 を紹介します。

プロセシングツールボックスの [ベクタジオメトリ]→[ジオメトリの修復] を実行します。

ジオメトリの修復を実行する
ジオメトリの修復を実行する
  1. 入力レイヤ ジオメトリを修正したいレイヤを指定します。
  2. 修復方法 ジオメトリの修復に使用する方法を選びます。「構造」 はトポロジ構造の正しさを優先する方法で、より厳密に修正されます。「ラインワーク」 は元の見た目を優先する方法で、比較的寛容に修正されます。迷った場合は、まずデフォルトの 「構造」 を選んでおくとよいでしょう。
  3. 出力レイヤ 修正後のレイヤの保存先を指定します。

処理を実行すると、エラーが修正されたレイヤが出力されます。

エラーが修正されたレイヤが出力された
エラーが修正されたレイヤが出力された

出力されたレイヤを、先ほどと同じようにトポロジチェッカーで確認してみると、エラーは検出されず、無効なジオメトリが解消されたことがわかります。

修復後のデータで再度トポロジチェッカーを実行する。エラーは検出されなかった。
修復後のデータで再度トポロジチェッカーを実行する。エラーは検出されなかった。

さらに、ジオメトリを修復したデータを使用して、改めてクリップを実行してみます。さきほどは、エラーが発生し処理が中止されましたが、今度は問題なく処理が実行できまました。

ジオメトリを修復したデータではクリップなどのプロセシングも問題なく実行できる
ジオメトリを修復したデータではクリップなどのプロセシングも問題なく実行できる

無効なジオメトリがある地物を無視して処理をする

ジオメトリを修復せず、無効なジオメトリを含む地物を無視してプロセシングを進める方法もあります。ただし、この方法では無効なジオメトリを含む地物が出力結果から除外されるため、利用する際は注意が必要です。

メニューバーの[設定]から[オプション]を開き、左側のメニューで[プロセシング]タブを選択します。続いて[プロバイダ]→[一般情報]を開き、「無効地物フィルタ」の設定を [不正なジオメトリの地物を無視]に変更します。

これにより、プロセシング実行時に無効なジオメトリを含む地物をスキップして処理を進められるようになります。

オプションメニューから無効なジオメトリの地物を無視する設定にする手順
オプションメニューから無効なジオメトリの地物を無視する設定にする手順

おわりに

無効なジオメトリは、データの作成や編集の過程で発生することがあります。そのままにしておくと、プロセシングツールが実行できない、ほかのシステムで正常に読み込めないといった問題につながります。

そのため、重要な分析を行う前やデータを納品する前、他システムに読み込むために出力する前には、トポロジチェックを行って問題がないか確認しておくと安心です。

もしエラーが見つかった場合は、「ジオメトリを修正」やジオメトリの編集機能を使って対処しましょう。

使用データ

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

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

関連する記事