About — Typhoon Risk Timeline

← Back to viewer

1. このデモが何をしているか

気象衛星画像と数理モデル(数値天気予報, NWP)出力 を組み合わせて、 線形回帰ベースの災害危険度マップを 10 段階のカラーで衛星画像に重畳する 研究兼可視化デモです。 「画像モデルと数理モデルが等価か」という議論の入口を、実データと最小限のコードで触れるようにしてあります。

2. 全体パイプライン

[衛星画像]                [数値モデル / 再解析]
  Himawari B13 IR          OpenMeteo (= GFS / ICON)
  または ERA5 合成画像      または ERA5 archive
        |                          |
        +--------+--------+---------+
                 |        |
              [共通格子へ整列]
                    |
       [画像分析で特徴量抽出 Tier 1-2]
       [NWP変数をそのまま特徴量に追加]
                    |
        [Ridge 回帰: y = β·x + β₀]
        (目的変数 = precipitation mm/h)
                    |
        [予測値を JMA 雨量階級 10 区分に離散化]
                    |
        [リスクレベル毎の RGBA (α 制御) で
         衛星画像に半透明オーバーレイ]
                    |
        [cartopy で海岸線・国境を上から重畳]
                    |
        [matplotlib で PNG → ffmpeg で MP4/GIF]
                    |
        [vanilla JS で時系列スクラブ UI]

3. データソース

レイヤ取得先用途
Himawari B13 IR タイル JMA bosai 公式タイルサーバ 2026 直近の実衛星画像
OpenMeteo Forecast API open-meteo.com 直近〜数日のNWP変数
ERA5 archive open-meteo.com archive 2022 Nanmadol の再解析
海岸線・国境 Natural Earth 10m cartopy 経由

取得した変数:

4. 画像分析で抽出した特徴量

雲量バンド cloud_cover_high を入力画像 I とみなして、線形回帰の前に次の派生特徴を計算しています。

Tier 1 (ピクセルレベル)

Tier 2 (局所近傍オペレータ)

これは数式的には 1×1 conv 層に手設計のフィルタバンクを連結したもの と等価です。 CNN の最低次の構成要素を、解釈可能な手書き版で実装している、という位置づけ。

5. 線形回帰の中身

各ピクセル (i, j) で:

risk(i,j) = β₀ + Σ_c β_c · φ_c(I)(i,j) + ε
線形モデルの既知の限界: Ridge は平均回帰の性質を持つので、強雨域(Lv7 以上)の極値を打てません。 実測で Lv7「激しい雨」が出ても予測は Lv4-5 で頭打ちになります。 解法は分位点回帰 / Tweedie GLM / 残差を CNN で学習する hybrid。 研究的にはここがベースライン→深層学習への跳躍点になります。

6. 10 段階離散化 (JMA 雨量階級準拠)

Lv表示色表現mm/h 区分
0no risk< 0.5
1trace0.5 – 1
2light1 – 2
3moderate2 – 4
4fairly strong4 – 8
5strong8 – 15
6very strong15 – 25
7intense25 – 40
8very intense40 – 60
9extreme≥ 60

7. 衛星画像 × リスクのオーバーレイ手法

ERA5 合成 IR (Nanmadol 用)

2022 のひまわり生画像が無料で取れないので、再解析から擬似衛星を合成しています。

synth_IR = 0.55 · (1 − normalized_pressure)
         + 0.30 · cloud_cover_high / 100
         + 0.15 · cloud_cover       / 100
↓ ガンマ 0.85 ↓ 14倍 cubic 拡大 ↓ ガウシアン σ=1.6

低気圧(台風中心)が明るく、雲量が陰影を作るので、見た目は実IRに近い渦構造になります。

8. 時系列とビューワ

9. リポジトリ構成

typhoon_risk_demo/
├── demo.py                   # ベース実装(3 過去台風)
├── risk10.py                 # 10 段階離散化、色定義
├── risk10_overlay.py         # 旧オーバーレイ(cloud-based)
├── risk_on_real_satellite.py # 実 Himawari 単発、CLI 引数で時刻指定
├── animate.py                # 時系列アニメ生成(JMA tiles, ERA5 forecast)
├── nanmadol_demo.py          # ERA5 archive 合成衛星 + 24h アニメ
├── cache/                    # 衛星 PNG, OpenMeteo .npz キャッシュ
└── outputs/
    ├── viewer.html           # 時系列ビューワ(本ページの親)
    ├── about.html            # 本ページ
    ├── frames/               # June 2026 PNG(13枚)
    ├── frames_nanmadol/      # Nanmadol PNG(24枚)
    ├── typhoon_animation.*   # MP4 / GIF
    └── nanmadol_animation.*  # MP4 / GIF

10. 既知の制限 / 次にできること