Python / ANUGA / 2D Shallow Water

ANUGA 概要・Pythonサンプル

ANUGAは、三角形メッシュ上で2次元浅水流方程式を解くオープンソースのPython系ライブラリです。 このページでは、基本概念、入門サンプルに加えて、ANUGA土石流2次元デモで作成したサンプル図やGIS出力例への導線もまとめています。

ANUGAの基本構成図

ANUGAとは

ANUGAは、Geoscience AustraliaとAustralian National Universityの協力から始まった、洪水・津波などの2次元水理解析向けソフトウェアです。 Pythonから計算領域、地形、粗度、境界条件を設定し、三角形メッシュ上で水深と運動量を計算します。

2D Shallow Water

水深と水平運動量を、2次元浅水流方程式として時間発展させます。洪水・津波・氾濫解析の基礎モデルとして利用できます。

Triangular Mesh

三角形の非構造メッシュを使うため、河道、谷底、海岸線、氾濫原などの複雑な形状を表現しやすいです。

SWW Output + GIS Export

計算結果はANUGA標準のSWWファイルとして保存でき、後処理によりPNG、GeoTIFF、CSV、Web地図用データへ展開できます。

入門サンプルの内容

サンプルでは、矩形領域を三角形メッシュに分割し、人工的な谷地形を設定します。 上流側に初期水深を与え、下流へ流下する様子をANUGAで計算し、最大水深と最大流速をPNGとして保存します。

  • rectangular_cross_domainで三角形メッシュを作成
  • elevation、friction、stageを設定
  • Reflective_boundaryとDirichlet_boundaryを設定
  • evolve()で2次元浅水流計算を実行
  • SWW、NPZ、PNGを出力
ANUGAの三角形メッシュと最大水深の概念図
三角形メッシュで谷地形を表現し、上流から下流へ流れる最大水深分布を確認するイメージです。

ANUGA土石流2次元デモのサンプル図

ANUGAの応用例として、土石流を高粗度の混合流体として概略表現したデモページを用意しています。 以下のようなサンプル図と、GeoTIFF・CSV・GeoJSONの簡易成果物を同梱しています。

ANUGA標準のSWW結果ファイル
ANUGA標準のSWW結果ファイル 解析領域、初期条件、SWW出力フレームの概念をまとめたサンプル図です。
最大流動深・最大流速
最大流動深・最大流速 最大流動深と最大流速を並べて確認する代表的な成果図です。
到達時刻・危険度区分図
到達時刻・危険度区分図 到達時刻と危険度区分をまとめた防災説明向けのサンプルです。

サンプル出力のダウンロード一覧

ANUGA土石流2次元デモで作成したサンプル成果物です。GeoTIFF、CSV、GeoJSON、凡例PNG、QGISスタイル(QML)をここから確認できます。

利用イメージ

  • GeoTIFF を QGIS に読み込み、背景地形と重ねて表示
  • 凡例PNGをレイアウトに貼り付けて報告書図面を作成
  • CSV・GeoJSON を使って Web 地図やダッシュボードへ展開
  • ANUGA標準のSWWとあわせて時系列確認にも利用

demo.godo-tys.jpでの位置づけ

ANUGAページは、河川氾濫シミュレーション、津波解析、ANUGA土石流風デモを支える「2次元水理解析ライブラリ紹介ページ」として配置します。 Landlabがラスタ格子・地形水文解析に強いのに対し、ANUGAは非構造三角形メッシュによる氾濫・津波・浅水流計算の説明に向いています。

河川氾濫・内水氾濫の2次元解析
津波伝播・沿岸遡上の概略解析
ダムブレイク・貯水池破堤の教育用サンプル
1m DEMを使った氾濫範囲検討のプロトタイプ
土石流を高粗度混合流として近似するデモの基礎

ANUGAサンプルコード

以下は scripts/anuga_basic_shallow_water_sample.py の内容です。 実行すると、ANUGAのSWWファイル、最大水深図、最大流速図を出力する入門サンプルになります。

scripts/anuga_basic_shallow_water_sample.py Python
読み込み中...

参考リンク

ANUGAの詳細は、公式ドキュメント、GitHub、ユーザーマニュアル、viewerドキュメントを参照してください。