本文へスキップ
半農エンジニアラボENGINEERING × EVERYDAY

FIELD NOTE / 2026

HAIZU開発シリーズ⑥|時間を動かすと、なぜ降灰が増えていくのか?簡易時間モデルの仕組み

HAIZUのPC画面。Tephra2と簡易時間モデルによる仮定条件下の降灰分布

時間バーを右へ動かすと、地図の色が広がり、降灰量が増えていく。HAIZUを触ったときに分かりやすい変化ですが、「何時間後」をどう計算しているのかは、動く画面だけでは見えません。

ここで気になるのは、火山から灰が出る時間と、離れた地点へ灰が届く時間は同じなのか、ということです。噴火が休止した瞬間に、すべての地点で降灰も止まるのでしょうか。今回の第6回は、この二つの時間を分ける話です。

HAIZUの現行実装では、地点までの到達に置いた遅れと、噴出の進み方から、その時刻までに積もる割合を求めます。それを空間分布の堆積質量に掛け、厚さへ換算します。Tephra2が求める分布に、HAIZU独自の簡易時間モデルを組み合わせる構成です。

前回:第5回:火山灰の分布は、どう計算しているのか?Tephra2と単位の話
シリーズの入口:紹介・第0回:HAIZUの完成画面と開発ログ

本記事は防災学習用アプリの実装解説で、実際の噴火・降灰や到達時刻を予測するものではありません。キャプチャは2026年10月19日に公開Web版の初期デモで撮影しました。図と数値例は仕組みの説明用です。今回、新しいTephra2計算や、観測との比較による精度検証は行っていません。

地図で見ているのは「今降る量」より「ここまで積もった量」

HAIZUの地図で示すのは、選んだ時刻までの累積降灰量です。「累積」は、開始からその時刻までの分を足したもの、という意味です。今この瞬間にどれくらいの勢いで降っているかとは分けて考えます。

水道とバケツに置き換えると、蛇口から出る水の勢いと、バケツにたまった水の量の違いに近いです。蛇口を閉めても、すでにバケツへ入った水はなくなりません。同じように、噴出が休止したからといって、積もった灰の表示をゼロにはしません。

現行の累積量は、同じ条件・同じ地点で時間を先へ進めると、増えるか、同じ値にとどまる作りです。風で積もった灰が再び舞うこと、雨に流されること、締まって厚さが変わることは、この時間モデルには含めていません。

ただし、灰の量が増えても、地図の色が毎時間必ず変わるわけではありません。色には厚さごとの区分があります。同じ区分の中で値が変化すれば、色の変化は分かりにくいこともあります。画面がほとんど同じだから内部の値も同じ、と決め付けないようにします。

その地点へ「届くまでの遅れ」を置く

噴火直後から、遠くの地点にも同じように灰が積もる表示では、移動する時間を表せません。HAIZUでは、地点ごとに到達までの遅れを計算します。大まかな考え方は「火山からの距離を風速で割った時間」に、噴煙高度や粒径の値から置いた追加の遅れを足すものです。

たとえば、距離を72km、風速を10m/sとする説明例なら、10m/sを時速に直すと36km/hです。距離÷速さの部分は72÷36で2時間になります。実装では、これだけをそのまま到達時刻とせず、さらに追加の遅れを足します。

ここでの距離は、格子地点と火山の位置から求めた概算です。風の経路に沿って粒を一つずつ追跡しているわけではありません。到達までの遅れを求める式にも、厳密な粒子の沈降計算や、時々刻々と変わる上空の風は入っていません。

風向や拡散による広がりは、元になる空間分布の側へ反映されます。一方、この到達時間の近似は、主に距離・風速・噴煙高度・粒径に基づく別の処理です。分布と時間を分けた構成だからこそ、それぞれで何を仮定したかを説明する必要があります。

画面に「約○時間後」と表示されても、現実の時計に照らして、その時刻まで大丈夫という意味には使えません。学習用の条件のもとで時間差を見るための値です。

単発の噴火なら、届いた後の量を少しずつ増やす

最も単純なのは、一定の量を一定の時間にわたって噴出する設定です。HAIZUの「単発・一定量」では、到達前の割合を0とし、到達後は噴火継続時間に応じて直線的に増やし、最後は1、つまり100%で止めます。

言葉で書くと、「見る時刻から到達までの遅れを引き、噴火継続時間で割る」です。計算値が0未満なら0、1を超えたら1へ収めます。まだ届いていないのに負の灰が積もったり、時間を長くしただけで元の量を超えて増え続けたりしないようにします。

具体的に、ある地点の元の堆積質量を20kg/m²、到達までの遅れを2時間、噴火継続時間を4時間と仮定してみます。これは式を追うための例で、実際の地点の値ではありません。

噴火開始からの時刻 積もる割合 その時刻までの堆積質量
0時間後 0% 0kg/m²
2時間後 0% 0kg/m²
3時間後 25% 5kg/m²
4時間後 50% 10kg/m²
6時間後以降 100% 20kg/m²

4時間後なら、割合は(4−2)÷4で50%です。元の20kg/m²に0.5を掛けて10kg/m²。前回と同じく嵩密度を1,000kg/m³と置けば、厚さは1cmになります。「時刻を変える」とは、この例では同じ分布の値に掛ける割合を変えることです。

時間モデルの説明図。上は20kg/m²に50%を掛ける単発の例。下は噴出した時間と地点へ届く時間が5時間ずれる別の例
図1:上段は、到達2時間・継続4時間という単発の例。下段は、到達の遅れを5時間と置いた別の例です。いずれも仮の条件による模式図で、実際の噴火や降灰の再現図ではありません。

断続的な噴火は、いくつかの段階に分けて足し合わせる

ずっと同じ勢いで噴出するだけでは、途中の休止や再開を表せません。そこで「宝永参考・断続的」では、噴出をいくつかの段階に分けています。各段階には、開始する時刻、継続する時間、配分する量を持たせています。

一つの段階だけを見ると、先ほどの単発と似ています。ただし、その段階が始まるまでの時間も差し引きます。段階ごとに「どれくらい進んだか」を求め、配分した量に応じて足し合わせ、最後に全段階の量で割って割合にします。

たとえば、全体の20%を最初の段階、残り80%を後の段階へ配るなら、最初の段階が終わっても累積は20%までです。すべての段階を同じ大きさで足すのではなく、量の重みを付けます。これも考え方を示す例で、HAIZUの実際の段階表を20対80にしているという意味ではありません。

宝永参考の段階の量と継続時間は、内閣府の2020年の別添資料1・印刷ページ2を参照しています。ただし、HAIZUの開始・休止時刻には図からの概読が含まれ、J段階はまとめて扱っています。国の計算結果や改良版Tephra2を、そのまま再現したモデルではありません。

現行の時間モデルでは、各段階へ同じ空間分布を配分しており、段階ごとに風や噴煙高度を変えて別の分布を計算する方式ではありません。参考にした資料があることと、資料の計算全体と同じことは区別しておきます。

噴火が休止しても、灰の到達が続くことがある

図1の下段を見てみましょう。0〜4時間に最初の噴出、8〜10時間に次の噴出があると仮定します。ある地点へ届くまでの遅れを、どちらも5時間と置きます。

この場合、最初の段階の寄与が届く時間帯は5〜9時間、次の段階は13〜15時間です。火山では4〜8時間に休止していますが、離れた地点では5時間から最初の灰が届きます。噴出の表示が休止中でも、地点の累積量が増える場合があるわけです。

逆に、9〜13時間はこの例の地点で新たな寄与がなく、累積量が横ばいになります。止まるのは「増え方」であって、すでに積もった分が消えるわけではありません。火山から出る時間帯を、そのまま離れた地点の降灰時間帯と読まないことがポイントです。

HAIZUの時間操作を展開した画面。3日18時間後、噴出休止中、噴出と休止の帯、送り幅6時間を表示。背景の降灰はデモ
キャプチャ1:90時間後に相当する「3日18時間後」。噴出の状態は「休止中」です。帯の色は噴出、空白は休止を表し、その下には休止中も到達・堆積が続く場合があると説明しています。背景は初期デモです。

画面の帯が示すのは、噴出側の概略の推移です。地点ごとに届く時刻の帯を描いているわけではありません。そこを混ぜると、「休止中なのに地図が変わった。計算がおかしいのでは」と読み違えてしまいます。

「噴火が続く時間」と「観察する期間」は別の設定

もう一つ、似ているけれど役割が違うのが、噴火継続時間と観察期間です。噴火継続時間は灰を出す側の条件。観察期間は、噴火開始から何日後まで画面で追うかという表示・集計の範囲です。

HAIZUには2日、7日、15日、30日の観察期間があります。宝永参考の断続的な推移では15日以上を使うため、2日と7日の選択は無効になります。30日へ延ばしても、その操作だけで総噴出量を2倍にはしません。

HAIZUの条件画面。宝永参考・断続的と観察期間15日を選択。2日と7日は選択不可で、30日も選べる
キャプチャ2:噴火の推移と「降灰を追う期間」。風向・風速を一定とする前提、段階の概読、観察期間を延ばしても総量は増えないことを近くに記載しています。撮影では条件の変更・表示更新は実行していません。

観察期間の最後の時刻でも、ある地点では、まだ届き切っていない寄与が残る可能性があります。実装上、地点情報の「最終」に相当する厚さは、選んだ観察期間の終端時刻で計算した値です。「無限に待って全部積もった値」と常に同じだとは限りません。

そのため、比較するときは何日後まで見ているかもそろえます。同じ風や噴出量でも、観察の終わり方が違えば、比較している時刻も違うからです。数字の横に、時刻と条件を残す意味がここにあります。

送り幅と再生速度は、計算の条件を変えるものではない

時間操作には、1時間・6時間・24時間の送り幅があります。これは「次にどの時刻を表示するか」の刻みです。6時間にすれば6時間先、24時間にすれば1日先へ移動します。灰が現実に速く運ばれる設定にはなりません。

再生速度の1倍・2倍・4倍も、画面が次の時刻へ進む間隔を変えるものです。風速を変えたり、噴火の総量を増やしたりする操作ではありません。現行の自動再生は、選んだ送り幅で時刻を進めるので、送り幅と速度の両方が、画面の進む速さに関係します。

たとえば、送り幅24時間のまま再生すれば、途中の短い休止を飛ばして眺めることがあります。短い変化を確かめたいときは、送り幅を小さくして前後へ動かすほうが見つけやすくなります。細かく見る操作と、大まかな推移をたどる操作を選ぶ考え方です。

内部では表示時刻を整数の時間へそろえ、0から観察期間の終端までの範囲へ収めます。前後へ移動する操作で範囲外の時刻を作らず、終端で自動再生を止めます。時間バーを動かした際も、連続再生を止めて、その時刻を見る状態にします。

今回の撮影では、初期デモで時間操作を展開し、3日後から6時間送りを3回押して90時間後へ移動しました。再生やスライダーの確定操作には広告が表示される場合があるため、それらは使わず、時刻のボタンで状態を確認しています。

簡易モデルが表せることと、表していないこと

この構成で表せるのは、同じ学習用の条件のもとで、地点までの遅れを置きながら累積量が増えていく様子や、噴出の休止・再開が堆積の進み方へどうずれて現れるか、という関係です。

一方、上空の風が時間とともに変わり、段階ごとに別方向へ灰が運ばれる様子を、今回の時間処理で再現しているわけではありません。風向・風速と噴煙高度は一定という前提が残ります。雨による変化、細かな地形や地表面での移動も、この簡易時間モデルの対象外です。

また、粒径から置く追加の遅れは、科学的に校正した粒子ごとの沈降時間そのものではありません。動く画像が滑らかで、時刻が細かく表示されても、その見せ方だけで到達時刻の確かさが上がるわけではありません。

実際の火山活動や避難等の判断には、気象庁の火山情報や自治体の案内を確認します。HAIZUのデモや、仮定に基づく到達時刻を、安全の判定には使いません。

時間の仕組みは、境目の値で確かめる

実装を確かめるときは、ただ「アニメーションが動いた」を見るだけでは足りません。到達前、ちょうど到達した時刻、途中、全量に届いた後といった境目を追うと、意図した時間処理かを確かめやすくなります。

単発の説明例なら、到達2時間の直前と直後、割合が50%になる4時間、100%になる6時間を並べられます。断続的な推移なら、休止の前後と再開の後を見ます。ある地点では噴出の帯より遅れて変わることも、前提に含めておきます。

実際のコードには、累積割合が時間とともに減らないこと、0から1の範囲に収まること、休止と再開が表れること、観察期間の終端で地点値がそろうことなどを確認するテストがあります。この記事ではその実装とテスト内容を読んで説明しており、今回新たに科学的な精度試験を実施したという意味ではありません。

アプリ開発の視点では、「いつ出るか」「いつ届くか」「どこまで観察するか」「どの速さで画面を進めるか」を別々に扱うことが、今回の設計の要点です。同じ「時間」という名前でも役割が違います。数字と一緒に、その時間が何の時計なのかを示すと、画面の説明も組み立てやすくなります。

次回の第7回は「重い計算を待たずに表示するには?」を予定しています。事前に用意した分布とキャッシュの役割、必要な時刻の画像を表示する仕組みを、待ち時間とサーバー負荷の視点から説明します。

HAIZU開発シリーズ
紹介・第0回:HAIZUの完成画面と開発ログ
第1回:アプリを作る前に、何を決めたのか?
第2回:画面・サーバー・計算係の役割は?
第3回:地図に火山灰の広がりを重ねるには?
第4回:スマホでも地図を見やすくするには?
第5回:火山灰の分布は、どう計算しているのか?
第6回:時間を動かすと、なぜ降灰が増えていくのか?(この記事)
第7回:重い計算を待たずに表示するには?(執筆予定。公開後にリンクを追加します)

HAIZUをブラウザで開く / 使い方とシミュレーションの前提を読む

本記事は2026年10月19日に確認した実装と公開Web版の画面に基づきます。数値例と図は仮の条件です。実装の動作、操作用デモ、現実の降灰を説明できる精度は、分けて扱っています。

参考情報

kobashinのプロフィール画像

WRITTEN BY

kobashin

個人事業のシステムエンジニア。開発の実務と、AI・身体ケア・家庭菜園の実践を行き来しながら、試してわかったことを記録しています。

運営者情報を読む ↗