標高データから、河川および流域界を抽出する

ArcGISおよびSpatialAnalystを使って、レーザープロファイラのデータや数値地図50mメッシュ標高などから、河川(というか水が流れそうな所)や流域界を自動的に抽出することができます。

作業手順は『図解ArcGIS Part2 ~GIS実践に向けてのステップアップ~』に載っているので、必要な場合はそちらを参考にしてください。

簡単な手順

  1. 標高値をラスタ(標高グリッド)化にする
    名前は何でもいいですが、ここではdemとします。
  2. データをスムージングする。
    何も補正していない生データ(dem)を使うと、小さな凸凹に影響を受けて集水域が上手く作成できない場合があるため、解析のためのスムースなデータに変換します。微妙な凸凹を除去するには、Fillコマンドを使います。
    ArcToolbox > Spatial Analyst Tools > 水文解析 > Fill
    入力サーフェスラスタ dem
    出力サーフェスラスタ fill_dem
  3. グリット毎に水が流れる方向を計算します。
    ArcToolbox > Spatial Analyst Tools > 水文解析 > FlowDirection
    入力サーフェスラスタ fill_dem
    出力流向ラスタ fd
    ラスタには、流れの方向(北64、北東128、東1、南東2、南4、南西8、西16、北西32)という値が格納されます。
  4. 累積流量を計算する。
    ArcToolbox > Spatial Analyst Tools > 水文解析 > FlowAccumulation
    入力流向ラスタ fd
    出力累積流量ラスタ fa
    出力データタイプは、Integerにしておきましょう。
    入力加重ラスタに値を入れない場合には、単純に流れる方向に累積していったセルの個数が値として反映されます。川は、流域から水が集まって形成されますので、ある程度値が入っているセルのみ表示させれば、澪筋がどこなるか分かります(この作業を次項Conで行う)。
  5. 河川グリッドの作成
    ArcToolbox > Spatial Analyst Tools > 条件 > Con
    入力条件付きラスタ fa
    条件式がTRUEのときの入力ラスタ、または定数値 1
    出力ラスタ con
    条件式 Value >=100 とか
    流域を抽出したい河川の規模にあった条件式で抽出します。大河川で集水メッシュ数が多いのに、条件式につかう値を小さくすると、流域が細切れすぎて使いにくいです。
  6. 支流毎にグループ分け
    ArcToolbox > Spatial Analyst Tools > 水文解析 > Stream Link
    入力河川ラスタ con
    入力流向ラスタ fd
    出力ラスタ sl
  7. 集水域の作成
    ArcToolbox > Spatial Analyst Tools > 水文解析 > Watershed
    入力流向ラスタ fd
    流出点データの入力ラスタ、またはフィーチャ sl
    出力ラスタ ws
    シンボルを個別値で塗り直せば、流域抽出完了です。

関連しているかもしれない記事:


2 Comments

  • admin
    2009/12/22 火曜日 - 0:38:38 | Permalink

    ご指摘ありがとうございます。
    修正しておきました!

  • muratac
    2009/12/10 木曜日 - 22:45:21 | Permalink

    誤りを発見しました。

    6.支流毎にグループ分け
    ArcToolbox > Spatial Analyst Tools > 水文解析 > Stream Line
    入力河川ラスタ fa
    入力流向ラスタ fd
    出力ラスタ sl

    ここの入力河川ラスタはfaではなくconです。
    本の方と比べて気付きました。

  • コメントを残す

    メールアドレスが公開されることはありません。

    次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>