GribStream

気象予報データAPIドキュメント

このAPIでは、すべてのモデルの気象予報データへアクセスできます。時間範囲、座標、取得したい変数を指定して、過去に発行された予報データと最新の予報データを取得できます。

GitHubで公開しているPythonクライアントを使うことも、下の仕様をもとにHTTPリクエストを直接組み立てることもできます。

GribStreamをAIツールに組み込む場合は、まずAIツール向けGribStreamを確認してください。

Timeseriesエンドポイント

同じ座標、気象パラメータ、時間範囲でも、複数の予報値が利用できます。各値は異なるリードタイム(モデル実行時刻から有効時刻までの予報時間)に対応します。

APIは各時刻について、条件に合う中で最も短いリードタイムの予報値を返します。つまり、その時点で利用可能だった最も新しく、通常は最も精度が高い予報を受け取れます。データ分析では、こうした値を「最良予報」または「現在に近い予報系列」と呼ぶことがあります。

POST https://gribstream.com/api/v2/<model>/timeseries

名称変更 以前は/historyでした。旧URLも引き続き動作します。

利用可能なモデル

リクエストヘッダー

ヘッダー 説明
Content-Type application/json デフォルト値であり、唯一有効な値です。
Accept いずれかを指定:
text/csv
application/json
application/ndjson
レスポンス形式を選択します。デフォルトはtext/csvです。
Accept-Encoding gzip 任意ですが、レスポンスの圧縮のため推奨です。
Authorization Bearer <token> <token>を自分の認証トークンに置き換えてください。

リクエスト本文のパラメータ

リクエスト本文は、次の構造を持つJSONオブジェクトにします:

パラメータ 説明 必須
fromTime string (ISO 8601) 予報期間の開始時刻。 はい。(fromTime, untilTime)またはtimesListのどちらかが必要です。
untilTime string (ISO 8601) 予報期間の終了時刻。 はい。(fromTime, untilTime)またはtimesListのどちらかが必要です。
timesList array of string (ISO 8601) 返したい有効時刻の明示的なリスト。各値はforecasted_timeに対応します。 はい。(fromTime, untilTime)またはtimesListのどちらかが必要です。
asOf string (ISO 8601) 基準時刻。この時刻以前に生成されたモデル実行だけを対象にします。 いいえ
minLeadTime string (duration) 最小リードタイム(境界を含む)。"45m""18h"のような期間文字列です。minHorizon/maxHorizonより優先されます。 いいえ
maxLeadTime string (duration) 最大リードタイム(境界を含む)。"45m""18h"のような期間文字列です。minHorizon/maxHorizonより優先されます。 いいえ
minHorizon integer 非推奨minLeadTimeを使ってください)。時間単位の最小リードタイム(境界を含む)。 いいえ
maxHorizon integer 非推奨maxLeadTimeを使ってください)。時間単位の最大リードタイム(境界を含む)。 いいえ
coordinates array of coordinate 地理座標のリスト。gridを指定する場合は任意で、両方を同時に送ることもできます。 はい。coordinatesまたはgridの少なくとも一方が必要です。
grid grid object 規則的な長方形領域です。
GribStreamは指定された境界内のすべての点を、指定した空間stepで返します。 coordinatesと一緒に使うこともできます。
はい。coordinatesまたはgridの少なくとも一方が必要です。
variables array of variable 取得する気象変数のリスト。 はい
expressions array of expression リクエストで指定した変数からGribStream側で計算される列。各項目は、指定したaliasを列名として独立した列で返されます。詳しくは計算式のドキュメントを参照してください。 いいえ
filter filter object すべてのexpressionsを評価した後に適用されるtrue/false条件です。 単一のexpression文字列を含める必要があります。 計算式の結果がfalseになる行はレスポンスから除外されます。 いいえ
members array of integer アンサンブルデータセット(gefsatmosifsenfoifswaefなど)では、 レスポンスに含めるアンサンブルメンバーを選択します。
例: "members": [2,3,4]
デフォルトは[0]で、通常は制御メンバーであるメンバー0だけを返します。
いいえ(アンサンブルデータセットのみ)

注: 対象時刻は、範囲(fromTime, untilTime)またはtimesListで指定する必要があります。

座標オブジェクト

フィールド 説明 必須
lat float 座標の緯度。 はい
lon float 座標の経度。 はい
name string 座標に付ける任意の名前。地点を識別しやすいよう、レスポンスにも返されます。 いいえ

格子オブジェクト

フィールド 説明 必須
minLatitude number 南側の境界 (°N) はい
maxLatitude number 北側の境界 (°N) はい
minLongitude number 西側の境界 (°E) はい
maxLongitude number 東側の境界 (°E) はい
step number 十進度で指定する解像度。 はい

変数オブジェクト

namelevelinfoの3つで、正確な気象変数セレクタを構成します。これらの値はカタログまたはモデルページからそのままコピーしてください。表示用のラベルではなく、API識別子です。

フィールド 説明 必須
name string カタログにある正確な気象パラメータコード(例: 気温なら"TMP")。翻訳しないでください。 はい
level string カタログにある正確な大気レベルまたは地表面レベル(例: "2 m above ground")。 はい
info string 同じnamelevelを持つパラメータがモデル内に複数ある場合に使う、カタログ上の正確な区別子。カタログの値が空の場合だけ空にしてください。 いいえ
alias string 変数に付ける任意のalias。指定すると、このaliasがレスポンスの列ヘッダーとして使われます。 いいえ

計算式オブジェクト

フィールド 説明 必須
expression string 計算列を作成します。選択したすべての変数はaliasで参照できます。
詳しくは計算式のドキュメントを参照してください。
はい
alias string この計算結果に対してレスポンスで使われる列名。 はい

絞り込みオブジェクト

フィールド 説明 必須
expression string expressionsと同じDSLで書くtrue/false式です。 リクエスト本文内で先に定義したaliasを参照できます。 はい

リクエスト例

POST https://gribstream.com/api/v2/hrrr/timeseries
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Bearer <token>
リクエスト本文:
{
    "fromTime": "2024-09-10T00:00:00Z",
    "untilTime": "2024-09-10T10:00:00Z",
    "asOf": "2024-09-10T05:00:00Z",
    "minLeadTime": "1h",
    "maxLeadTime": "48h",
    "coordinates": [{ "lat": 40.7306, "lon": -73.9352, "name": "New York City" }],
    "variables": [
        { "name": "UGRD", "level": "1000 mb", "alias": "uwind" },
        { "name": "VGRD", "level": "1000 mb", "alias": "vwind" }
    ],
    "expressions": [
        { "expression": "func.Hypot(uwind, vwind)", "alias": "wind_magnitude" },
        { "expression": "int(270 - func.Atan2(vwind, uwind) * 180 / 3.14159) % 360", "alias": "wind_direction" }
    ]
}

レスポンス例

レスポンス形式はAcceptヘッダーで決まります。APIは3つの形式をサポートしています:

Accept-Encoding: gzipヘッダーを含めると、レスポンスはgzip圧縮されます。

注: レスポンスは厳密には順序保証されません。

CSVレスポンス例

forecasted_at,forecasted_time,lat,lon,name,uwind,vwind,wind_direction,wind_magnitude
2024-09-10T02:00:00Z,2024-09-10T03:00:00Z,40.7306,-73.9352,New York City,7.1213,1.7680,256,7.3375
2024-09-10T05:00:00Z,2024-09-10T08:00:00Z,40.7306,-73.9352,New York City,5.2585,-1.1512,282,5.3831
2024-09-10T01:00:00Z,2024-09-10T02:00:00Z,40.7306,-73.9352,New York City,8.1815,1.6363,258,8.3435
2024-09-10T05:00:00Z,2024-09-10T07:00:00Z,40.7306,-73.9352,New York City,6.9156,-1.4414,281,7.0642
2024-09-10T00:00:00Z,2024-09-10T01:00:00Z,40.7306,-73.9352,New York City,8.0572,2.9389,249,8.5765
2024-09-10T03:00:00Z,2024-09-10T04:00:00Z,40.7306,-73.9352,New York City,6.4841,2.5385,248,6.9633
2024-09-10T05:00:00Z,2024-09-10T06:00:00Z,40.7306,-73.9352,New York City,6.8368,0.1001,269,6.8375
2024-09-10T04:00:00Z,2024-09-10T05:00:00Z,40.7306,-73.9352,New York City,6.4087,3.0921,244,7.1157
2024-09-09T23:00:00Z,2024-09-10T00:00:00Z,40.7306,-73.9352,New York City,6.1795,3.9539,237,7.3362
2024-09-10T05:00:00Z,2024-09-10T09:00:00Z,40.7306,-73.9352,New York City,4.7715,-0.5644,276,4.8047

JSONレスポンス例(JSON配列)

[{"forecasted_at":"2024-09-10T02:00:00Z","forecasted_time":"2024-09-10T03:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.121286392211914,"vwind":1.7680130004882812,"wind_direction":256,"wind_magnitude":7.337478439477567}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T01:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.057228088378906,"vwind":2.938892364501953,"wind_direction":249,"wind_magnitude":8.576480210336284}
,{"forecasted_at":"2024-09-10T01:00:00Z","forecasted_time":"2024-09-10T02:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.181510925292969,"vwind":1.6362571716308594,"wind_direction":258,"wind_magnitude":8.34352794400556}
,{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T06:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.836750030517578,"vwind":0.10012435913085938,"wind_direction":269,"wind_magnitude":6.837483152964509}
,{"forecasted_at":"2024-09-09T23:00:00Z","forecasted_time":"2024-09-10T00:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.179473876953125,"vwind":3.953920364379883,"wind_direction":237,"wind_magnitude":7.33616954846356}
,{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T07:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.915561676025391,"vwind":-1.4414329528808594,"wind_direction":281,"wind_magnitude":7.064185887458082}
,{"forecasted_at":"2024-09-10T03:00:00Z","forecasted_time":"2024-09-10T04:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.484088897705078,"vwind":2.538473129272461,"wind_direction":248,"wind_magnitude":6.963279016482147}
,{"forecasted_at":"2024-09-10T04:00:00Z","forecasted_time":"2024-09-10T05:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.408748626708984,"vwind":3.0920562744140625,"wind_direction":244,"wind_magnitude":7.115677828885149}
,{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T08:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":5.258523941040039,"vwind":-1.1512451171875,"wind_direction":282,"wind_magnitude":5.383069696589422}
,{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T09:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":4.771465301513672,"vwind":-0.564422607421875,"wind_direction":276,"wind_magnitude":4.804732459078015}
]

NDJSONレスポンス例(行区切り)

{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T07:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.915561676025391,"vwind":-1.4414329528808594,"wind_direction":281,"wind_magnitude":7.064185887458082}
{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T08:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":5.258523941040039,"vwind":-1.1512451171875,"wind_direction":282,"wind_magnitude":5.383069696589422}
{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T09:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":4.771465301513672,"vwind":-0.564422607421875,"wind_direction":276,"wind_magnitude":4.804732459078015}
{"forecasted_at":"2024-09-10T05:00:00Z","forecasted_time":"2024-09-10T06:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.836750030517578,"vwind":0.10012435913085938,"wind_direction":269,"wind_magnitude":6.837483152964509}
{"forecasted_at":"2024-09-10T03:00:00Z","forecasted_time":"2024-09-10T04:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.484088897705078,"vwind":2.538473129272461,"wind_direction":248,"wind_magnitude":6.963279016482147}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T01:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.057228088378906,"vwind":2.938892364501953,"wind_direction":249,"wind_magnitude":8.576480210336284}
{"forecasted_at":"2024-09-09T23:00:00Z","forecasted_time":"2024-09-10T00:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.179473876953125,"vwind":3.953920364379883,"wind_direction":237,"wind_magnitude":7.33616954846356}
{"forecasted_at":"2024-09-10T01:00:00Z","forecasted_time":"2024-09-10T02:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.181510925292969,"vwind":1.6362571716308594,"wind_direction":258,"wind_magnitude":8.34352794400556}
{"forecasted_at":"2024-09-10T04:00:00Z","forecasted_time":"2024-09-10T05:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.408748626708984,"vwind":3.0920562744140625,"wind_direction":244,"wind_magnitude":7.115677828885149}
{"forecasted_at":"2024-09-10T02:00:00Z","forecasted_time":"2024-09-10T03:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.121286392211914,"vwind":1.7680130004882812,"wind_direction":256,"wind_magnitude":7.337478439477567}

レスポンス項目:

フィールド 説明
forecasted_at モデル実行時刻。予報が生成または発行された時刻です。
forecasted_time 有効時刻。予報が対象とする時刻です。
lat 座標の緯度。
lon 座標の経度。
name リクエスト内の座標セットに指定した名前。
uwind
vwind
wind_direction
wind_magnitude
変数または派生計算式(expression)ごとに1列。変数のデフォルト列名は[name]|[level]|[info]です。

利用上の注意

認証

Authorizationヘッダーに有効な認証トークンを含める必要があります。トークンを取得するには、してください。

トークンは次のようにリクエストヘッダーに含めます:

Authorization: Bearer <token>

cURLコマンド例

curl -X POST 'https://gribstream.com/api/v2/hrrr/timeseries' \
        -H "Content-Type: application/json" \
        -H "Accept-Encoding: gzip" \
        -H "Authorization: Bearer [API_TOKEN]" \
        -d '{
            "fromTime": "2024-09-10T00:00:00Z",
            "untilTime": "2024-09-10T10:00:00Z",
            "asOf": "2024-09-10T05:00:00Z",
            "minLeadTime": "1h",
            "maxLeadTime": "48h",
            "coordinates": [{ "lat": 40.7306, "lon": -73.9352, "name": "New York City" }],
            "variables": [
              { "name": "UGRD", "level": "1000 mb", "alias": "uwind" },
              { "name": "VGRD", "level": "1000 mb", "alias": "vwind" }
            ],
            "expressions": [
              { "expression": "func.Hypot(uwind, vwind)", "alias": "wind_magnitude" },
              { "expression": "int(270 - func.Atan2(vwind, uwind) * 180 / 3.14159) % 360", "alias": "wind_direction" }
            ]
        }' | gunzip | head -20

このコマンドは予報データを取得し、展開後のレスポンスの最初の20行を出力します。

エラー処理

リクエストに問題がある場合、APIは適切なHTTPステータスコードとエラーメッセージを返します。

よくあるエラーコード

ステータスコード 意味 説明
400 Bad Request リクエストパラメータが無効です。 必須パラメータが不足している、または値が無効な場合に発生します。
401 Unauthorized 認証に失敗しました。 認証トークンがない、または無効な場合に発生します。
429 Too Many Requests 利用枠を超えました。 利用枠を使い切った場合に発生します。レスポンスには、再試行までの待ち時間を示すRetry-Afterヘッダーが含まれます。
500 Internal Server Error サーバー側エラーです。 GribStream側でリクエストの処理中にエラーが発生した場合に返されます。

Runsエンドポイント

指定した時間範囲に含まれるすべてのモデル実行を、座標リストと気象パラメータリストに対して取得します。必要に応じてリードタイム範囲で絞り込めます。

POST https://gribstream.com/api/v2/<model>/runs

名称変更 以前は/forecastsでした。旧URLも引き続き動作します。

利用可能なモデル

リクエストヘッダー

ヘッダー 説明
Content-Type application/json デフォルト値であり、唯一有効な値です。
Accept いずれかを指定:
text/csv
application/json
application/ndjson
レスポンス形式を選択します。デフォルトはtext/csvです。
Accept-Encoding gzip 任意ですが、レスポンスの圧縮のため推奨です。
Authorization Bearer <token> <token>を自分の認証トークンに置き換えてください。

リクエスト本文のパラメータ

リクエスト本文は、次の構造を持つJSONオブジェクトにします:

パラメータ 説明 必須
forecastedFrom string (ISO 8601) 最も早いモデル実行時刻。 はい。(forecastedFrom, forecastedUntil)またはtimesListのどちらかが必要です。
forecastedUntil string (ISO 8601) 最も遅いモデル実行時刻。 はい。(forecastedFrom, forecastedUntil)またはtimesListのどちらかが必要です。
timesList array of string (ISO 8601) モデル実行時刻の明示的なリスト。各値はforecasted_atに対応します。 はい。(forecastedFrom, forecastedUntil)またはtimesListのどちらかが必要です。
minLeadTime string (duration) 最小リードタイム(境界を含む)。"45m""18h"のような期間文字列です。minHorizon/maxHorizonより優先されます。 いいえ
maxLeadTime string (duration) 最大リードタイム(境界を含む)。"45m""18h"のような期間文字列です。minHorizon/maxHorizonより優先されます。 いいえ
minHorizon integer 非推奨minLeadTimeを使ってください)。時間単位の最小リードタイム(境界を含む)。 いいえ
maxHorizon integer 非推奨maxLeadTimeを使ってください)。時間単位の最大リードタイム(境界を含む)。 いいえ
coordinates array of coordinate 地理座標のリスト。 はい。coordinatesまたはgridの少なくとも一方が必要です。
grid grid object 規則的な長方形領域です。
GribStreamは指定された境界内のすべての点を、指定した空間stepで返します。 coordinatesと一緒に使うこともできます。
はい。coordinatesまたはgridの少なくとも一方が必要です。
variables array of variable 取得する気象変数のリスト。 はい
expressions array of expression リクエストで指定した変数からGribStream側で計算される列。各項目は、指定したaliasを列名として独立した列で返されます。詳しくは計算式のドキュメントを参照してください。 いいえ
filter filter object すべてのexpressionsを評価した後に適用されるtrue/false条件です。 単一のexpression文字列を含める必要があります。 計算式の結果がfalseになる行はレスポンスから除外されます。 いいえ
members array of integer アンサンブルデータセット(gefsatmosifsenfoifswaefなど)では、 レスポンスに含めるアンサンブルメンバーを選択します。
例: "members": [2,3,4]
デフォルトは[0]で、通常は制御メンバーであるメンバー0だけを返します。
いいえ(アンサンブルデータセットのみ)

注: 対象のモデル実行時刻は、範囲(forecastedFrom, forecastedUntil)またはtimesListで指定する必要があります。

座標オブジェクト

フィールド 説明 必須
lat float 座標の緯度。 はい
lon float 座標の経度。 はい
name string 座標に付ける任意の名前。地点を識別しやすいよう、レスポンスにも返されます。 いいえ

格子オブジェクト

フィールド 説明 必須
minLatitude number 南側の境界 (°N) はい
maxLatitude number 北側の境界 (°N) はい
minLongitude number 西側の境界 (°E) はい
maxLongitude number 東側の境界 (°E) はい
step number 十進度で指定する解像度。 はい

変数オブジェクト

namelevelinfoの3つで、正確な気象変数セレクタを構成します。これらの値はカタログまたはモデルページからそのままコピーしてください。表示用のラベルではなく、API識別子です。

フィールド 説明 必須
name string カタログにある正確な気象パラメータコード(例: 気温なら"TMP")。翻訳しないでください。 はい
level string カタログにある正確な大気レベルまたは地表面レベル(例: "2 m above ground")。 はい
info string 同じnamelevelを持つパラメータがモデル内に複数ある場合に使う、カタログ上の正確な区別子。カタログの値が空の場合だけ空にしてください。 いいえ
alias string 変数に付ける任意のalias。指定すると、このaliasがレスポンスの列ヘッダーとして使われます。 いいえ

計算式オブジェクト

フィールド 説明 必須
expression string 計算列を作成します。選択したすべての変数はaliasで参照できます。
詳しくは計算式のドキュメントを参照してください。
はい
alias string この計算結果に対してレスポンスで使われる列名。 はい

絞り込みオブジェクト

フィールド 説明 必須
expression string expressionsと同じDSLで書くtrue/false式です。 リクエスト本文内で先に定義したaliasを参照できます。 はい

リクエスト例

POST https://gribstream.com/api/v2/hrrr/runs
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Bearer <token>
リクエスト本文:
{
    "forecastedFrom": "2024-09-10T00:00:00Z",
    "forecastedUntil": "2024-09-10T00:00:00Z",
    "minLeadTime": "1h",
    "maxLeadTime": "48h",
    "coordinates": [{ "lat": 40.7306, "lon": -73.9352, "name": "New York City" }],
    "variables": [
        { "name": "UGRD", "level": "1000 mb", "alias": "uwind" },
        { "name": "VGRD", "level": "1000 mb", "alias": "vwind" }
    ],
    "expressions": [
        { "expression": "func.Hypot(uwind, vwind)", "alias": "wind_magnitude" },
        { "expression": "int(270 - func.Atan2(vwind, uwind) * 180 / 3.14159) % 360", "alias": "wind_direction" }
    ]
}

レスポンス例

レスポンス形式はAcceptヘッダーで決まります。APIは3つの形式をサポートしています:

Accept-Encoding: gzipヘッダーを含めると、レスポンスはgzip圧縮されます。

注: レスポンスは厳密には順序保証されません。

CSVレスポンス例

forecasted_at,forecasted_time,lat,lon,name,uwind,vwind,wind_direction,wind_magnitude
2024-09-10T00:00:00Z,2024-09-10T01:00:00Z,40.7306,-73.9352,New York City,8.0572,2.9389,249,8.5765
2024-09-10T00:00:00Z,2024-09-11T02:00:00Z,40.7306,-73.9352,New York City,2.3471,-5.2970,336,5.7937
2024-09-10T00:00:00Z,2024-09-10T03:00:00Z,40.7306,-73.9352,New York City,7.2268,1.7030,256,7.4247
2024-09-10T00:00:00Z,2024-09-11T06:00:00Z,40.7306,-73.9352,New York City,-2.9925,-5.0025,30,5.8292
2024-09-10T00:00:00Z,2024-09-11T07:00:00Z,40.7306,-73.9352,New York City,-2.9643,-4.9196,31,5.7437
2024-09-10T00:00:00Z,2024-09-10T12:00:00Z,40.7306,-73.9352,New York City,4.7834,-4.3696,312,6.4787
2024-09-10T00:00:00Z,2024-09-10T10:00:00Z,40.7306,-73.9352,New York City,7.2718,0.5647,265,7.2937
2024-09-10T00:00:00Z,2024-09-11T10:00:00Z,40.7306,-73.9352,New York City,-2.9361,-4.5728,32,5.4343
2024-09-10T00:00:00Z,2024-09-11T05:00:00Z,40.7306,-73.9352,New York City,-3.1221,-5.8816,27,6.6589
2024-09-10T00:00:00Z,2024-09-10T06:00:00Z,40.7306,-73.9352,New York City,6.6521,1.6799,255,6.8610
2024-09-10T00:00:00Z,2024-09-11T00:00:00Z,40.7306,-73.9352,New York City,3.2101,-3.3758,316,4.6584
2024-09-10T00:00:00Z,2024-09-10T11:00:00Z,40.7306,-73.9352,New York City,6.9390,-2.4367,289,7.3544
...

JSONレスポンス例(JSON配列)

[{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T09:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.078826904296875,"vwind":2.4223251342773438,"wind_direction":251,"wind_magnitude":7.481807896300802}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T07:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.181903839111328,"vwind":2.596050262451172,"wind_direction":247,"wind_magnitude":6.704879718622265}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-11T09:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":-2.627544403076172,"vwind":-5.187816619873047,"wind_direction":26,"wind_magnitude":5.815275648803582}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T08:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.091346740722656,"vwind":2.6632766723632812,"wind_direction":249,"wind_magnitude":7.5749746686515245}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T04:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.889509201049805,"vwind":2.7773094177246094,"wind_direction":248,"wind_magnitude":7.428242364996697}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T03:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.226800918579102,"vwind":1.7029743194580078,"wind_direction":256,"wind_magnitude":7.424740604863526}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T10:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.271799087524414,"vwind":0.5646705627441406,"wind_direction":265,"wind_magnitude":7.2936900683913555}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T12:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":4.783409118652344,"vwind":-4.369564056396484,"wind_direction":312,"wind_magnitude":6.4787416092446914}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T05:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.676166534423828,"vwind":2.414224624633789,"wind_direction":252,"wind_magnitude":8.046863563053401}
,{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T01:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.057228088378906,"vwind":2.938892364501953,"wind_direction":249,"wind_magnitude":8.576480210336284}
...
]

NDJSONレスポンス例(行区切り)

{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T03:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":7.226800918579102,"vwind":1.7029743194580078,"wind_direction":256,"wind_magnitude":7.424740604863526}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T17:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":2.3053665161132812,"vwind":-3.231029510498047,"wind_direction":324,"wind_magnitude":3.969164455061737}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T19:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":1.7580318450927734,"vwind":-2.8487396240234375,"wind_direction":328,"wind_magnitude":3.3475354238366912}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T16:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":2.373655319213867,"vwind":-3.552021026611328,"wind_direction":326,"wind_magnitude":4.272129790622153}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T20:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":1.9354515075683594,"vwind":-2.271472930908203,"wind_direction":319,"wind_magnitude":2.9842187945922025}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T02:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":8.008834838867188,"vwind":1.1038799285888672,"wind_direction":262,"wind_magnitude":8.084552329782657}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T12:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":4.783409118652344,"vwind":-4.369564056396484,"wind_direction":312,"wind_magnitude":6.4787416092446914}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T04:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":6.889509201049805,"vwind":2.7773094177246094,"wind_direction":248,"wind_magnitude":7.428242364996697}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T13:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":2.683929443359375,"vwind":-4.015068054199219,"wind_direction":326,"wind_magnitude":4.829518478770162}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T18:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":1.8502693176269531,"vwind":-3.0554637908935547,"wind_direction":328,"wind_magnitude":3.5720240096076235}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-11T09:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":-2.627544403076172,"vwind":-5.187816619873047,"wind_direction":26,"wind_magnitude":5.815275648803582}
{"forecasted_at":"2024-09-10T00:00:00Z","forecasted_time":"2024-09-10T14:00:00Z","lat":40.7306,"lon":-73.9352,"name":"New York City","uwind":1.9734878540039062,"vwind":-4.105434417724609,"wind_direction":334,"wind_magnitude":4.555134034047598}
...

レスポンス項目:

フィールド 説明
forecasted_at モデル実行時刻。予報が生成または発行された時刻です。
forecasted_time 有効時刻。予報が対象とする時刻です。
lat 座標の緯度。
lon 座標の経度。
name リクエスト内の座標セットに指定した名前。
uwind
vwind
wind_direction
wind_magnitude
変数または派生計算式ごとに1列。変数のデフォルト列名は[name]|[level]|[info]です。

利用上の注意

認証

Authorizationヘッダーに有効な認証トークンを含める必要があります。トークンを取得するには、してください。

トークンは次のようにリクエストヘッダーに含めます:

Authorization: Bearer <token>

cURLコマンド例

  curl -X POST 'https://gribstream.com/api/v2/hrrr/runs' \
-H "Content-Type: application/json" \
-H "Accept-Encoding: gzip" \
-H "Authorization: Bearer [API_TOKEN]" \
-d '{
    "forecastedFrom": "2024-09-10T00:00:00Z",
    "forecastedUntil": "2024-09-10T00:00:00Z",
    "minLeadTime": "1h",
    "maxLeadTime": "48h",
    "coordinates": [{ "lat": 40.7306, "lon": -73.9352, "name": "New York City" }],
    "variables": [
        { "name": "UGRD", "level": "1000 mb", "alias": "uwind" },
        { "name": "VGRD", "level": "1000 mb", "alias": "vwind" }
    ],
    "expressions": [
        { "expression": "func.Hypot(uwind, vwind)", "alias": "wind_magnitude" },
        { "expression": "int(270 - func.Atan2(vwind, uwind) * 180 / 3.14159) % 360", "alias": "wind_direction" }
    ]
    }' | gunzip | head -20

このコマンドは予報データを取得し、展開後のレスポンスの最初の20行を出力します。

エラー処理

リクエストに問題がある場合、APIは適切なHTTPステータスコードとエラーメッセージを返します。

よくあるエラーコード

ステータスコード 意味 説明
400 Bad Request リクエストパラメータが無効です。 必須パラメータが不足している、または値が無効な場合に発生します。
401 Unauthorized 認証に失敗しました。 認証トークンがない、または無効な場合に発生します。
429 Too Many Requests 利用枠を超えました。 利用枠を使い切った場合に発生します。レスポンスには、再試行までの待ち時間を示すRetry-Afterヘッダーが含まれます。
500 Internal Server Error サーバーエラーです。 GribStream側でリクエストの処理中にエラーが発生した場合に返されます。

問い合わせ

質問やサポートが必要な場合は、info@gribstream.comまでご連絡ください。