見出し画像

[初心者] QGISでの流域界(集水域)作成方法(水文解析)

初投稿になります。
GISツールの勉強を始めた初心者になります。
自身の備忘録として作業内容を今後、残そうかと思います。
今回のトピックはQGISでの水文解析です。
あまり調べても情報がなかったので、
(古いバージョンの情報が多く、うまくいきませんでした。笑
作業内容としてざっくり説明すると標高データを元に水文解析を行い
流域界・流路・流向を抽出しようという感じです。
ざっと書いて投稿したので,もっと細かい説明が欲しい等
コメントあれば言ってくだされば追記したいと思います。

 作業内容

1.解析データの作成
 国土地理院からDEM(数値標高)データをダウンロードして下さい。
対象領域は河川がある場所であれば、どこでも大丈夫です。
(計算負荷等を鑑みると解像度は10mがよいかも)
QGISに読み込ませるために,geotif形式に変換しましょう。
(変換方法については下記参照,やり方はいろいろありますが、)

2.QGISでの作業
 データが用意できたらさっそく解析していきましょう!
作業環境は,
QGIS(ver.3.12.02) for Windowsです。
今回の作業ではQGISのプロセシング→ツールボックス内にある
SAGAという計算ツールを使います。
(GRASSを使った方法もあるみたいです。

2.1  DEM(標高データの平滑化) Fill
 まず,プロセシングを選び→ツールボックスを開きます。
そこで,SAGA→Terrain Analysis -Hydrology→Fill sinks xxl(wang & liu)
Fill sinks xxl(wang & liu)
を使います。
Fill sinks xxl(wang & liu)は DEM の窪地を埋めます。
窪地の説明ですが、地形での水が貯留される凹地を示す一般的用語です。
DEM 解像度にもよりますが,窪地による解析エラーが生じることがあるみたいです。そのため解析前に平滑化しておきます。

Fill sinks xxl(wang & liu)を開き→レイヤからDEMデータを選ぶ
後はデフォルト値で大丈夫です。実行で計算します。
計算後に新しくDEMデータが生成されます。
自分で分かるように名前を変更しておきましょう。
私は、DEM_Filledと名前を変更しました。

2.2 河川と定義するに閾値を決める
 
平滑化した標高データより、河川流路を探します。
この節ではSAGA→Terrain Analysis -Hydrology→Strahler order
Strahler orderは,

河川の合流点をノード点としてそこから分岐した支流の数を
探してあげるツールみたいです。(下図)

(上図,wikipediaより参照)
つまり,支流となる河川はStrahler Numberが小さくなります。
主流となる河川はいくつも河川が分岐しているので、数が大きくなるというわけですね。
Strahler order→標高グリッド(Elevation)に平滑化したDEMデータを選択。
後は実行で大丈夫です。
実行後,抽出された流路のレイヤが作成されます。
作成されたレイヤのプロパティより,分類方法を連続的(graduated)にする。
そうするとStrahlerナンバーに応じて分類してくれます。
解析結果に応じて閾値を決めます。
QGISのラスタ→ラスタ計算機を使って
式部分に(”ラスタ名” > 閾値)出力に適当な名前→OKで
閾値以下の支流が弾かれたラスタを生成してくれます。
↑の作業を
自分の目で見て、いい塩梅になるように閾値を調整してやってください。
この作業により流域を作成する際の閾値を決めることができます。

2.3 流域界(集水域)・流路・流向の抽出
 
やっと本題ですね。ここから流域界等の抽出をおこないます。
SAGA→Terrain Analysis -Hydrology
Channel network and drainage basins を使います
パラメータの設定ですが
標高グリッド(Elevation) → 平滑化したDEM
閾値(Threshould) → 2.2で決めた閾値
出力ファイルですが
フロー方向(Flow Direction)
排水領域(Draubage Basins)
流路(Channels)

の3つを選択し,あとはチェックアウトして頂いて実行してください。
そうすると流向・排水領域・流路のラスタを作成してくれます。

出力されたデータの説明です
流向ラスターですが出力値が 0~7 255で出力されます。
DEM のセルには8このセルが隣接しています。
セルから流出入する流れは,8 つの方向に流出します。
ここで8つの方向を 0~7に割り振っています。
255の場合は平行状態で向きがないと捉えればいいでしょう。

流路については、2.2と同じような閾値に応じた流路を生成してくれます。

排水領域(Draubage Basins)についてですが、
細かく分割されているかもしれません。

ここで,自身で領域の設定を行う方法を説明します。
SAGA→Upslope area →対象エリア(optional)に平滑化されたDEMを選択
Upslope areaは, 流路の座標を選択し、それより上流の部分を領域を集水域として2値化してくりぬいてくれます。

使い方ですが,DEMを選択し
QGISの地物情報選択を使って流域界を定義したい領域の一番下流までカーソルをずらし流路上の座標をクリックします。
(ズームして流路の上の座標を取得するように注意して下さい)
対象X,Y座標については,2.3のレイヤより抽出した流路の座標を抽出します。
後は実行してあげれば2値化したレイヤを作ってくれます。

編集するためにこのラスターをベクタに変換します。
ラスタ→変換→ラスタのベクタ化を使います。
ラスタデータを選択し実行するとベクタデータが生成されます。

流域界の外側の部分はいらないのでこれを除去するために
ベクタデータを右クリックし,属性テーブルを開きます。
おそらく2個の値があると思うので(0と100),
セルの左端をクリックしてあげるとベクタデータがアクティブになって
選択しているセルが黄色になると思います。
メニューバーの一番左の鉛筆マークを選んで,編集モードにし,
いらない部分の数値のセルを削除してあげると流域界のデータが残ります。
これで完成です。完成した図も貼っておきます。

ぱっと3次元でも作れたりします。これは面白いなあと思いました。
需要があるなら作成方法も書きますので、コメントお願いします。

操作説明の図など時間があるときに追加します。
自分のメモ用にざっと書いてみました。編集して分かりやすいものにしていきたいです。

操作の際に参考にした動画を下記に貼っておきます。 https://www.youtube.com/watch?v=2Ub0c7Ss-T4&t=3423s






この記事が気に入ったらサポートをしてみませんか?