3. ステージ体積テーブルを作成する

前回のセクションでは特定の標高に対応する体積をひとつずつ計算しました。

このセクションでは、ある標高範囲内の体積を反復的に計算し、その結果を 1 つのテーブルに保存します。そのためには、ラスタのサーフェス体積ツールを使用した PyQGIS スクリプトを記述する必要があります。

実行したプロセッシングツールはすべてプロセッシングツールボックスの履歴に保存されます。それをスクリプトに利用する方法を見てみましょう。

1. プロセッシングツールボックスで  をクリックして履歴を開きます。

Algorithm history

過去のセクションで実行したものを見ることができます。processing.runの後に何が書かれているかみていきましょう。

native: rastersurfacevolumeとツールの名前が書かれています 。これには、ダイアログからのすべての入力を含むディクショナリが含まれています。つまり、これをコピーして、PyQGIS スクリプト内のディクショナリの一部を変数に置き換えることができます。ここでは、DTM の最小の標高から最大の標高までの異なる レベルの値に対して反復処理を行う必要があります。

2. Closeをクリックして履歴ダイアログを閉じます。

3. メインメニューの プラグイン | Pythonコンソール からPythonコンソールを開きます。

4. Pythonコンソールでは、  をクリックしてエディタを開きます。

5. このGithubのページに進みます: https://github.com/jvdkwast/PyQGIS_Hydro/blob/master/scripts/StageVolume.py

6. Pythonコードをエディタにコピーして、StageVolume.pyとしてスクリプトを保存します。

コメントを読んでコードで何をしているのか理解してください。

7. 変更点はprojectPathとinputRasterDEMを自分の環境に置き換えるだけです。

8. スクリプトを保存し、  をクリックしてスクリプトを実行します。

Pythonコンソールには次のように結果が表示されます。

スクリプトにより、DEMレイヤと StageVolume テーブルがレイヤパネルに追加されました。

9. StageVolumeを右クリックし、属性テーブルを開くから確認しましょう。

Stage Volume Table

メートル単位のLevel フィールドとkm3単位の体積を持つ VolAbsKm3 フィールドを含むステージ体積テーブルが作成されました。

次のセクションでは、Data Plotlyプラグインを使用して、ステージ体積曲線を作成します。

なお、GitHubからStageVolumeToolを処理ツールボックスに追加することもできます。すると、ツールにはダイアログが表示されます。ツールはこちらからダウンロードできます。: https://github.com/jvdkwast/PyQGIS_Hydro/blob/master/scripts/StageVolumeTool.py