線状降水帯はなぜ同じ場所から動かないのか。バックビルディング現象を再現できるシミュレーターを作った
大雨のニュースで「線状降水帯」という言葉を聞かない年がなくなった。ただ、あれが普通の大雨と何が違うのかを説明しようとすると、意外と言葉に詰まる。雨雲が動かないから、では答えになっていない。動かないのはなぜなのか、が本題だからだ。
条件を自分で変えて確かめられるシミュレーターを作った。
雲は動いている。動いていないのは「列」のほう
いちばん誤解されやすいのがここだと思う。線状降水帯を作っている積乱雲は、実はきちんと動いている。上空の風に流されて、次々と風下へ去っていく。
それでも雨が止まないのは、去っていく雲と入れ替わりに、風上側で新しい積乱雲が生まれ続けるからだ。列の先頭が補充され続けるので、列そのものは同じ場所に居座って見える。これがバックビルディング現象と呼ばれるもので、線状降水帯の正体になる。
エスカレーターを思い浮かべるとわかりやすい。段は上へ動いているのに、エスカレーター自体は動かない。線状降水帯もそれと同じで、部品は流れているのに全体は止まっている。
そして厄介なのが、雲が同じ経路をたどるということだ。同じ場所で生まれて同じ方向へ流されるので、その真下の細長い帯には、雲が通るたびに雨が積み重なる。1つの雲が落とす雨は大したことがなくても、3時間で20個通れば話が変わる。これが数時間で200mmを超えるような雨になる仕組みになる。
4つの条件を自分で動かす
アプリでは次の4つを設定して発生させる。実際に線状降水帯の発生要因として挙げられるものを、操作できる形にした。
・水蒸気の流入。積乱雲の燃料にあたる。暖かく湿った空気がどれだけ入ってくるか ・上空の風。生まれた積乱雲を流す速さ ・風向の安定度。流す向きが一定か、時間とともに振れるか ・持ち上げのきっかけ。山地にぶつかる、前線がある、など雲が生まれる引き金
発生させると、山地の風上側で積乱雲が生まれ、東北東へ流れていく。地図の色は3時間の積算雨量で、青から緑、黄、橙、赤、紫の順に強くなる。帯が赤や紫に染まったら、それが線状降水帯になる。
強すぎても弱すぎても線にならない
このアプリで実際に触ってほしいのはここになる。作ってみて自分でも面白かったのが、上空の風には「ちょうどいい強さ」があるという点だった。
条件を変えて11回ずつ試したときの結果はこうなった。
・水蒸気が非常に多く、風がふつうで、風向が一定。11回中11回で線状降水帯が発生。最大3時間積算はおよそ220mm、降水域の長軸は130km前後 ・風が強すぎる。長軸は170km近くまで伸びるが、最大雨量は140mm程度にとどまる。雲が流されるのが速すぎて、1か所あたりの滞在時間が短くなり、雨が薄く広がってしまう ・風が弱すぎる。最大雨量は320mmと最も多いが、長軸は65km程度で線状にならない。雲がその場に居座るので局地的には猛烈だが、帯にならない ・風向が大きく振れる。最大116mm、長軸20km。雲の通り道が毎回ずれるので、雨が一か所に積み上がらない
面白いのは、雨量が最大になるのは「風が弱すぎる」条件だということだ。それでも線状降水帯とは判定されない。線状降水帯という言葉が指しているのは雨の量ではなく形であって、細長い範囲に大量の雨が集中している状態を指している。だから量だけ見ていると本質を外す。
そして「風向が一定であること」が効くのがよくわかる。向きが振れるだけで、同じ水蒸気量でも雨量が半分以下になる。同じ場所を何度も通ることが、あの災害的な雨量を作っている。
判定の基準について
アプリでは、降水域が次の条件を満たしたときに線状降水帯が発生したと判定している。
・3時間積算雨量が100mm以上の領域の面積が500km²以上 ・その領域の長軸が100km以上 ・長軸と短軸の比が2.5以上(細長いこと) ・領域内の最大値が150mm以上
これは気象庁が「顕著な大雨に関する気象情報」を発表する際の考え方を参考にした簡易版になる。面積や形状で判定するという発想がそのまま入っているので、なぜ「線状」という条件がわざわざ付いているのかを体感するには十分だと思う。実際の運用基準はもっと細かいので、正確なところは気象庁の解説を確認してほしい。
実装で苦労したところ
外部ライブラリなしの単一HTMLで、地図も雲も積算雨量もCanvasに直接描いている。
モデルの骨格はこうなっている。持ち上げ地点で確率的に積乱雲を生成し、それぞれが上空の風ベクトルで移動する。雲の強度は寿命に対して台形(急に発達して成熟期が続き、最後に衰える)で変化し、その時点の強度を格子状の雨量計に足し込んでいく。3時間積算は1時間ごとのスナップショットとの差分で出している。降水域が線状かどうかは、100mmを超えた格子の共分散行列から固有値を求めて長軸と短軸を出している。
数値合わせにはかなり手間取った。最初は積乱雲の移動が遅すぎて、寿命を使い切る前に画面外へ出てしまい、帯の長軸が80kmまでしか伸びなかった。原因は地形の向きで、雲を北東へ流していたために画面の短い辺を横切る形になっていた。海岸線と山地を南北に走らせ、風を東北東寄りに変えて画面の長辺を使うようにしたら、ようやく130km級の帯ができるようになった。
もう一つは雨量が発散する問題だった。雲が重なった場所で強度を単純に足すと、風が弱い条件で3時間700mmという非現実的な数字が出た。実際の雨量強度には上限があるので、同時刻の強度に上限をかけてから積算するようにしている。ここは物理的に厳密ではなく、現実的な範囲に収めるための割り切りになる。
あとはCSSのクラス名の衝突で、ログの重要行に付けたbigが、大きな数値表示用の.hud .big(32px)に一致してしまい、ログだけ巨大な文字で表示されていた。動作検証で気づけたが、見た目の不具合はテストで拾いにくいので、実際に描画して確認する工程は省けないと改めて思った。
まとめ
・線状降水帯では積乱雲自体は動いている。風上で次々生まれるので、列全体が止まって見える ・同じ経路を雲が何度も通るため、細長い帯に雨が積み重なって数百mmに達する ・上空の風は強すぎると雨が薄く広がり、弱すぎると局地的に集中するだけで線にならない ・風向が一定であることが決定的に効く。振れるだけで雨量が半分以下になる ・雨量が最大になる条件と、線状降水帯と判定される条件は一致しない。線状降水帯は量ではなく形の話 ・線状降水帯シミュレーターから。台風育成シミュレーターとあわせてどうぞ ・実際の防災情報は必ず気象庁と自治体の発表を確認すること