チュートリアル: GRASSツールを用いて河川と集水域の境界線を求める

Site: OpenCourseWare for GIS
Course: QGIS上級者向けチュートリアル
Book: チュートリアル: GRASSツールを用いて河川と集水域の境界線を求める
Printed by: Guest user
Date: Thursday, 12 December 2024, 10:54 AM

1. 概要

QGIS Processing Toolbox を使用すると、多くの有用な GRASS アルゴリズムを使用することができます。

このチュートリアルでは、GRASS ツールを使用して、Rur川とその集水域の境界線を作成します。

このチュートリアルの後、以下のことができるようになります。

  • シンク(Sinks)を埋め立てて水文学的に正しいDEMを作成する。
  • 流量を計算する
  • 流量のしきい値を使用して、河川を定義します。
  • 集水域の流出口を定める

チュートリアルデータは、SRTM 1-Arc Second DEMをクリップし、UTM Zone 32N/WGS-84に再投影したものです。


2. DEMのシンク(Sinks)を埋め立てる

最初のステップはDEMのシンク(Sinks)を埋め立てることです。シンクとは人工的な窪地のことでそれは水が流出口へと流れるのを阻害するものです。

1. QGIS Desktop with GRASSを起動します。

2. dem.tif をレイヤパネルに追加します。

3. プロセッシングツールボックスパネルを開きます。メインメニューのプロセッシング | ツールボックスと進みます。

4. プロセッシングツールボックスで GRASS | ラスタ (r.*) | r.fill.dirtと進みます。

5. r.fill.dirダイアログでDEMレイヤを標高として選択します。方位角の形式で出力のフォーマットはデフォルトのgrassのままにしておきます。窪地なしDEMの出力DEM_filled.tifとして保存し(必ずGeoTiffを選択してください)、他の出力レイヤーのチェックは不要なので全て外してください。

6. 実行をクリックします。処理が終わったらダイアログを閉じます。処理にはしばらく時間がかかります。ログの赤い警告は無視してください。

こちらでアルゴリズムについてさらに詳細な情報を見ることができます。

7. イヤパネルからDEMレイヤを削除して、次に進むためにDEM_filledレイヤがあるだけの状態にします。

filled DEM


3. 累積流量と排水方向を計算する

次のステップでは埋め立て済みのDEM上の累積流量を計算します。

1. プロセッシングツールボックスで GRASS | ラスタ (r.*) | r.watershedを選択します。

r.watershed ツールには様々な設定があります。GRASSのこのツールのマニュアルのページ でアルゴリズムの設定についてより詳細に学べます。

2. r.watershedダイアログで、標高としてDEM_filledを選択します。外部流域の最小サイズを500ピクセルに設定し、単一フロー(SFD)を使うにチェックを入れます。排水先セルの数の出力accumulation.tif に保存し、排水方向の出力flowdir.tif に保存します。他の出力は不要なのでチェックを外しておきます。

r.watershed dialogue

3. 実行をクリックします。処理が終わったらダイアログを閉じます。赤色の警告は無視してください。

流向レイヤは、GRASSの定義を用いてエンコードされています。排水は、北東方向の1から始まる反時計回りに番号が振られた8つの方向です。値0は、セルが窪地であることを示します。負の値は、地表流出が現在の地理的領域の境界を離れていることを示しています。これらの負のセルの絶対値は、流れの方向を示しています。したがって、flowdirレイヤを絶対値に変換する必要があります。

4. メインメニューでラスタ | ラスタ計算機と進みます。

5. ラスタ計算機で次の色を設定します。

( "flowdir@1" < 0 ) * -1 * "flowdir@1" + ( "flowdir@1" >= 0 ) * "flowdir@1"

この式は、次のように理解できます:流れの方向の値がゼロよりも小さい場合、結果はブール値True (1)であり、そうでない場合はブール値False (0)です。これに-1とフロー方向を掛け合わせます。このようにして、式の最初の部分は、負の流れ方向の絶対値で結果が得られます。次に、セルがゼロより大きいか、またはゼロに等しい場合の条件を追加し、真偽値(1)、偽値(0)を与え、これを流れの方向の値と掛け合わせます。これにより、負でない流れの方向の値は元の値を維持することになります。

6. 結果を flowdirabs.tif として保存し、OK をクリックします。

通常は、流れの方向の結果を方向性のあるグリッドでスタイルを作成しますが、このチュートリアルでは実施しません。

7. レイヤパネルから元の flowdir レイヤーを削除します。