mcpField
T
terrain-hydrology

terrain-hydrology

github.com/muendデータ・データベース3766 回インストール2 週間前に更新
リポジトリ

terrain-hydrology について

terrain-hydrologyは、標高データから地形指標、河川網、流域、可視域を作成・検証する地理空間分析スキルです。DEMの準備や手法の選択、単位や水文処理に関する誤りの確認をGIS実務者向けに案内します。

主な機能

  1. 01DEMの出典・単位・NoDataの確認
  2. 02傾斜・斜面方位・曲率の算出
  3. 03窪地処理と流向計算
  4. 04河川網と流域の delineation
  5. 05可視域パラメーターの指針
  6. 06検証と記録の確認

活用シーン

  1. 01標高ラスタの分析前処理
  2. 02河川網と集水域の delineation
  3. 03流域結果と参照データの照合
  4. 04立地分析向け可視域の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/muend/geoai-skills --skill terrain-hydrology

インストール後、Claude Code で/terrain-hydrologyを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlreferences/authoritative-sources.md

詳細

地形と水文

目的: 数値が物理的に意味を持つ地形プロダクト。繰り返し発生する 2 つの失敗パターン: 単位の不一致(度単位の座標とメートル単位の標高を組み合わせると、あらゆる派生量が黙って破壊されます)と条件付けされていない DEM(流路が偽の窪地に流れ込み、断片化された架空の河川が生成されます)。

まず DEM の衛生管理

チェックルール
表面タイプ水文・傾斜には DTM(裸地)を、可視領域・日照には DSM(樹冠・建物を含む)を使用します。流域に DSM を使うと、河川が樹冠の上を流れることになります。
ソースほとんどのグローバルな作業では Copernicus GLO-30 > SRTM。利用可能なら国内の LiDAR DTM(自分で作成する方法は point-cloud-lidar を参照)。ソースと取得日を記録します。
Nodatanodata 値(-9999、-32768、3.4e38)を特定してマスクします — 統計や充填アルゴリズムに「非常に深い穴」として決して入れてはいけません。
ボイド水文条件付けの前にデータのボイド(空白)を(端からの補間で)充填します。充填した領域を文書化します。
CRS + 単位水平単位 = 垂直単位(メートル)になるよう、投影 CRS に再投影します。z 係数の補正なしで 4326 から傾斜を計算するのは典型的なサイレントエラーです。地理座標系のままにする場合は、緯度依存の z 係数を適用します — より良いのは、そうしないことです。

派生量

import whitebox
wbt = whitebox.WhiteboxTools()
wbt.slope("dem.tif", "slope_deg.tif", units="degrees")
wbt.aspect("dem.tif", "aspect_deg.tif")
wbt.plan_curvature("dem.tif", "plan_curv.tif")
  • 傾斜: 単位を明示します(度かパーセントか — 45° = 100%)。Horn の方法 (3×3)が標準です。急峻な地形では解像度の影響を考慮します (セルサイズが大きくなるほど傾斜は緩やかになります — すべての傾斜 統計にセルサイズを併記します)。
  • 方位: 循環変数です — 決して算術平均してはいけません。ベクトル (sin/cos)平均を使用します。平坦なセルは方位が未定義です(マスクし、0 にはしない)。
  • 曲率: plan(流れの収束)と profile(流れの加速) — 問いに応じて選びます。
  • 陰影起伏図は地図作成用であり(cartography-geoviz を参照)、決して解析の 入力にしないでください。
  • 起伏度・位置: TRI、TPI(半径依存 — 半径を報告します)、 地形分類にはジオモルフォンを使用します。

水文条件付け — 順序が重要

voids filled → breach depressions (preferred) → fill remaining pits
→ flow direction → flow accumulation → streams → watersheds
  • 充填より先にブリーチング(WhiteboxTools BreachDepressionsLeastCost): 上流の領域を平坦に氾濫させるのではなく、 障壁(カルバート上の道路盛土)を切り開きます。平坦な地形や盛土された地形で 純粋な充填を行うと、任意の流路を持つ大きな人工湖が生じます。
  • 実際の窪地は存在します(カルスト、プレーリーのポットホール、貯水池)。 景観が本当に水を貯めるなら、条件付けでそれを取り除いてはいけません — 明示的な窪地処理でモデル化し、そのことを明記します。
  • 流向: 河川網・流域には D8(離散的、標準)。丘陵斜面での 分散量(湿潤指数、侵食)には D-infinity/MFD を使用します。

河川と流域

  • 河川抽出手順の閾値(最小集積量)はモデリング上の選択です: 地図化された参照河川網から導出するか(総河川長を一致させる)、 閾値を報告して 2 つの代替案を示すか — 1 つの閾値の河川網を「これが」 河川であるかのように提示してはいけません。
  • 流出点のスナップ: 出口座標はモデル化された河道セル上に めったに乗りません。検索半径内で最も集積量が大きいセルにスナップします (wbt.jenson_snap_pour_points) — スナップされていない流出点は、 小さく誤った流域を黙って生み出します。
  • delineation(流域界の抽出)を検証します: 流域面積を権威ある流域データと比較し(±5〜10%)、 モデル化された河川網を 3 か所で画像・地形図に重ね合わせます。
  • 湿潤指数(TWI)、河川動力(SPA): 条件付けされた DEM + MFD 集積量から計算します。これらは相対的な指数です — 地域をまたいで絶対的な 閾値を読み取ってはいけません。

可視領域

  • DSM(または DTM + 地物高)を使用してください — 裸地の可視領域は 樹木や建物が存在する場所では可視性を過大評価します。どのサーフェスを 使用したかを明記してください。
  • 観測点の高さ(人物なら約 1.7 m、インフラなら塔の高さ)と 目標高を明示的に設定してください。デフォルト値はツールごとに異なります。
  • 約 5 km を超える場合は地球の曲率と屈折を考慮してください (wbt.viewshed が処理しますが、フラグを確認してください)。
  • バイナリの可視/不可視に加えて、観測点とパラメータを メタデータとして提供してください。立地問題では、候補集合からの累積可視領域が mcda-suitability-analysis に供給されます。

ツール

WhiteboxTools(コンディショニング、完全な水文学スイート、高速)· pysheds (軽量な Python 流域解析)· richdem(微分)· GDAL (gdaldem)による迅速な傾斜/陰影起伏 · GRASS(r.watershed)による非常に 大規模な DEM(明示的な填埋は不要 — 最小コストルーティング)。

検証プロトコル

  1. 微分ヒストグラム:広い領域で傾斜 > 60°、または負の 集積 = 単位/ノーデータのバグ。
  2. 3 地点(うち 1 地点は平坦な領域 — アーティファクトが集中する場所)で 画像に河川網をオーバーレイ。
  3. 流域面積を権威ある流域ポリゴンとクロスチェック。
  4. 報告:DEM のソース/日付/解像度、コンディショニング手法、流向 アルゴリズム、河川閾値を、すべて成果物に記載。

落とし穴チェックリスト

  • z ファクターなしの地理座標系 DEM からの傾斜(値が約 100 倍ずれる)。
  • 流域 delineation に DSM を使用(樹冠上の河川)。
  • 道路盛土を横断する填埋のみのコンディショニング → 幻の湖。
  • スナップされていない流出点 → 3 セルの「流域」。
  • アスペクトの算術平均(350° と 10° は南に平均され、北にはならない)。
  • 填埋/統計でノーデータを標高として処理。
  • 1 つの任意の河川閾値を排水網として提示。

実行契約

  • ワークフロー: DEM のソース、CRS、垂直単位、測地系、解像度、ノーデータを検査;地形をコンディショニング;勾配と流れを導出;プロダクトを delineate;閾値をテスト;画像とコントロールに対して検証。
  • 決定ルール: ラスタ標高プロダクトには地形ワークフローを使用し、DEM 生成前には点群ワークフローを使用し、景観とスケールに基づいてコンディショニングと流向アルゴリズムを選択。
  • 検証プロトコル: 微分分布、陰影起伏アーティファクト、河川オーバーレイ、流域面積、流出点のスナップ、閾値感度、標高コントロール残差を検査。
  • 失敗モード: DSM の誤用、地理単位の傾斜、垂直測地系の不一致、コンディショニングされていない障壁、ノーデータ汚染、スナップされていない出口、またはソースデータがサポートしない解像度からのプロダクトを拒否。
  • 成果物: コンディショニング済み DEM、微分および水文プロダクト、パラメータと閾値の記録、CRS と垂直測地系、QA マップ、検証指標、および制限事項。
  • ソースの鮮度: ツールアルゴリズムやプロダクトルールを適用する前に権威あるソースレジストリを参照し、確認日を記録してください。

コメント