チュートリアル: 複数のサブ流域を定義する
Site: | OpenCourseWare for GIS |
Course: | QGIS上級者向けチュートリアル |
Book: | チュートリアル: 複数のサブ流域を定義する |
Printed by: | Guest user |
Date: | Saturday, 23 November 2024, 2:01 PM |
1. 概要
別のチュートリアルでは、特定の流出口の集水域を定義する方法を学びました。しかし、時には、複数の流出口や集水域内のすべてのサブ集水域に対してこれを行いたい場合もあると思います。
このチュートリアルの後には、以下のことができるようになります:
- デジタル化された注水ポイントを川の境界線にスナップする。
- スナップされた注水点の集水域を定義する
- 集水域内のすべてのサブ集水域の注水ポイントを作成する。
- 集水域内のすべてのサブ集水域を定義する
2. 注水ポイントをデジタル化
まず、注水ポイント(それらの点が影響を与えるエリア、つまり集水域を定義したポイント)をデジタル化します。
1. QGISを起動します。
2. メインメニューの プロジェクト | 開く | GeoPackage... と進みます。
3. GeoPackage からプロジェクトを読み込むダイアログで、data_multiple_subcatchments.gpkg GeoPackage を参照し、Multiple_Subcatchments プロジェクトを選択し、OK をクリックします。
このプロジェクトでは、Rur流域の境界、水文、フィルされたDEMが表示されています(DEMのフィルについては、河川と流域の境界線のチュートリアルで説明されていますが、このチュートリアルのステップに従う前に、自分のデータに適用する必要があります)。
ここでは、いくつかの流出口をデジタル化するための背景地図を追加します。 OpenStreetMapを使います。
4. QuickMapServices プラグインをインストールします。メインメニューの プラグイン | プラグインの管理とインストール... に進みます。
5. QuickMapServices プラグインをインストールし、画面を閉じます。
6. メインメニューの Web | QuickMapServices | OSM Standard に進みます。
7. レイヤパネルのレイヤ名の前にあるチェックボックスのチェックを外して、DEMとHillshadeを非表示にします。
8. 2つの支流が合流する集水域内の場所に拡大します。
9. ツールバーで をクリックして一時スクラッチレイヤを作成します。
10. 新しい一時スクラッチレイヤダイアログでPour pointをレイヤ名として、ポイントをジオメトリタイプとして、プロジェクトの座標系(EPSG:32632)を選択します。残りはデフォルトのままにしておきます。
11. OK をクリックして空のポイントベクターレイヤーを作成します。
この一時的なスクラッチレイヤーを作成するのは、これが中間的なステップであり、そのレイヤーを維持する必要がないからです。
次に、川の中で支流が合流する地点をデジタル化します。
12. Pour pointレイヤーの編集がオンになっていることを確認し、 をクリックしてポイントフィーチャを追加します。
13. 支流が合流する地図上の川のポイントにフィーチャを配置します。
14. これを、サブ集水域を作成したい他のいくつかのポイントに対して繰り返します。
15. をクリックし編集をオフにして保存をクリックします。
次のセクションでは、デジタル化された注水ポイントを水路(hydrography)にスナップします。3. 注水ポイントをスナップする
注水点が水路(hydrography)レイヤ上にある場合にのみ、(サブ)集水域を定義することができます。そうでなければ、このモデルには川がありません。水路(hydrography)レイヤに注水ポイントをスナップすることでそれを実現できます。
1. プロセッシングツールボックスを開きます。メインメニューでプロセッシング | ツールボックスと進み、プロセッシングツールボックスパネルを開きます。
2. プロセッシングツールボックスで、ベクタジオメトリ | ジオメトリをレイヤにスナップを選択します。
3. ジオメトリをレイヤにスナップダイアログで、入力レイヤとしてPour pointを選択し、参照レイヤとしてRur hydrographyを選択します。許容範囲を100 mに変更します。これは、点を線にスナップするために検索する半径です。動作ルールを「最近傍点を優先し、必要に応じて頂点を追加する」に変更します。結果に問題がなければ、この設定で実行してみてください。スナップされるジオメトリをプロジェクトの GeoPackage にレイヤ名 Snapped pour points で保存します。
4. 処理が終わったら実行をクリックしてダイアログを閉じます。
5. 結果を確認します。
これで、注水ポイントをスナップしたので、次のセクションでは、その集水域の定義をできるようになりました。
4. 注水ポイントの複数のサブ集水域を定義する
5. 集水域内のすべてのサブ集水域を定義する
同様の方法で、Rur集水域のすべてのサブ集水域を定義することができます。しかし、それでは、注水ポイントをデジタル化したり、スナップしたりするための手作業が多くなってしまいます。
このセクションでは、河川の分岐点を導出し、すべての分岐点にPoints to catchmentsツールを適用します。
1. プロセッシングツールボックスで SAGA | Terrain Analysis - Channels | Channel network and drainage basinsと進みます。
2. ダイアログでFilled DEMを標高グリッドとして選択し、閾値を8に設定してください(これは、河川と集水域の境界線の設定でキャリブレーションされます)。合流分岐部以外のすべての出力のチェックを外して、プロジェクトフォルダにjunctions.shpという名前で保存します。
3. 実行をクリックし、処理が完了したらダイアログを閉じます。
junctionsレイヤはRurの集水域よりも広い範囲をカバーしているので、まずそれをクリップする必要があります。
4. メインメニューで ベクター | 空間演算ツール | 切り抜き(Clip)...と進みます。
5. 切り抜き(clip)ダイアログで、入力レイヤとしてjunctionsレイヤーを選択し、オーバーレイレイヤとして Rur catchment boundaryを選択します。クリップしたレイヤーをRur junctions という名前でこのプロジェクトの GeoPackage に保存します。
6. 実行をクリックして処理が終わったらダイアログを閉じます。
7. レイヤーパネルからjunctionsレイヤーを削除します。
8. レイヤーパネルのRur junctionsレイヤーを右クリックして、属性テーブルを開くを選択します。
属性テーブルでは、Typeフィールドをみるとジャンクションがスプリングか分岐点かを示していることがわかります。ここで必要なのは分岐点だけです。これらはサブキャッチメントの流出口なので。ここではスプリングを取り除きます。
9.属性テーブル上で をクリックして編集をオンにします。
10. 式による地物選択 ボタンを使用して地物を選択します。
11. QGIS式による選択ダイアログで次のような式を入力します。
"TYPE" = 'Spring'
13. ここで選択地物の削除ボタン をクリックします。
14. ボタンで編集モードをオフにして保存をクリックします。属性テーブルを閉じます。
このポイントレイヤーは、MultipointZMジオメトリを持っていますが、これは使用できません。通常のポイントジオメトリを持つレイヤーに変換する必要があります。
15. メインメニューで ベクター | ジオメトリツール | マルチパートをシングルパートに変換...と進みます。
16.マルチパートをシングルパートに変換ダイアログで、入力レイヤーとしてRur junctionsを選択し、シングルパートレイヤーをこのプロジェクトのGeoPackageにoutletsという名前で保存します。
17. 実行をクリックして処理が終わったらダイアログを閉じます。
18. レイヤパネルから Rur junctions を削除します。
これで、Points to catchmentsツールをすべての分岐点に適用して、その集水域を定義することができるようになりました。
19. プロセッシングツールボックスで IHE Delft | Hydrology | Calculate catchments from pointsを選択します。
20. ダイアログでRur junctionsをOutflow point layerとして、Filled DEMをDEM layerとして選択します。
21. 全てのサブ集水域を保存する新しい出力フォルダを選択します。
22. 実行をクリックします。この処理は少し時間がかかります。全てのポイントが処理されたら閉じるをクリックします。
23. ブラウザパネルに移動し、25個のシェープファイルを地図キャンパスにドラッグします。
24. プロセッシングツールボックスのレイヤをGeopackage化ツールを使ってレイヤをプロジェクトのGeopackageに追加してプロジェクトを保存します。