ユニット 4 / 11

GIS/GIS 分析と空間クエリ

利益:

  • バッファー、交差点、空間結合、近傍などの GIS 解析を AI で設計し、段階的に構築する能力
  • 自然言語から属性および空間クエリ (SQL/式) を生成し、それらを QGIS/PostGIS 環境に適応させる機能
  • トポロジーの一貫性、投影の適合性、面積/長さのロジックを使用して GIS 解析の出力を検証する機能

GIS (Geographic Information System、英語では GIS) は、位置データの保存、クエリ、分析、地図作成を行うシステムの一般名です。測量技師の日常業務のほとんどはここで行われます。「この川に 50 メートルより近い区画はどれですか?」、「これら 2 つの層が重なっているエリアはどこですか?」、「近隣あたりの建物の数は?」などです。空間分析などを使用して質問に対する答えを導き出します。この単元では、人工知能を使用してこれらの分析を設計し、自然言語からクエリを生成し、QGIS/PostGIS 環境に適応させる方法について説明します。原則: AI が分析を構築し、クエリを作成します。結果の妥当性は、投影、トポロジー、ロジック制御を通じてエンジニアに残ります。

まず基本的な用語。ベクター データは、世界を点、線、多角形 (土地、道路、井戸) で表します。ラスター データは、世界をセル/ピクセルのグリッドで表します (標高モデル、衛星画像)。属性は、ジオメトリ (区画エリア、所有者、島/区画番号) に関連するテーブル情報です。バッファは、ジオメトリの周囲に一定の距離を置いて作成される領域です。空間結合は、空間関係 (各建物とその近隣) に基づいて 2 つのレイヤーを照合します。トポロジは、ジオメトリ間の隣接/重複/ギャップのルールです。

GIS 分析における AI の役割

AI は、次の 3 つの具体的な場所で GIS を加速します。

  1. 分析設計。 「質問に答えるには、どのレイヤーがどのような順序で、どのツールを使用して処理されますか?」質問に対して段階的な計画を立てます。これにより、特に複雑な複数ステップの分析において、思考負荷が軽減されます。
  2. クエリの生成。自然言語リクエストを QGIS 式、SQL、または PostGIS 関数に変換します。 「面積が 500 平方メートル未満で、農業的な性質を持つ区画」というリクエストをフィルター式に入れます。
  3. ワークフローとコード生成。反復分析を Python/PyQGIS スクリプトに変換します (このトピックについてはユニット 10 と 11 で詳しく説明します)。

しかし、AI には重大な盲点があります。AI はデータを認識せず、レシピを認識するだけです。レイヤーがどの CRS にあるか、属性列の正確な名前、データがクリーンかどうかはわかりません。したがって、生成されるクエリは構文的には正しいですが、データ上では間違っている可能性があります。

注意: 距離と面積の計算は、メトリック (投影) CRS でのみ正確です。 50 m のバッファーを地理座標 (度) で直接取得すると、度メーターの混乱により完全に不正確な結果が得られます。解析前にレイヤーを適切な投影に配置します。

ステップバイステップ: 空間分析の構築

質問例: 「小川に 100 m より近い、建築許可のある区画を見つけてください。」

  1. インプットとCRSを明確にする。ストリーム レイヤー (ライン)、パーセル レイヤー (ポリゴン)、両方ともメートル CRS である必要があります (例: TUREF/TM33)。
  2. 手順を計画してください。 AI へ: ストリームへの 100 m バッファー → プロットとの交差/選択 → 属性から「ライセンス済み」フィルター → 結果カウント。各ステップのシーケンスと出力を書き込ませます。
  3. クエリを生成してもらいます。フィルター式 ("status" = 'licensed') と選択ロジックを QGIS/PostGIS に変換します。
  4. 少量のサンプルでテストします。データ全体ではなく小さなサブセットに対して分析を実行し、結果を視覚的に確認します。
  5. 結果を確認します。カウント(ランク)は妥当ですか?選択したパーセルは本当にストリームに近いですか (視覚/トポロジ チェック)?フィールドには意味があるのでしょうか?

3 つのミニケース: 数字で見る

ケース 1 — 程度のバンパー災害。インターンは、WGS84 geo CRS のパーセル レイヤーに 100 ユニット バッファを直接適用しました。その結果、半径約 11 km (1 度 ~111 km) の不条理な領域が生成されました。ランク チェック (「バッファ領域をパーセルのサイズの何千倍にもすることはできません」) では、すぐにエラーが表示されました。レイヤーがメートル CRS にインポートされたとき、バッファーは 100 m として正確でした。

ケース 2 — 列名が正しくありません。 AI は、「農業に適格な区画」に対して「適格」=「農業」という表現を生成しました。一方、列の実際の名前は PLOT_VASF で、値は FIELD でした。クエリはエラーなしで 0 件の結果を返しました。エンジニアが属性テーブルを開いて実際の列名と値を AI に与えると、クエリが改善されました。教訓: AI は列名を作成できます。実際の回路図を示します。

ケース 3 — トポロジーの問題。 2 つの隣接する地区境界層に小さなギャップ (スライバー) と重なりがありました。 AI を活用した「面積合計」分析では、これらのエラーにより、実際の合計から約 2% の誤差が生じました。トポロジ制御と修正後、領域は一致しました。教訓: 解析結果は入力ジオメトリと同じくらいきれいになります。

弱いプロンプト / 強いプロンプト

弱いプロンプト:

小川の近くの区画を検索するクエリを作成します。

強力なプロンプト:

タスク: QGIS の空間解析構造と式を作成します。コンテキスト:- ストリームレイヤー: ライン、CRS EPSG:5256 (TUREF/TM33)- パーセルレイヤー: ポリゴン、CRS EPSG:5256、属性列: ADA_NO、Plot_NO、STATUS (値: 'ライセンスあり'、'アンライセンス')、AREA_M2質問: ストリームに 100 m より近いパーセルを選択し、STATUS = 'ライセンスあり'、その番号と総面積。リクエスト: 1) ステップを順序付けします (バッファー -> 空間選択 -> 属性フィルター)。 2) 各ステップでどのツールを使用するかを書きます。 3) 距離/面積に関するメトリック CRS 要件を思い出してください。 4) 結果ステップを検証します (ランク + 視覚的制御)。追加。

強力なプロンプトにより、実際の列名、CRS、値セット、検証ステップが表示されます。出力はデータに適合します。

4 つのコピー可能なテンプレート

1) 分析計画の作成:

ステップバイステップの GIS ワークフローを作成して、次の空間に関する質問に答えます。各ステップで入力レイヤー、使用するツール、出力レイヤーを指定します。メトリクス CRS が必要な手順を確認してください。質問: [質問]。レイヤー: [リスト]

2) 自然言語からの QGIS 表現:

次のフィルターを QGIS 属性式に変換します。指定された列名と値のみを使用してください。コラムフィッティング。不確実性があるかどうかを尋ねます。列/値: [スキーム]。リクエスト: [フィルター]

3) PostGIS クエリ:

次の空間分析 (ST_ 関数) 用の PostGIS SQL を作成します。ジオメトリの SRID [srid] を想定します。距離はメートル法である必要があります。クエリを説明し、検証用のハッシュ クエリを追加します。分析: [定義]

4) 結果の妥当性チェック:

次の GIS 解析結果が妥当であるかどうかを確認します: 結果カウント ランク、フィールド/長さのロジック、Null/重複レコード、CRS 準拠。疑わしい点を列挙し、考えられる原因を書きます。結果の概要: [概要]

GIS 解析ツールの比較

車両

どういうことですか

一般的な使用法

注意

バッファー

周囲の距離エリア

ガードバンド、近接

メトリック CRS が必要です

交差する

共通領域を減算します

競合分析

トポロジーはクリーンでなければなりません

空間結合

場所による一致

建物と隣接関係

関係タイプ (内部/交差)

溶かす(混ぜる)

同じ属性を融合する

境界の単純化

属性の選択

クリップ

制限に応じてカットします

ワークスペースの制限

境界ジオメトリは正しいですか?

よくある間違い

  • geo CRS での距離/面積の計算。分析前にメトリック投影に切り替えません。
  • AI が作成した列名を使用します。実際の計画を示していない。サイレント 0 件の結果。
  • トポロジーが壊れたデータを使用して分析を実行します。隙間や重なりがあると、スペースや計数エラーが発生します。
  • 空間関係のタイプを混乱させます。 「内側」と「交差」では結果が異なります。
  • 結果をランク管理しない。不条理なフィールド/数値に気付かない。
  • すべてのデータを盲目的に実行します。小さなサンプルでテストせずにビッグデータに適用します。

要約すれば

GIS 分析における人工知能。これは、ワークフローを計画し、自然言語リクエストをクエリに変換し、コードを生成するための強力なアシスタントです。しかし、AI はデータを認識しません。 CRS、実際の列名、およびトポロジの品質を指定する必要があります。最も重要なルールは、距離と面積の計算がメートル法 CRS でのみ正確であるということです。各結果の順序、トポロジーの一貫性、ロジックを確認します。小さなサンプルでテストせずにビッグデータに適用しないでください。

アプリケーションタスク

空間に関する質問を選択します (例: 「道路から 25 m 未満の建物」)。レイヤー、その CRS、および実際の属性列名を入力します。 AI に分析計画と QGIS 式を段階的に生成させます。次に、3 つのチェックで出力をテストします。(1) は使用されるメトリック CRS です。(2) 列名は実際のスキーマと一致していますか。(3) 順序どおりの妥当な結果の数です。

チェックリスト

  • [ ] レイヤーをメトリック CRS (距離/面積用) にインポートしました。
  • [ ] 実際の属性列の名前と値を AI に与えました。
  • [ ] 分析手順とツールを計画しました。
  • [ ] 空間関係タイプ (内部/交差) を正しく選択しました。
  • [ ] 入力ジオメトリのトポロジを確認しました。
  • [ ] 最初に小さなサンプルで分析をテストしました。
  • [ ] ランクとロジックの結果を確認しました。
  • [ ] 最終コメントはエンジニアの承認のために保管しておきました。