Cette API donne accès aux données de prévision météorologique pour tous les modèles. Vous pouvez récupérer des données historiques et prévisionnelles en indiquant la plage temporelle, les coordonnées et les variables d’intérêt.
Vous pouvez utiliser notre client Python sur GitHub ou construire votre propre intégration avec les détails ci-dessous.
Si vous intégrez GribStream à un outil d'IA, commencez par GribStream pour les outils d'IA.
Pour une coordonnée, un paramètre météorologique et une plage temporelle donnés, plusieurs valeurs prévisionnelles sont disponibles. Chaque valeur correspond à un horizon de prévision différent, ou Lead Time, c’est-à-dire une prévision émise à un moment différent dans le passé.
Pour chaque point temporel, l’API renvoie la valeur prévisionnelle avec l’horizon de prévision le plus court. Vous obtenez donc la prévision la plus récente et généralement la plus précise disponible à ce moment. En data science, on parle souvent de série de meilleure prévision (best forecast) ou de nowcast.
POST https://gribstream.com/api/v2/<model>/timeseries
Renommé Auparavant /history. L’ancien chemin fonctionne toujours.
| Header | Valeur | Commentaire |
|---|---|---|
Content-Type |
application/json |
Valeur par défaut et seule valeur valide. |
Accept |
Choisissez-en un :text/csvapplication/jsonapplication/ndjson
|
Sélectionne le format de réponse. Par défaut : text/csv |
Accept-Encoding |
gzip |
Optionnel et recommandé pour une réponse compressée |
Authorization |
Bearer <token> |
Remplacez <token> par votre token d’authentification |
Le body de requête doit être un objet JSON avec la structure suivante :
| Paramètre | Type | Description | Obligatoire |
|---|---|---|---|
fromTime |
string (ISO 8601) |
Début de la période de prévision. | Oui, soit (fromTime, untilTime), soit timesList |
untilTime |
string (ISO 8601) |
Fin de la période de prévision. | Oui, soit (fromTime, untilTime), soit timesList |
timesList |
array de string (ISO 8601) |
Liste explicite d’heures de validité à retourner ; chaque valeur correspond à forecasted_time. |
Oui, soit (fromTime, untilTime), soit timesList |
asOf |
string (ISO 8601) |
Heure de coupure/référence : seules les exécutions du modèle générées à cet horodatage ou avant sont prises en compte. | Non |
minLeadTime |
string (duration) |
Lead Time minimal (inclus). Chaîne de durée comme "45m" ou "18h". Prioritaire sur minHorizon/maxHorizon. |
Non |
maxLeadTime |
string (duration) |
Lead Time maximal (inclus). Chaîne de durée comme "45m" ou "18h". Prioritaire sur minHorizon/maxHorizon. |
Non |
minHorizon |
integer |
Obsolète (utilisez minLeadTime). Lead Time minimal en heures (inclus). |
Non |
maxHorizon |
integer |
Obsolète (utilisez maxLeadTime). Lead Time maximal en heures (inclus). |
Non |
coordinates |
array de coordinate |
Liste de coordonnées géographiques. Optionnel quand grid est fourni ; vous pouvez envoyer les deux. |
Oui - au moins coordinates ou grid doit être fourni |
grid |
objet grid |
Domaine rectangulaire régulier. Le serveur retourne chaque point dans les limites avec le step
spatial indiqué. Peut être utilisé avec coordinates.
|
Oui - au moins coordinates ou grid doit être fourni |
variables |
array de variable |
Liste des paramètres météorologiques à récupérer. | Oui |
expressions |
array de expression |
Colonnes calculées côté serveur à partir des variables demandées. Chaque entrée est retournée dans sa propre colonne avec l’alias fourni. Voir la documentation | Non |
filter |
objet filter |
Filtre booléen appliqué après l’évaluation de toutes les expressions.
Doit contenir un seul champ expression de type string.
Les lignes pour lesquelles l’expression vaut false sont omises
de la réponse.
|
Non |
members |
array d’integer |
Pour les modèles d’ensemble (gefsatmos, ifsenfo, ifswaef …), ce champ
sélectionne les membres d’ensemble à inclure dans la réponse.Exemple : "members": [2,3,4].Par défaut, [0] est utilisé et seul le membre 0, la prévision de contrôle, est retourné.
|
Non (modèles d’ensemble uniquement) |
NOTE : l’heure sélectionnée doit être indiquée par la plage (fromTime, untilTime) ou timesList
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
lat |
float |
Latitude de la coordonnée. | Oui |
lon |
float |
Longitude de la coordonnée. | Oui |
name |
string |
Nom optionnel de la coordonnée, retourné dans la réponse pour identifier l’emplacement. | Non |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
minLatitude |
number | Bord sud (°N) | Oui |
maxLatitude |
number | Bord nord (°N) | Oui |
minLongitude |
number | Bord ouest (°E) | Oui |
maxLongitude |
number | Bord est (°E) | Oui |
step |
number | Résolution en degrés décimaux | Oui |
Les champs name, level et info forment le sélecteur exact de la variable météorologique. Copiez ces valeurs depuis le catalogue ou la page du modèle ; ce sont des identifiants d’API, pas des libellés à traduire.
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
name |
string |
Code exact du paramètre météorologique dans le catalogue (par ex. "TMP" pour la température). Ne le traduisez pas. |
Oui |
level |
string |
Niveau atmosphérique ou de surface exact du catalogue (par ex. "2 m above ground"). |
Oui |
info |
string |
Différenciateur exact lorsque le modèle a plusieurs paramètres avec les mêmes name et level. Laissez-le vide uniquement si la valeur du catalogue est vide. |
Non |
alias |
string |
Alias optionnel de la variable. S’il est fourni, cet alias est utilisé comme header de colonne dans la réponse. | Non |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
expression |
string |
Crée des colonnes calculées. Toutes les variables sélectionnées sont accessibles par leur alias. Voir la documentation |
Oui |
alias |
string |
Nom de colonne utilisé dans la réponse pour ce résultat calculé. | Oui |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
expression |
string |
Expression booléenne dans le même DSL que
expressions. Elle peut référencer des alias définis plus haut
dans le body de requête.
|
Oui |
POST https://gribstream.com/api/v2/hrrr/timeseries
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Bearer <token>
Payload:
{
"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" }
]
}
Le format de réponse est déterminé par le header HTTP Accept. L’API prend en charge trois formats de réponse :
Accept: text/csv - la réponse est un fichier CSV contenant les données de prévision.Accept: application/json - la réponse est un tableau JSON unique d’objets.Accept: application/ndjson - la réponse est du JSON délimité par lignes, avec un objet JSON par ligne.Si le header HTTP Accept-Encoding: gzip est inclus, la réponse sera compressée avec gzip.
NOTE : la réponse n’est pas strictement ordonnée.
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}
Champs de la réponse :
| Champ | Description |
|---|---|
forecasted_at |
Heure d’exécution du modèle : moment où la prévision a été générée ou émise. |
forecasted_time |
Heure de validité : heure à laquelle la prévision s’applique. |
lat |
Latitude de la coordonnée. |
lon |
Longitude de la coordonnée. |
name |
Nom fourni dans la requête pour le jeu de coordonnées. |
uwindvwindwind_directionwind_magnitude
|
Une colonne par variable ou expression dérivée. Par défaut, les variables utilisent [name]|[level]|[info]. |
"2022-08-10T00:00:00Z").minLeadTime/maxLeadTime (recommandé) ou les paramètres obsolètes minHorizon/maxHorizon (heures) pour limiter les Lead Times.coordinates et/ou grid) et une variable.asOf est un horodatage de coupure pour les requêtes rétrospectives. L’API ne prend en compte que les exécutions du modèle générées à asOf ou avant, afin que les backtests et simulations n’utilisent pas par accident des prévisions émises plus tard. S’il n’est pas fourni, les dernières données de prévision
disponibles sont utilisées.Vous devez inclure un token d’authentification valide dans le header HTTP Authorization. Pour obtenir un token,
Incluez le token dans les headers HTTP de la requête comme suit :
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
Cette commande récupère les données de prévision et affiche les 20 premières lignes de la réponse décompressée.
En cas d’erreur dans la requête, l’API retourne un message d’erreur avec un code de statut HTTP approprié.
| Code de statut | Signification | Description |
|---|---|---|
| 400 Bad Request | Paramètres de requête invalides. | Se produit lorsque des paramètres obligatoires sont manquants ou invalides. |
| 401 Unauthorized | Échec de l’authentification. | Se produit lorsque le token d’authentification est manquant ou invalide. |
| 429 Too Many Requests | Quota dépassé. | Se produit lorsque le quota est épuisé. La réponse inclut un header HTTP Retry-After avec le temps d’attente avant de réessayer. |
| 500 Internal Server Error | Erreur serveur. | Se produit lors d’une erreur de traitement côté serveur. |
Récupère toutes les exécutions de modèle sur une plage temporelle, pour une liste de coordonnées et de paramètres météorologiques. Vous pouvez aussi limiter les résultats à une fenêtre précise de Lead Time.
POST https://gribstream.com/api/v2/<model>/runs
Renommé Auparavant /forecasts. L’ancien chemin fonctionne toujours.
| Header | Valeur | Commentaire |
|---|---|---|
Content-Type |
application/json |
Valeur par défaut et seule valeur valide. |
Accept |
Choisissez-en un :text/csvapplication/jsonapplication/ndjson
|
Sélectionne le format de réponse. Par défaut : text/csv |
Accept-Encoding |
gzip |
Optionnel et recommandé pour une réponse compressée |
Authorization |
Bearer <token> |
Remplacez <token> par votre token d’authentification |
Le body de requête doit être un objet JSON avec la structure suivante :
| Paramètre | Type | Description | Obligatoire |
|---|---|---|---|
forecastedFrom |
string (ISO 8601) |
Première heure d’exécution du modèle. | Oui, soit (forecastedFrom, forecastedUntil), soit timesList |
forecastedUntil |
string (ISO 8601) |
Dernière heure d’exécution du modèle. | Oui, soit (forecastedFrom, forecastedUntil), soit timesList |
timesList |
array de string (ISO 8601) |
Liste explicite d’heures d’exécution du modèle ; chaque valeur correspond à forecasted_at. |
Oui, soit (forecastedFrom, forecastedUntil), soit timesList |
minLeadTime |
string (duration) |
Lead Time minimal (inclus). Chaîne de durée comme "45m" ou "18h". Prioritaire sur minHorizon/maxHorizon. |
Non |
maxLeadTime |
string (duration) |
Lead Time maximal (inclus). Chaîne de durée comme "45m" ou "18h". Prioritaire sur minHorizon/maxHorizon. |
Non |
minHorizon |
integer |
Obsolète (utilisez minLeadTime). Lead Time minimal en heures (inclus). |
Non |
maxHorizon |
integer |
Obsolète (utilisez maxLeadTime). Lead Time maximal en heures (inclus). |
Non |
coordinates |
array de coordinate |
Liste de coordonnées géographiques. | Oui - au moins coordinates ou grid doit être fourni |
grid |
objet grid |
Domaine rectangulaire régulier. Le serveur retourne chaque point dans les limites avec le step
spatial indiqué. Peut être utilisé avec coordinates.
|
Oui - au moins coordinates ou grid doit être fourni |
variables |
array de variable |
Liste des paramètres météorologiques à récupérer. | Oui |
expressions |
array de expression |
Colonnes calculées côté serveur à partir des variables demandées. Chaque entrée est retournée dans sa propre colonne avec l’alias fourni. Voir la documentation | Non |
filter |
objet filter |
Filtre booléen appliqué après l’évaluation de toutes les expressions.
Doit contenir un seul champ expression de type string.
Les lignes pour lesquelles l’expression vaut false sont omises
de la réponse.
|
Non |
members |
array d’integer |
Pour les modèles d’ensemble (gefsatmos, ifsenfo, ifswaef …), ce champ
sélectionne les membres d’ensemble à inclure dans la réponse.Exemple : "members": [2,3,4].Par défaut, [0] est utilisé et seul le membre 0, la prévision de contrôle, est retourné.
|
Non (modèles d’ensemble uniquement) |
NOTE : l’heure sélectionnée doit être indiquée par la plage (forecastedFrom, forecastedUntil) ou timesList
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
lat |
float |
Latitude de la coordonnée. | Oui |
lon |
float |
Longitude de la coordonnée. | Oui |
name |
string |
Nom optionnel de la coordonnée, retourné dans la réponse pour identifier l’emplacement. | Non |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
minLatitude |
number | Bord sud (°N) | Oui |
maxLatitude |
number | Bord nord (°N) | Oui |
minLongitude |
number | Bord ouest (°E) | Oui |
maxLongitude |
number | Bord est (°E) | Oui |
step |
number | Résolution en degrés décimaux | Oui |
Les champs name, level et info forment le sélecteur exact de la variable météorologique. Copiez ces valeurs depuis le catalogue ou la page du modèle ; ce sont des identifiants d’API, pas des libellés à traduire.
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
name |
string |
Code exact du paramètre météorologique dans le catalogue (par ex. "TMP" pour la température). Ne le traduisez pas. |
Oui |
level |
string |
Niveau atmosphérique ou de surface exact du catalogue (par ex. "2 m above ground"). |
Oui |
info |
string |
Différenciateur exact lorsque le modèle a plusieurs paramètres avec les mêmes name et level. Laissez-le vide uniquement si la valeur du catalogue est vide. |
Non |
alias |
string |
Alias optionnel de la variable. S’il est fourni, cet alias est utilisé comme header de colonne dans la réponse. | Non |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
expression |
string |
Crée des colonnes calculées. Toutes les variables sélectionnées sont accessibles par leur alias. Voir la documentation |
Oui |
alias |
string |
Nom de colonne utilisé dans la réponse pour ce résultat calculé. | Oui |
| Champ | Type | Description | Obligatoire |
|---|---|---|---|
expression |
string |
Expression booléenne dans le même DSL que
expressions. Elle peut référencer des alias définis plus haut
dans le body de requête.
|
Oui |
POST https://gribstream.com/api/v2/hrrr/runs
Content-Type: application/json
Accept-Encoding: gzip
Authorization: Bearer <token>
Payload:
{
"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" }
]
}
Le format de réponse est déterminé par le header HTTP Accept. L’API prend en charge trois formats de réponse :
Accept: text/csv - la réponse est un fichier CSV contenant les données de prévision.Accept: application/json - la réponse est un tableau JSON unique d’objets.Accept: application/ndjson - la réponse est du JSON délimité par lignes, avec un objet JSON par ligne.Si le header HTTP Accept-Encoding: gzip est inclus, la réponse sera compressée avec gzip.
NOTE : la réponse n’est pas strictement ordonnée.
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}
...
Champs de la réponse :
| Champ | Description |
|---|---|
forecasted_at |
Heure d’exécution du modèle : moment où la prévision a été générée ou émise. |
forecasted_time |
Heure de validité : heure à laquelle la prévision s’applique. |
lat |
Latitude de la coordonnée. |
lon |
Longitude de la coordonnée. |
name |
Nom fourni dans la requête pour le jeu de coordonnées. |
uwindvwindwind_directionwind_magnitude
|
Une colonne par variable ou expression dérivée. Par défaut, les variables utilisent [name]|[level]|[info]. |
"2022-08-10T00:00:00Z").minLeadTime/maxLeadTime (recommandé) ou les paramètres obsolètes minHorizon/maxHorizon (heures) pour limiter les Lead Times.coordinates et/ou grid) et une variable.Vous devez inclure un token d’authentification valide dans le header HTTP Authorization. Pour obtenir un token,
Incluez le token dans les headers HTTP de la requête comme suit :
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
Cette commande récupère les données de prévision et affiche les 20 premières lignes de la réponse décompressée.
En cas d’erreur dans la requête, l’API retourne un message d’erreur avec un code de statut HTTP approprié.
| Code de statut | Signification | Description |
|---|---|---|
| 400 Bad Request | Paramètres de requête invalides. | Se produit lorsque des paramètres obligatoires sont manquants ou invalides. |
| 401 Unauthorized | Échec de l’authentification. | Se produit lorsque le token d’authentification est manquant ou invalide. |
| 429 Too Many Requests | Quota dépassé. | Se produit lorsque le quota est épuisé. La réponse inclut un header HTTP Retry-After avec le temps d’attente avant de réessayer. |
| 500 Internal Server Error | Erreur serveur. | Se produit lors d’une erreur de traitement côté serveur. |
Pour toute question ou besoin d’aide, contactez notre assistance à info@gribstream.com.