Volcano / Tephra / Python Simulation

火山噴煙・降灰範囲予測
Tephra2 Lite

火山噴火に伴う噴煙・火山灰の移流、拡散、沈降を簡易的に扱い、地表の降灰量分布を推定するPythonデモです。 Tephra2相当の考え方に近づけるため、粒径階級、噴煙柱内の放出高度、高度別風プロファイル、拡散係数を段階的に実装しています。

※本ページのモデルは教育・技術検証用の簡易版です。防災情報、航空安全、避難判断などの公式予測には、気象庁・VAAC等の公式情報や検証済みモデルを利用してください。

Tephra2 Liteによる降灰量分布図

このデモで扱うモデル

Tephra2系の簡易降灰モデルは、火口から直接「煙の形」を描くというより、噴煙柱から供給された粒子が風で流されながら沈降し、 地表にどの程度の火山灰が堆積するかを計算するモデルとして整理すると分かりやすいです。 ここでは、火山灰雲・降灰範囲の概略評価、パラメータ感度確認、GIS表示用データ作成の入口として使える構成にしています。

OSS調査から第一段階へ

火山灰拡散・降灰予測に利用できるOSSモデルを整理し、まずは軽量に理解・実装しやすいTephra2系の簡易版から着手します。

Tephra2 Lite

総噴出量、噴煙柱高度、粒径分布、高度別風速から、地表の降灰量 kg/m² を計算するPython簡易モデルです。

GIS連携を想定

現在はCSV、Tephra2風テキスト、PNGを出力します。次段階でGeoTIFF、GeoPackage、等降灰量線へ拡張できます。

火山噴煙・降灰予測で利用できるOSSモデル

火山の噴火に伴う噴煙・降灰範囲予測では、目的に応じてモデルの重さが大きく変わります。 まずはOSSとして利用しやすいモデルを整理し、デモサイトでは「軽量に動かせて仕組みを説明しやすいもの」から段階的に実装します。

OSSモデルライセンス・位置づけ特徴とデモでの扱い
Tephra2 GPLv3
降灰・テフラ堆積の軽量モデル
噴火総量、噴煙柱高度、粒径分布、高度別風速を使い、領域または観測点の降灰量を計算します。C言語実装で、教育用・ハザード評価の入口として扱いやすいモデルです。
FALL3D GPLv3
3次元移流・拡散・沈降モデル
火山灰、エアロゾル、粒子の3次元輸送・堆積を扱う本格的なEuler型モデルです。実気象データやHPC運用を視野に入れる段階で候補になります。
Ash3d CC0
USGSの3次元火山灰移流拡散モデル
3次元・時間変化する風場を用いて、火山灰雲濃度と地表降灰を計算するモデルです。研究・広域予測向けの次段階候補です。
WRF-Chem 等 公開ソフトウェア系
気象モデル連成・研究向け
気象場と火山灰・SO₂等を連成して扱う高度な研究向け構成です。まずはTephra2 Liteで基礎を固めた後の発展形として整理します。
調査

既存OSSを整理し、軽量モデルと本格3次元モデルを分ける

第一段階

Tephra2相当の考え方をPythonで再現するTephra2 Liteを作成

第二段階

GeoTIFF、GeoPackage、等降灰量線、QGIS表示へ拡張

第三段階

FALL3D / Ash3dの前処理・後処理ラッパーや実気象データ連携へ発展

このため、本ページでは第一段階として Tephra2 Lite を作成し、次にGIS出力や本格OSSモデルとの連携へ拡張する流れにしています。

入力から出力までの流れ

入力は、噴火条件、風プロファイル、計算格子に分けます。計算では、粒径階級と放出高度を分割し、各成分ごとに 沈降速度、落下時間、風下への移動距離、水平拡散幅を求め、地表格子へ降灰量を積算します。

  • 火口座標、噴煙柱高度、総噴出量を設定
  • phi階級ごとの重量比と粒子密度を設定
  • 高度別の風速・風向から移流距離を計算
  • 地表標高を考慮して落下時間を求める
  • CSV、Tephra2風テキスト、PNG図を出力
火山噴煙・降灰範囲予測モデルのワークフロー

主な入力条件

Tephra2に近づけるには、単一の風向・風速ではなく、高度別の風プロファイルと粒径別沈降速度を扱うことが重要です。 本デモでは、以下の入力を設定ファイルとテキストファイルに分けて扱います。

入力内容
火口位置平面直角座標系などのEasting / Northingで指定します。
噴煙柱高度粒子がどの高度から落下し始めるかを決める主要条件です。
総噴出量各粒径・放出高度に配分され、最終的な降灰量スケールを決めます。
粒径分布phi階級ごとの重量比、粒子密度、粒径から沈降速度を計算します。
風プロファイル高度別の風速・風向を使い、落下中の水平移動量を求めます。
拡散係数大気乱流・水平拡散を簡易的なガウス分布として表現します。

サンプル出力図

サンプル計算では、風下方向へ伸びる降灰分布と、粒径ごとの堆積寄与率を図化しています。 実務利用では、この結果をGeoTIFFやGeoPackageへ変換し、QGISで地形、道路、行政界、保全対象と重ねる構成に発展できます。

Tephra2に近づける実装順序

まずOSSモデルの全体像を整理し、その中で第一段階としてTephra2相当の簡易Pythonモデルを作成しました。 その後、Tephra2の入力・出力形式、粒径別出力、風プロファイル、拡散係数、観測点比較を追加していく流れにしています。

Step 0

OSSモデルを整理し、第一段階の対象をTephra2系に決める

Step 1

Tephra2風の conf / grid / wind 入力を読む

Step 2

phi階級、粒径分布、粒子密度を設定する

Step 3

粒径別の終端沈降速度を計算する

Step 4

高度別風速を積分し、落下中の水平移流量を求める

Step 5

放出高度別・粒径別の成分をガウス拡散で地表へ配分する

Step 6

kg/m²、粒径別重量%、成分別サマリーを出力する

次の拡張

GeoTIFF / GeoPackage / 等降灰量線 / 観測点比較 / FALL3D・Ash3d連携を追加する

Pythonソースサンプル

run_demo.py

サンプル設定を読み込み、計算と図化を一括実行する入口ファイルです。

ダウンロード
読み込み中...

tephra2_lite_model.py

粒径階級・放出高度・風移流・拡散を組み合わせて、地表降灰量を積算する本体です。

ダウンロード
読み込み中...

tephra2_lite_physics.py

粒径変換、沈降速度、風プロファイル、拡散幅などの物理計算部分です。

ダウンロード
読み込み中...

tephra2lite_demo.conf

火口位置、噴煙柱高度、総噴出量、粒径分布、拡散係数などをまとめた設定ファイルです。

ダウンロード
読み込み中...

wind_demo.txt

高度別の風速・風向を与えるサンプルファイルです。

ダウンロード
読み込み中...

Next Step

GeoTIFF・QGIS表示・観測点比較への拡張

次の段階では、GeoTIFF出力、GeoPackage出力、等降灰量線、観測降灰点CSVとの比較、噴煙高度・噴出量の感度解析を追加できます。

問い合わせフォームへ