Tsunami / 2D Shallow Water / Python

津波解析2次元
シミュレーション

海底地形・陸域DEM、津波波源条件、粗度係数を利用し、津波の伝播、沿岸到達、陸域への遡上・浸水深を可視化するPythonベースの解析デモです。 まずは軽量なサンプルで計算フローを示し、実務版では断層波源、外洋境界、wet/dry処理、GeoTIFF出力を強化します。

津波解析シミュレーションの概念図

津波解析2次元モデルの考え方

津波解析では、海底地形の上を長波が伝播し、沿岸で水位が上昇して陸域へ遡上する現象を2次元格子上で追跡します。 DEM、波源、粗度、境界条件を統合することで、最大浸水深、津波到達時間、評価地点の水位時系列を地図・グラフとして確認できます。

海底地形・陸域DEM

海域の水深と陸域の標高を1つの格子DEMとして扱い、沿岸部の浸水深・到達範囲を計算します。

2次元浅水流モデル

津波を長波として扱い、水位変化と流量フラックスを時間更新することで、沖合から沿岸までの伝播を表現します。

Python実装

NumPy中心の軽量サンプルで、後からGeoTIFF DEM、断層波源、Manning粗度分布、GeoTIFF出力へ拡張できます。

最大浸水深分布の表示例

デモでは、海から陸へ浅くなる人工地形を作成し、沖合に簡易な初期水位変位を与えて、沿岸低地へ津波が到達する様子を可視化します。 実データでは、GeoTIFFの海底地形・陸域DEM、断層モデル、粗度ラスタ、検潮所位置へ差し替えます。

津波最大浸水深分布のサンプル
海域から沿岸低地へ津波が到達し、最大浸水深が分布する様子を示すデモ図です。

津波解析2次元シミュレーションのサンプル図

津波解析2次元シミュレーションでよく確認する、最大浸水深、最大水位・最大流速、津波到達時間、 時刻別水位・浸水範囲、評価地点の水位時系列の5種類を追加しました。 実データに差し替えた場合も、同じ図構成で結果確認ができます。

津波解析2次元シミュレーションの最大浸水深分布
1. 最大浸水深分布 最大浸水深を地図上に表示し、海岸低地や河口付近で浸水が大きくなる範囲を確認できます。
最大水位分布と最大流速分布のサンプル図
2. 最大水位・最大流速分布 最大水位と最大流速を並べて表示し、波高が大きい範囲と流れが強い範囲を同時に把握できます。
津波到達時間のサンプル図
3. 津波到達時間 浸水深がしきい値を初めて超えた時刻を示し、避難判断や危険度評価で重要な到達順序を確認できます。
時刻別の水位と浸水範囲のサンプル図
4. 時刻別水位・浸水範囲 複数時刻のスナップショットを並べ、津波の遡上と浸水範囲の拡大過程を段階的に確認できます。
評価地点の水位時系列グラフ
5. 評価地点の水位時系列 沖合・海岸・低地・内陸などの評価地点について、水位の時間変化とピーク到達時刻を比較できます。

入力データ

  • 海底地形・陸域DEMを統合した標高メッシュ
  • 津波波源条件、または初期水位変位分布
  • 海岸線、河口、港湾、堤防・防潮堤などの地形条件
  • 土地利用別のManning粗度係数
  • 検潮所・評価地点・浸水判定範囲

出力結果

  • 最大浸水深分布
  • 最大水位・最大流速分布
  • 津波到達時間
  • 時刻別水位・浸水範囲
  • 評価地点の水位時系列

解析フロー

Web掲載用のサンプルでは、初期水位変位を使った簡易な津波伝播計算にしています。実務版では、断層モデルによる海底変位、開境界条件、保存性の高い有限体積法、適切なwet/dry処理を追加します。

  1. 地形読込海底地形と陸域DEMを統合し、計算格子へ変換
  2. 波源設定断層モデルまたは初期水位変位を設定
  3. 津波伝播2次元浅水流モデルで水位・流量フラックスを更新
  4. 遡上・浸水陸域セルのwet/dry、最大浸水深、到達時間を記録
  5. 結果出力GeoTIFF、PNG、CSV、Web地図用データとして出力

Pythonソースサンプル

以下は scripts/tsunami_2d_shallow_water_sample.py の内容です。 人工地形と簡易波源を使った軽量デモですが、実データのGeoTIFF DEM・断層波源・粗度分布へ差し替えるテンプレートとして利用できます。

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

実務適用時の注意

このデモは津波解析の考え方をWeb上で説明するための簡易版です。実務で使う場合は、断層パラメータ、海底地形の精度、潮位条件、防潮堤・水門、建物・道路、粗度係数、検潮所水位・浸水実績による検証が必要です。