iRIC/EvaTRiPの一部の範囲のWUAをQGISで求める

HabitatModel

EvaTRiPの生息場計算は流況計算結果に依存します。そのため、生息場の価値を計算したい範囲よりも広い範囲で流況計算しなければならない場合があります。そのような時に生息場計算の対象範囲だけについて重み付き利用可能面積(WUA)を求める方法を解説します。

EvaTRiPを題材にしていますが、以下の説明でCSIをEEDと読み替えればDHABSIMでも使えますよ!

iRICはフリーの河川数値シミュレーションプラットフォームです。
QGISはフリーでオープンソースの地理情報システムです

iRIC/EvaTRiPの計算結果を一部だけ使用したい事例

下図は、ある河川の一部だけにホタル水路を建設した事例です。ホタル水路の流況は、河道内の他の部分の流況の影響を受けるので、広い範囲を計算しなければなりませんが、生息場評価したいのは下図右の赤枠で囲った一部だけです。下図左のソルバーコンソールには、計算区間全体のゲンジボタルとその唯一餌であるカワニナのWUAが出力されていますが、この計算の目的には使えません。

EvaTRiPによるホタルとカワニナのCSI計算結果(図示されているのはホタルCSI)
EvaTRiPによるホタルとカワニナのCSI計算結果(図示されているのはホタルCSI)

iRICから計算結果をエクスポート

iRICのプロジェクトで「ファイル」-「エクスポート」ー「計算結果」を選び、csvファイルで最終的な計算結果だけを出力します。(実は「形式」としてESRIシェープファイルも選べますが、私の場合、iRICが飛んでしまいました。)出力が終わればiRICは閉じてもかまいません。ちなみに、この事例で流況を計算したRiver2Dは有限要素法で計算しているので、計算ノードが整列していない非構造格子です。ですので、単にDepthを平均するだけでは実際の平均水深にはならないためにGISでの処理が必要になります。ノードが整列した構造格子でも、河川の曲がりに対応するなどしていると、計算ノードに粗密が生じるのでやはりGISでの処理が必要です。

エクスポートの際には、下図のように「全タイムステップ」のチェックを外し、最後の1つのみ結果を出力しましょう。プレフィックスにResult_が指定されているので、Result_1.csvというファイルが指定のフォルダに出力されます。

iRICから計算結果をエクスポート
iRICから計算結果をエクスポート

CSVから不要なデータを削除する

出力されたCSVをExcelで開いてみると、下図左のように不要なデータがたくさん含まれていますので、下図右のようにX, Y, hotaru_CSI, kawanina_CSIを残して後は削除します。(Iも不要でしたね・・・)

CSVから不要なデータを削除する
CSVから不要なデータを削除する

QGISにCSVをポイントとして読み込む

QGISを開き、「レイヤ」ー「レイヤを追加」-「CSVテキストレイヤを追加・・・」を選びます。「データソースマネージャ|CSVテキスト」ダイアログが開きますので、ファイル名、レイヤ名、ファイル形式、X属性、Y属性、ジオメトリのCRSを設定します。

QGISにCSVをポイントとして読み込む
QGISにCSVをポイントとして読み込む

読み込まれたら、念のために属性テーブルを開いて、すべてのカラムが実数になっていることを確認します。もし整数になっているカラムがあれば、CSVファイルをエディタで開いて、最初のデータだけで良いので小数点とゼロをつけ、再度読み込めば良いと思います。

CSVレイヤをポイントシェープファイルにエクスポートする

CSVを直接読み込んだレイヤではこの後の解析ができないようですので、エクスポートしてポイントシェープファイルにしておきます。この作業でポイントシェープファイルがレイヤパネルに登録されるので、CSVを読み込んだレイヤは削除してしまってもかまいません。

CSVレイヤをポイントシェープファイルにエクスポートする
CSVレイヤをポイントシェープファイルにエクスポートする

ポイントシェープファイルをCSIをZ値としたラスタに変換する

プロセシングツールボックスから「GDAL」-「グリッド(線形)」を選びます。グリッドには他にも多くの補間法が選べますが、今回は流況計算の補間法と同じ「線形」にしました。「入力レイヤ(点)」にはポイントシェープファイル、「検索距離」は補間するための三角要素を探索する距離ですが、-1.0は無限遠です。水路が細かく分岐している場合などでは、隣の水路がつながってしまったりする恐れがあるので、ポイント間距離の最大値ぐらいを入れておいた方が良いかもしれません。「nodata値」はデフォルトはゼロで、下図では-9999999.0を入れています。「内挿するZ値の属性」にはhotaru_CSIを指定します。あとは出力ファイル名を決めて「実行」します。

同様に、kawanina_CSIもラスタに変換しておきましょう。

ポイントをラスタに変換する
ポイントをラスタに変換する

このプロセスではラスタのセルサイズを決めるところがありませんでしたので、念のためにラスタのセルとポイントの関係を拡大して確認しましたが、丁度よいセルサイズが自動的に選ばれているようです。

ラスタのセルサイズはちょうど良いものが自動的に選ばれている
ラスタのセルサイズはちょうど良いものが自動的に選ばれている(上図はkawanina_CSI)

マスクを作成する

ホタル水路だけのWUAを求めたいので、その部分のマスクを作ります。生息場計算では、地形を変更して流況計算、生息場計算を繰り返すことで良い設計を探っていきますので、計算をやり直す毎に同じ範囲を抽出して改善効果を比較するためにもマスクを作成しておく必要があります。

まず、ポリゴンシェープファイル(targetArea.shp)を作成します。

マスクとするポリゴンシェープファイル(targetArea.shp)を作成
マスクとするポリゴンシェープファイル(targetArea.shp)を作成

作成したtaregetAreaレイヤを選択し、編集モードに入って対象範囲をポリゴンで囲みます。ホタル・カワニナの場合、水がない部分のCSIは必然的にゼロになりますので、陸地部分が含まれていても問題はありません。

なお、下図ではUAVで撮影したオルソ画像を背景として表示し、対象範囲選択の参考にしています。オルソ画像がない時は、QMSなどで国土地理院の航空写真を表示させても良いでしょう。

マスクポリゴンの作成
マスクポリゴンの作成

マスクレイヤでラスタを切り抜く

「ラスタ」ー「抽出」ー「マスクレイヤによる切り抜き」で、注目範囲を切り抜きます。下図では、切り抜いた結果をhotaru_maskedCSI.tif, kawanina_maskedCSI.tifに保存しています。

同じマスクレイヤを用いてhotaru_CSI, kawanina_CSIを切り抜く
同じマスクレイヤを用いてhotaru_CSI, kawanina_CSIを切り抜く

注目範囲のWUAを求める

WUAは、セルの面積をCSIの値で重みづけして対象範囲で合計したものです。CSIはゼロ(不適)から1(最適)の無次元値を取りますから、WUAを求めることは、CSIを水深とみなして対象範囲の水量を求めることと等価です。

水量を求めるため、プロセシングツールボックスから「ラスタのサーフェス体積」を起動します。「基準値」はゼロ、「方法」は「基準値を超える場合だけ」です。出力オプションは2つありますが、どちらも同じ内容が出力されるので一方だけで十分です。

ラスタのサーフェス体積実行前の設定
ラスタのサーフェス体積実行前の設定(ホタルについて)

実行すると以下が得られます。右下の「体積計算のレポート」のリンクをクリックすると、体積(水量)が求められています。「水量」と言っても、水深は無次元のCSIですから単位はm2です。これより、ホタル水路のゲンジボタルに対するWUAは20.95m2となります。

ラスタのサーフェス体積計算結果
ラスタのサーフェス体積計算結果

同様にカワニナに対するWUAを求めると603.06m2となりました。

ホタル水路の水面積を計測ツールで概測すると1255m2でしたので、このホタル水路はカワニナにはまずまずの生息場ですが、ゲンジボタルに適した生息場は極めて少ないことになります。なんらかの対策が必要なことがわかりますね。

いかがでしょうか。工数は多めですが、慣れれば簡単にできると思います。 Have fun!

コメント

タイトルとURLをコピーしました