標高データから、河川および流域界を抽出する
ArcGISおよびSpatialAnalystを使って、レーザープロファイラのデータや数値地図50mメッシュ標高などから、河川(というか水が流れそうな所)や流域界を自動的に抽出することができます。
作業手順は『図解ArcGIS Part2 ~GIS実践に向けてのステップアップ~』に載っているので、必要な場合はそちらを参考にしてください。
簡単な手順
- 標高値をラスタ(標高グリッド)化にする
名前は何でもいいですが、ここではdemとします。 - データをスムージングする。
何も補正していない生データ(dem)を使うと、小さな凸凹に影響を受けて集水域が上手く作成できない場合があるため、解析のためのスムースなデータに変換します。微妙な凸凹を除去するには、Fillコマンドを使います。
ArcToolbox > Spatial Analyst Tools > 水文解析 > Fill
入力サーフェスラスタ dem
出力サーフェスラスタ fill_dem - グリット毎に水が流れる方向を計算します。
ArcToolbox > Spatial Analyst Tools > 水文解析 > FlowDirection
入力サーフェスラスタ fill_dem
出力流向ラスタ fd
ラスタには、流れの方向(北64、北東128、東1、南東2、南4、南西8、西16、北西32)という値が格納されます。 - 累積流量を計算する。
ArcToolbox > Spatial Analyst Tools > 水文解析 > FlowAccumulation
入力流向ラスタ fd
出力累積流量ラスタ fa
出力データタイプは、Integerにしておきましょう。
入力加重ラスタに値を入れない場合には、単純に流れる方向に累積していったセルの個数が値として反映されます。川は、流域から水が集まって形成されますので、ある程度値が入っているセルのみ表示させれば、澪筋がどこなるか分かります(この作業を次項Conで行う)。 - 河川グリッドの作成
ArcToolbox > Spatial Analyst Tools > 条件 > Con
入力条件付きラスタ fa
条件式がTRUEのときの入力ラスタ、または定数値 1
出力ラスタ con
条件式 Value >=100 とか
流域を抽出したい河川の規模にあった条件式で抽出します。大河川で集水メッシュ数が多いのに、条件式につかう値を小さくすると、流域が細切れすぎて使いにくいです。 - 支流毎にグループ分け
ArcToolbox > Spatial Analyst Tools > 水文解析 > Stream Link
入力河川ラスタ con
入力流向ラスタ fd
出力ラスタ sl - 集水域の作成
ArcToolbox > Spatial Analyst Tools > 水文解析 > Watershed
入力流向ラスタ fd
流出点データの入力ラスタ、またはフィーチャ sl
出力ラスタ ws
シンボルを個別値で塗り直せば、流域抽出完了です。
ご指摘ありがとうございます。
修正しておきました!
誤りを発見しました。
6.支流毎にグループ分け
ArcToolbox > Spatial Analyst Tools > 水文解析 > Stream Line
入力河川ラスタ fa
入力流向ラスタ fd
出力ラスタ sl
ここの入力河川ラスタはfaではなくconです。
本の方と比べて気付きました。