terrain-hydrology について
terrain-hydrologyは、標高データから地形指標、河川網、流域、可視域を作成・検証する地理空間分析スキルです。DEMの準備や手法の選択、単位や水文処理に関する誤りの確認をGIS実務者向けに案内します。
主な機能
- 01DEMの出典・単位・NoDataの確認
- 02傾斜・斜面方位・曲率の算出
- 03窪地処理と流向計算
- 04河川網と流域の delineation
- 05可視域パラメーターの指針
- 06検証と記録の確認
活用シーン
- 01標高ラスタの分析前処理
- 02河川網と集水域の delineation
- 03流域結果と参照データの照合
- 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 を参照)。ソースと取得日を記録します。 |
| Nodata | nodata 値(-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(明示的な填埋は不要 — 最小コストルーティング)。
検証プロトコル
- 微分ヒストグラム:広い領域で傾斜 > 60°、または負の 集積 = 単位/ノーデータのバグ。
- 3 地点(うち 1 地点は平坦な領域 — アーティファクトが集中する場所)で 画像に河川網をオーバーレイ。
- 流域面積を権威ある流域ポリゴンとクロスチェック。
- 報告:DEM のソース/日付/解像度、コンディショニング手法、流向 アルゴリズム、河川閾値を、すべて成果物に記載。
落とし穴チェックリスト
- z ファクターなしの地理座標系 DEM からの傾斜(値が約 100 倍ずれる)。
- 流域 delineation に DSM を使用(樹冠上の河川)。
- 道路盛土を横断する填埋のみのコンディショニング → 幻の湖。
- スナップされていない流出点 → 3 セルの「流域」。
- アスペクトの算術平均(350° と 10° は南に平均され、北にはならない)。
- 填埋/統計でノーデータを標高として処理。
- 1 つの任意の河川閾値を排水網として提示。
実行契約
- ワークフロー: DEM のソース、CRS、垂直単位、測地系、解像度、ノーデータを検査;地形をコンディショニング;勾配と流れを導出;プロダクトを delineate;閾値をテスト;画像とコントロールに対して検証。
- 決定ルール: ラスタ標高プロダクトには地形ワークフローを使用し、DEM 生成前には点群ワークフローを使用し、景観とスケールに基づいてコンディショニングと流向アルゴリズムを選択。
- 検証プロトコル: 微分分布、陰影起伏アーティファクト、河川オーバーレイ、流域面積、流出点のスナップ、閾値感度、標高コントロール残差を検査。
- 失敗モード: DSM の誤用、地理単位の傾斜、垂直測地系の不一致、コンディショニングされていない障壁、ノーデータ汚染、スナップされていない出口、またはソースデータがサポートしない解像度からのプロダクトを拒否。
- 成果物: コンディショニング済み DEM、微分および水文プロダクト、パラメータと閾値の記録、CRS と垂直測地系、QA マップ、検証指標、および制限事項。
- ソースの鮮度: ツールアルゴリズムやプロダクトルールを適用する前に権威あるソースレジストリを参照し、確認日を記録してください。
コメント
Markdown 対応