GribStream

NBM風フィールドエクスプローラー

米国本土48州の地表付近の風の場を格子で可視化します。マップは新しいモデルサイクルごとに更新されるため、発達中の強風イベントをほぼリアルタイムで追えます。

マップが表示するもの

変数の読み方

WIND (10 m above ground)

WINDパラメータは、地表から10 mの風速を返します。これは地上観測や再生可能エネルギー計画でよく使われる標準的な参照高度です。

WDIR (10 m above ground)

WDIRは風が吹いてくる方向を、北から時計回りの度数で返します。値が90なら東からの風です。下のクエリでは角度を180°回転しています。これはGrafanaダッシュボード側が、矢印の向きとして「風が向かう方向」を期待しているためです。

開始からの時間(offset_hours)

offset_hoursフィールドを計算し、時刻スライダーを予報のリードタイム(モデル実行時刻から有効時刻までの予報時間)に合わせています。これにより、マップを他の気象グラフと同期しやすくなります。

データ取得リクエスト

ダッシュボードは次のリクエストでGribStream APIを呼びます。JSON内のboundsstepを変えると、自分の対象地域に絞れます。API自体はより細かい格子にも対応できますが、この画面はGrafanaが描画する要素数で遅くならないよう控えめにしています。

curl -X POST 'https://gribstream.com/api/v2/nbm/timeseries' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer [API_TOKEN]' \
  -d '{
    "fromTime": "2025-05-06T02:01:36.287Z",
    "untilTime": "2025-05-07T12:01:36.287Z",
    "minHorizon": 0,
    "maxHorizon": 36,
    "grid": {
              "minLatitude": 24.52,
              "maxLatitude": 49.38,
              "minLongitude": -124.77,
              "maxLongitude": -66.93,
              "step": 1.25
          },
    "variables": [
      { "name": "WIND", "level": "10 m above ground", "info": "", "alias": "wind_speed" },
      { "name": "WDIR", "level": "10 m above ground", "info": "", "alias": "wind_dir" }
    ],
    "expressions": [
      { "expression": "int(wind_dir + 180) % 360", "alias": "wind_dir"},
      { "expression": "floor((date(forecasted_time) - date('\''2025-05-06T02:01:36.287Z'\'')).Hours())", "alias": "offset_hours"}
    ],
    "filter": { "expression": "wind_speed != nil"}
  }'

探索のヒント