ユニット 4 / 12

QGIS と Python を使用した空間データ ワークフロー

利益:

  • QGIS および Python (GeoPandas などのライブラリ) による空間データ処理のためのコードおよびワークフロー生成で AI を使用する機能
  • AI によって生成された空間コードを小さなサンプル データでテストし、座標系およびジオメトリのエラーに対して検証する機能
  • データの機密性を理解し、AI が生成したスクリプトを実際のプロジェクト データで実行する前にチェックする必要性を理解する能力。

計画単位での繰り返しの空間タスク (レイヤーのトリミング、バッファーの描画、面積の計算、テーブルの結合) は何時間もかかり、手動で行うとエラーが発生します。これらのタスクを自動化する強力な無料のオープンソース ツールが 2 つあります。QGIS (デスクトップ GIS ソフトウェア) と Python (GeoPandas、Shapely、Rasterio などの空間データのライブラリを備えたプログラミング言語) です。 AI は、これらのツールのコードとワークフローを驚くほど速く生成し、一文のリクエストから実用的なスクリプトを作成します。しかし、AI は、間違った座標系、間違った単位、要素をサイレントに削除する操作など、目に見えない前提を前提にしてコードを作成します。そのため、AI が生成するすべての空間コードは、実際のプロジェクト データで実行する前に、小さなサンプルで読み取ってテストする必要があります。この単元では、コーディングの方法を知らなくても、AI を使用した安全な空間オートメーションを学びます。

なぜ QGIS と Python なのか

QGIS をクリックすると分析できます。習得が簡単で、Python コンソールが含まれています。一方、Python では、繰り返しのタスクを 1 回作成して、それを数百のファイルで実行できます。 GeoPandas は、表形式のデータ (パンダ) と地理を組み合わせた、プランナーにとって最も実用的なライブラリです。レイヤーの読み取り、フィルター、バッファーの描画、面積の計算を 1 行のコードで行います。 AI は GeoPandas コードを非常にうまく書きます。しかし、見栄えの良いコードが常に正しいコードであるとは限りません。

注意: AI によって作成されたスクリプトは、エラーなしで実行されても、完全に間違った結果が生成される場合があります。 「うまくいった」と「正しい」は別のことです。検証とは、コードが失敗しないことを意味するのではなく、結果が既知の参照と一致することを意味します。

もう 1 つの重要な概念は再現性です。公的機関で行った分析は、数か月後に他の人が同じ手順で繰り返すことができる必要があります。手動でクリックして行ったアクションは記憶されず、監査することもできません。一方、Python スクリプトは作業の記録であり、同じ結果を再現します。 AI を使用して作成したコードをコメントとともに保存すると、説明責任と企業の記憶の両方が強化されます。したがって、「動作するコード」ではなく、「読みやすく、コメントが付けられ、保存されたコード」を目指してください。良い習慣として、各スクリプトの先頭に短い説明ブロックを追加し、どのデータで、どの日付で、どのような目的で実行されるかを説明することです。

AI によるコード生成の黄金律

  1. コンテキストを教えてください。ファイル形式、CRS、列名、やりたいこと。
  2. 小さいものを求めてください。単一のジョブを実行するショートコードは、巨大なスクリプトより安全です。
  3. 説明を求めてください。コードの各行が何を行うかを AI に出力します。理解できないコードを実行しないでください。
  4. サンプルでテストしてみます。まずは 10 ~ 20 レコードのサンプル データで試してください。
  5. 参考資料と比較してください。面積/距離を既知の値と比較します。
  6. バックアップしてください。マスターデータを決して上書きしないでください。コピーで作業します。

ステップバイステップ: AI を使用した安全な空間スクリプト

  1. 課題を明確にする。 「区画レイヤーから緑地エリアを選択し、その面積を計算し、5000 平方メートルを超える面積を別のファイルに書き込みます。」
  2. データを特定します。形式 (GeoPackage/Shapefile)、CRS、関連する列名。
  3. コードと説明を AI に出力します。一行ずつコメントしていきます。
  4. CRSとユニット制御を行ってください。面積は m² ですか、それとも層はメートル法 CRS ですか?
  5. サンプルデータを実行します。結果を視覚的に確認します。
  6. リファレンスで確認してください。土地区画の面積と権利証書の価格を比較します。
  7. マスター データに対して実行し、出力を新しいファイルに書き込みます。

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

弱いプロンプト: 「区画の面積を計算してください。」

AI は座標系、形式、列を知らずに書き込みます。フィールドが間違った単位または間違った CRS に表示される可能性があります。

強力なプロンプト: 「GeoPandas を使用して、GeoPackage レイヤー ('parcels.gpkg'、CRS: EPSG:5254 などのメートル国家システム) を読み取り、各区画の面積を m² 単位で新しい 'area_m2' 列に書き込みます。コードの各行をコメント化します。面積計算の前に、レイヤーがメートル CRS であることを確認する行を追加します。そうでない場合は警告します。出力を新しいファイルに書き込み、オリジナルです。」

2 番目のプロンプトは、CRS、ユニット、安全な出力、および説明を含むため、監査可能な安全なコードを生成します。

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

タスク: GeoPandas で次のタスクを実行する短い Python コードを作成します。各行にトルコ語でコメントを付けます。アクション: [...]入力ファイル: [...] (形式、CRS: [...]、関連する列: [...])ルール: 元のファイルを変更せず、出力を新しいファイルに書き込みます。操作前に CRS がメトリックであることを確認してください。そうでない場合は、警告してください。

タスク: 次の Python/GeoPandas コードを 1 行ずつ説明し、リスクをマークします。どの行がデータを削除または上書きする可能性があるか、どの操作が CRS またはボリュームを前提としているか、ビッグ データではどのステップが遅くなるかを示します。コードを変更する。説明して警告するだけです。コード: [...]

タスク: 実際のデータでこのコードを実行する前に、小さなテスト計画を作成します。どのようなサンプルデータを使用し、どのような結果が期待され、どのような基準値を使用して検証する必要があるでしょうか?チェックリストを与えます。コード/アクション: [...]

タスク: 次の QGIS アクション (ステップをクリック) を、QGIS メニュー パスと同等の Python/GeoPandas コードの両方として記述します。相違点と関心のある点 (CRS、ユニット) を指定します。プロセス: [...]

表: 頻繁に行われる空間操作とその落とし穴

トランザクション

どういうことですか

AIコードの罠

検証

フィールドアカウント

ポリゴン領域を検索します

地理的CRSではフィールドは無意味です

既知領域との比較

バッファー

国境付近の地域

単位(度/メートル)誤差

メトリクス CRS + 測定

空間集約

アソシエイツレイヤー

間違ったキー/重複登録

レコード数制御

クリップ

面積を使ってカットする

境界外のデータ損失

入出力の比較

再投影

CRS が置き換える

ターゲットCRSが間違っています

EPSGコードの確認

ミニケース3個

ケース 1 — サイレント上書き。プランナーは、AI によって書かれたスクリプトをベースレイヤーで直接実行します。このコードはフィルターを誤って適用し、レイヤーの半分を削除して、同じファイルに保存します。バックアップがないため、数日間保存されたデータは失われます。教訓: 常に新しいファイルに出力し、マスター データは常に冗長です。

ケース 2 — 間違った単位のバッファ。あるチームは学校に500フィートのアクセスバッファーを要求しています。 AI コードは geo CRS 上で実行されます。 500「度」のバッファはマップ全体をカバーします。チームは小さなサンプルでテストを行っているため、メイン データに渡される前にエラーを検出します。メトリクス CRS への投影を追加および修正します。テストする習慣は災害を防ぎます。

ケース 3 — 説明的な学習。コードを知らないプランナーが各行をAIに解釈させて結合コードを生成します。彼は説明で「この行は一致しないレコードを削除します」を見て、これにより一部の区画が失われることに気づきました。不一致も保持するバージョンを AI に要求します。コードを理解することは、コードを安全に使用するための前提条件です。

よくある間違い

  • マスターデータ上で直接実行します。常にコピーを作業し、出力を新しいファイルに書き込みます。
  • 「うまくいった」を「正しい」と勘違いしている。エラーのないコードは、誤った結果を生成する可能性があります。参考に検証してみます。
  • CRS とボリュームを想定しています。面積および距離の操作については、メトリック CRS を常に確認してください。
  • 理解できないコードを実行しています。説明を求めず、行が何をするのかを知らずに実行するのは危険です。
  • ちょっとしたテストはスキップしてください。サンプル データを試行せずにビッグ データに切り替えることが、最も一般的なエラーの原因です。
  • 機密データを何も考えずにクラウド デバイスに渡してしまう。コードを生成するときは、実際の土地/人のデータを共有しないでください。サンプル/匿名データを使用します。

要約すると

QGIS と Python (特に GeoPandas) は、計画における反復的な空間タスクを自動化します。 AI はこれらのツールのコードを迅速に生成します。しかし、AI は、間違った CRS、間違ったボリューム、サイレントにデータを削除する操作など、目に見えない前提を前提にしてコードを作成します。安全な使用法は 6 つのルールに基づいています: コンテキストの提供、小さな質問、説明の取得、例でのテスト、参照による検証、バックアップ。 「うまくいった」ことと「正しい」ことは同じではありません。コードを知らなくても、機密データを共有することなく、すべての行を理解して AI を使用して安全な空間オートメーションを実行できます。

アプリケーションタスク

反復的な空間タスクを選択します (例: レイヤー内の面積を計算し、しきい値の上部を分離する)。 (1) 最初のテンプレートで AI にコード + 行の説明を出力します。 (2) 2 番目のテンプレートと同じコードのリスクを確認し、「データが消去される可能性がある/CRS を想定する」行を少なくとも 1 行見つけます。 (3) 3 番目のテンプレートでテスト計画を出力します。どのサンプル データ、どの基準値かを出力します。 (4) 実際のデータに対してコードを実行する前に実行する 3 つのセキュリティ手順を書き留めます。

チェックリスト

  • [ ] AI にフォーマット、CRS、列コンテキストを与えました。
  • [ ] コードのすべての行を説明しました。理解できないコードは実行しませんでした。
  • [ ] 短い単一関数のコードが必要でした。
  • [ ] 小さなサンプルデータでテストし、結果を視覚的に確認しました。
  • [ ] 既知の参考値で結果を検証しました。
  • [ ] マスター データをバックアップしました。出力を新しいファイルに書き込みました。
  • [ ] 私は実際の機密データをクラウド アプライアンスに渡しませんでした。匿名/サンプルデータを使用しました。