このAPIでは、すべてのモデルの気象予報データへアクセスできます。時間範囲、座標、取得したい変数を指定して、過去に発行された予報データと最新の予報データを取得できます。
GitHubで公開しているPythonクライアントを使うことも、下の仕様をもとにHTTPリクエストを直接組み立てることもできます。
GribStreamをAIツールに組み込む場合は、まずAIツール向けGribStreamを確認してください。
同じ座標、気象パラメータ、時間範囲でも、複数の予報値が利用できます。各値は異なるリードタイム(モデル実行時刻から有効時刻までの予報時間)に対応します。
APIは各時刻について、条件に合う中で最も短いリードタイムの予報値を返します。つまり、その時点で利用可能だった最も新しく、通常は最も精度が高い予報を受け取れます。データ分析では、こうした値を「最良予報」または「現在に近い予報系列」と呼ぶことがあります。
POST https://gribstream.com/api/v2/<model>/timeseries
名称変更 以前は/historyでした。旧URLも引き続き動作します。
| ヘッダー | 値 | 説明 |
|---|---|---|
Content-Type |
application/json |
デフォルト値であり、唯一有効な値です。 |
Accept |
いずれかを指定:text/csvapplication/jsonapplication/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 |
アンサンブルデータセット(gefsatmos、ifsenfo、ifswaefなど)では、
レスポンスに含めるアンサンブルメンバーを選択します。例: "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 | 十進度で指定する解像度。 | はい |
name、level、infoの3つで、正確な気象変数セレクタを構成します。これらの値はカタログまたはモデルページからそのままコピーしてください。表示用のラベルではなく、API識別子です。
| フィールド | 型 | 説明 | 必須 |
|---|---|---|---|
name |
string |
カタログにある正確な気象パラメータコード(例: 気温なら"TMP")。翻訳しないでください。 |
はい |
level |
string |
カタログにある正確な大気レベルまたは地表面レベル(例: "2 m above ground")。 |
はい |
info |
string |
同じnameとlevelを持つパラメータがモデル内に複数ある場合に使う、カタログ上の正確な区別子。カタログの値が空の場合だけ空にしてください。 |
いいえ |
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: text/csv - レスポンスは予報データを含むCSVファイルです。Accept: application/json - レスポンスは単一のJSON配列で、各要素はJSONオブジェクトです。Accept: application/ndjson - レスポンスは改行区切りJSON(NDJSON)で、1行に1つのJSONオブジェクトが入ります。Accept-Encoding: gzipヘッダーを含めると、レスポンスはgzip圧縮されます。
注: レスポンスは厳密には順序保証されません。
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
[{"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}
]
{"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 |
リクエスト内の座標セットに指定した名前。 |
uwindvwindwind_directionwind_magnitude
|
変数または派生計算式(expression)ごとに1列。変数のデフォルト列名は[name]|[level]|[info]です。 |
"2022-08-10T00:00:00Z")で指定してください。minLeadTime/maxLeadTime(推奨)または非推奨のminHorizon/maxHorizon(時間単位)を使います。coordinatesまたはgrid、またはその両方)と、1つの変数を指定する必要があります。asOfパラメータは、過去のある時点から見えていた予報だけを再現するための基準時刻です。APIはasOf以前に生成されたモデル実行だけを対象にするため、バックテストやシミュレーションで後から発行された予報を誤って使うことを防げます。指定しない場合は、最新の利用可能な予報データが使われます。Authorizationヘッダーに有効な認証トークンを含める必要があります。トークンを取得するには、してください。
トークンは次のようにリクエストヘッダーに含めます:
Authorization: Bearer <token>
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側でリクエストの処理中にエラーが発生した場合に返されます。 |
指定した時間範囲に含まれるすべてのモデル実行を、座標リストと気象パラメータリストに対して取得します。必要に応じてリードタイム範囲で絞り込めます。
POST https://gribstream.com/api/v2/<model>/runs
名称変更 以前は/forecastsでした。旧URLも引き続き動作します。
| ヘッダー | 値 | 説明 |
|---|---|---|
Content-Type |
application/json |
デフォルト値であり、唯一有効な値です。 |
Accept |
いずれかを指定:text/csvapplication/jsonapplication/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 |
アンサンブルデータセット(gefsatmos、ifsenfo、ifswaefなど)では、
レスポンスに含めるアンサンブルメンバーを選択します。例: "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 | 十進度で指定する解像度。 | はい |
name、level、infoの3つで、正確な気象変数セレクタを構成します。これらの値はカタログまたはモデルページからそのままコピーしてください。表示用のラベルではなく、API識別子です。
| フィールド | 型 | 説明 | 必須 |
|---|---|---|---|
name |
string |
カタログにある正確な気象パラメータコード(例: 気温なら"TMP")。翻訳しないでください。 |
はい |
level |
string |
カタログにある正確な大気レベルまたは地表面レベル(例: "2 m above ground")。 |
はい |
info |
string |
同じnameとlevelを持つパラメータがモデル内に複数ある場合に使う、カタログ上の正確な区別子。カタログの値が空の場合だけ空にしてください。 |
いいえ |
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: text/csv - レスポンスは予報データを含むCSVファイルです。Accept: application/json - レスポンスは単一のJSON配列で、各要素はオブジェクトです。Accept: application/ndjson - レスポンスは改行区切りJSON(NDJSON)で、1行に1つのJSONオブジェクトが入ります。Accept-Encoding: gzipヘッダーを含めると、レスポンスはgzip圧縮されます。
注: レスポンスは厳密には順序保証されません。
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 ...
[{"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}
...
]
{"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 |
リクエスト内の座標セットに指定した名前。 |
uwindvwindwind_directionwind_magnitude
|
変数または派生計算式ごとに1列。変数のデフォルト列名は[name]|[level]|[info]です。 |
"2022-08-10T00:00:00Z")で指定してください。minLeadTime/maxLeadTime(推奨)または非推奨のminHorizon/maxHorizon(時間単位)を使います。coordinatesまたはgrid、またはその両方)と、1つの変数を指定する必要があります。Authorizationヘッダーに有効な認証トークンを含める必要があります。トークンを取得するには、してください。
トークンは次のようにリクエストヘッダーに含めます:
Authorization: Bearer <token>
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までご連絡ください。