OSS調査から第一段階へ
火山灰拡散・降灰予測に利用できるOSSモデルを整理し、まずは軽量に理解・実装しやすいTephra2系の簡易版から着手します。
Volcano / Tephra / Python Simulation
火山噴火に伴う噴煙・火山灰の移流、拡散、沈降を簡易的に扱い、地表の降灰量分布を推定するPythonデモです。 Tephra2相当の考え方に近づけるため、粒径階級、噴煙柱内の放出高度、高度別風プロファイル、拡散係数を段階的に実装しています。
※本ページのモデルは教育・技術検証用の簡易版です。防災情報、航空安全、避難判断などの公式予測には、気象庁・VAAC等の公式情報や検証済みモデルを利用してください。
Overview
Tephra2系の簡易降灰モデルは、火口から直接「煙の形」を描くというより、噴煙柱から供給された粒子が風で流されながら沈降し、 地表にどの程度の火山灰が堆積するかを計算するモデルとして整理すると分かりやすいです。 ここでは、火山灰雲・降灰範囲の概略評価、パラメータ感度確認、GIS表示用データ作成の入口として使える構成にしています。
火山灰拡散・降灰予測に利用できるOSSモデルを整理し、まずは軽量に理解・実装しやすいTephra2系の簡易版から着手します。
総噴出量、噴煙柱高度、粒径分布、高度別風速から、地表の降灰量 kg/m² を計算するPython簡易モデルです。
現在はCSV、Tephra2風テキスト、PNGを出力します。次段階でGeoTIFF、GeoPackage、等降灰量線へ拡張できます。
OSS Models
火山の噴火に伴う噴煙・降灰範囲予測では、目的に応じてモデルの重さが大きく変わります。 まずは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モデルとの連携へ拡張する流れにしています。
Workflow
入力は、噴火条件、風プロファイル、計算格子に分けます。計算では、粒径階級と放出高度を分割し、各成分ごとに 沈降速度、落下時間、風下への移動距離、水平拡散幅を求め、地表格子へ降灰量を積算します。
Input Parameters
Tephra2に近づけるには、単一の風向・風速ではなく、高度別の風プロファイルと粒径別沈降速度を扱うことが重要です。 本デモでは、以下の入力を設定ファイルとテキストファイルに分けて扱います。
| 入力 | 内容 |
|---|---|
| 火口位置 | 平面直角座標系などのEasting / Northingで指定します。 |
| 噴煙柱高度 | 粒子がどの高度から落下し始めるかを決める主要条件です。 |
| 総噴出量 | 各粒径・放出高度に配分され、最終的な降灰量スケールを決めます。 |
| 粒径分布 | phi階級ごとの重量比、粒子密度、粒径から沈降速度を計算します。 |
| 風プロファイル | 高度別の風速・風向を使い、落下中の水平移動量を求めます。 |
| 拡散係数 | 大気乱流・水平拡散を簡易的なガウス分布として表現します。 |
Sample Outputs
サンプル計算では、風下方向へ伸びる降灰分布と、粒径ごとの堆積寄与率を図化しています。 実務利用では、この結果をGeoTIFFやGeoPackageへ変換し、QGISで地形、道路、行政界、保全対象と重ねる構成に発展できます。
kg/m²の地表降灰量を対数スケールで表示します。広い範囲の薄い降灰と火口近傍の厚い降灰を同時に確認できます。
火口周辺や主軸方向の強い降灰帯を確認しやすい表示です。
phi=-4などの粗粒子がどの範囲へ落下しやすいかを確認するための重量%図です。
細粒子が風下側へ広く運ばれる傾向を確認するための重量%図です。
Implementation Steps
まずOSSモデルの全体像を整理し、その中で第一段階としてTephra2相当の簡易Pythonモデルを作成しました。 その後、Tephra2の入力・出力形式、粒径別出力、風プロファイル、拡散係数、観測点比較を追加していく流れにしています。
OSSモデルを整理し、第一段階の対象をTephra2系に決める
Tephra2風の conf / grid / wind 入力を読む
phi階級、粒径分布、粒子密度を設定する
粒径別の終端沈降速度を計算する
高度別風速を積分し、落下中の水平移流量を求める
放出高度別・粒径別の成分をガウス拡散で地表へ配分する
kg/m²、粒径別重量%、成分別サマリーを出力する
GeoTIFF / GeoPackage / 等降灰量線 / 観測点比較 / FALL3D・Ash3d連携を追加する
Files
r002のPython簡易モデル一式を同梱しています。ローカルで展開後、依存ライブラリをインストールして実行できます。
Source Code
サンプル設定を読み込み、計算と図化を一括実行する入口ファイルです。
読み込み中... 粒径階級・放出高度・風移流・拡散を組み合わせて、地表降灰量を積算する本体です。
読み込み中... 粒径変換、沈降速度、風プロファイル、拡散幅などの物理計算部分です。
読み込み中... 火口位置、噴煙柱高度、総噴出量、粒径分布、拡散係数などをまとめた設定ファイルです。
読み込み中... 高度別の風速・風向を与えるサンプルファイルです。
読み込み中... Next Step
次の段階では、GeoTIFF出力、GeoPackage出力、等降灰量線、観測降灰点CSVとの比較、噴煙高度・噴出量の感度解析を追加できます。