GribStream

Dokumentation der Wettervorhersage-API

Diese API bietet Zugriff auf Wettervorhersagedaten für alle Modelle. Sie können historische und aktuelle Vorhersagedaten über Zeitraum, Koordinaten und gewünschte Variablen abrufen.

Sie können unseren Python-Client auf GitHub verwenden oder mit den Details unten eine eigene Integration bauen.

Wenn Sie GribStream mit einem KI-Tool integrieren, starten Sie mit GribStream für KI-Tools.

Timeseries-Endpoint

Für eine Koordinate, einen Wetterparameter und einen Zeitraum sind mehrere Vorhersagewerte verfügbar. Jeder Wert entspricht einer anderen Lead Time, also dem Abstand zwischen Modelllauf und gültiger Zeit.

Die API gibt für jeden Zeitpunkt den Vorhersagewert mit der kürzesten gültigen Lead Time zurück. Damit erhalten Sie den neuesten Modelllauf, der nach den Request-Filtern zulässig ist, normalerweise die nützlichste Vorhersage. In Datenanalyse-Workflows wird dies oft als Serie der besten zulässigen Vorhersage oder als Nowcast bezeichnet.

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

Umbenannt Früher /history. Der alte Pfad funktioniert weiterhin.

Verfügbare Modelle

Request-Header

Header Wert Kommentar
Content-Type application/json Standardwert und einziger gültiger Wert.
Accept Einen auswählen:
text/csv
application/json
application/ndjson
Wählt das Response-Format. Standard ist text/csv
Accept-Encoding gzip Optional und empfohlen für eine komprimierte Response
Authorization Bearer <token> Ersetzen Sie <token> durch Ihren Authentifizierungs-Token

Request-Body-Parameter

Der Request-Body muss ein JSON-Objekt mit folgender Struktur sein:

Parameter Typ Beschreibung Erforderlich
fromTime string (ISO 8601) Startzeit des Vorhersagezeitraums. Ja, entweder (fromTime, untilTime) oder timesList
untilTime string (ISO 8601) Endzeit des Vorhersagezeitraums. Ja, entweder (fromTime, untilTime) oder timesList
timesList array von string (ISO 8601) Explizite Liste gültiger Zeiten, die zurückgegeben werden sollen; jeder Wert entspricht forecasted_time. Ja, entweder (fromTime, untilTime) oder timesList
asOf? string (ISO 8601) Cutoff nach Modelllaufzeit: Es werden nur Modellläufe berücksichtigt, die zu diesem Zeitpunkt oder davor generiert wurden. Nein
minLeadTime string (duration) Minimale Lead Time (inklusive). Duration-String wie "45m" oder "18h". Hat Vorrang vor minHorizon/maxHorizon. Nein
maxLeadTime string (duration) Maximale Lead Time (inklusive). Duration-String wie "45m" oder "18h". Hat Vorrang vor minHorizon/maxHorizon. Nein
minHorizon integer Veraltet (verwenden Sie minLeadTime). Minimale Lead Time in Stunden (inklusive). Nein
maxHorizon integer Veraltet (verwenden Sie maxLeadTime). Maximale Lead Time in Stunden (inklusive). Nein
coordinates array von coordinate Liste geografischer Koordinaten. Optional, wenn grid angegeben ist; beide können gesendet werden. Ja - mindestens coordinates oder grid muss angegeben werden
grid grid-Objekt Regulärer rechteckiger Bereich.
Der Server gibt jeden Punkt innerhalb der Grenzen mit dem angegebenen räumlichen step zurück. Kann zusammen mit coordinates verwendet werden.
Ja - mindestens coordinates oder grid muss angegeben werden
variables array von variable Liste der abzurufenden Wetterparameter. Ja
expressions array von expression Von GribStream berechnete Spalten aus den angeforderten Variablen. Jeder Eintrag wird als eigene Spalte mit dem angegebenen Alias zurückgegeben. Siehe Dokumentation Nein
filter filter-Objekt Boolescher Filter, der angewendet wird, nachdem alle expressions ausgewertet wurden. Muss ein einzelnes Feld expression vom Typ string enthalten. Zeilen, für die die Expression false ergibt, werden aus der Response weggelassen. Nein
members array von integer Für Ensemble-Modelle (gefsatmos, ifsenfo, ifswaef …) werden damit die Ensemble-Mitglieder ausgewählt, die in die Response aufgenommen werden.
Beispiel: "members": [2,3,4].
Standardmäßig wird [0] verwendet und nur Ensemble-Mitglied 0, also die Kontrollvorhersage, zurückgegeben.
Nein (nur Ensemble-Modelle)

HINWEIS: Die ausgewählte Zeit muss über den Bereich (fromTime, untilTime) oder timesList angegeben werden

Koordinatenobjekt

Feld Typ Beschreibung Erforderlich
lat float Breitengrad der Koordinate. Ja
lon float Längengrad der Koordinate. Ja
name string Optionaler Name der Koordinate, der in der Response zurückgegeben wird, um den Ort zu identifizieren. Nein

Grid-Objekt

Feld Typ Beschreibung Erforderlich
minLatitude number Südliche Grenze (°N) Ja
maxLatitude number Nördliche Grenze (°N) Ja
minLongitude number Westliche Grenze (°E) Ja
maxLongitude number Östliche Grenze (°E) Ja
step number Auflösung in Dezimalgrad Ja

Variablenobjekt

Die Felder name, level und info bilden den exakten Selektor der Wettervariable. Kopieren Sie diese Werte aus dem Katalog oder von der Modellseite; es sind API-Identifier, keine zu übersetzenden Labels.

Feld Typ Beschreibung Erforderlich
name string Exakter Wetterparametercode aus dem Katalog (z. B. "TMP" für Temperatur). Nicht übersetzen. Ja
level string Exaktes Atmosphären- oder Oberflächenniveau aus dem Katalog (z. B. "2 m above ground"). Ja
info string Exaktes Unterscheidungsmerkmal, wenn das Modell mehrere Parameter mit demselben name und level hat. Nur leer lassen, wenn der Katalogwert leer ist. Nein
alias string Optionaler Alias für die Variable. Falls angegeben, wird dieser Alias als Spaltenheader in der Response verwendet. Nein

Expression-Objekt

Feld Typ Beschreibung Erforderlich
expression string Erstellt berechnete Spalten. Alle ausgewählten Variablen sind über ihren Alias adressierbar.
Siehe Dokumentation
Ja
alias string Spaltenname in der Response für dieses berechnete Ergebnis. Ja

Filterobjekt

Feld Typ Beschreibung Erforderlich
expression string Boolesche Expression in derselben DSL wie expressions. Sie kann zuvor definierte Aliase im Request-Body referenzieren. Ja

Beispiel-Request

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" }
    ]
}

Beispiel-Response

Das Response-Format wird durch den Header Accept bestimmt. Die API unterstützt drei Response-Formate:

Wenn der Header Accept-Encoding: gzip enthalten ist, wird die Response mit gzip komprimiert.

HINWEIS: Die Response ist nicht strikt sortiert.

CSV-Response-Beispiel

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-Response-Beispiel (JSON-Array)

[{"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-Response-Beispiel (zeilengetrennt)

{"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}

Response-Felder:

Feld Beschreibung
forecasted_at Modelllaufzeit: wann die Vorhersage generiert oder ausgegeben wurde.
forecasted_time Gültige Zeit: der Zeitpunkt, für den die Vorhersage gilt.
lat Breitengrad der Koordinate.
lon Längengrad der Koordinate.
name Im Request angegebener Name für den Koordinatensatz.
uwind
vwind
wind_direction
wind_magnitude
Eine Spalte pro Variable oder abgeleiteter Expression. Variablen verwenden standardmäßig [name]|[level]|[info].

Nutzungshinweise

Authentifizierung

Sie müssen einen gültigen Authentifizierungs-Token im Header Authorization angeben. Um einen Token zu erhalten,

Fügen Sie den Token wie folgt in die Request-Header ein:

Authorization: Bearer <token>

Beispiel-cURL-Befehl

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

Dieser Befehl ruft die Vorhersagedaten ab und gibt die ersten 20 Zeilen der dekomprimierten Response aus.

Fehlerbehandlung

Wenn der Request fehlerhaft ist, gibt die API eine Fehlermeldung mit passendem HTTP-Statuscode zurück.

Häufige Fehlercodes

Statuscode Bedeutung Beschreibung
400 Bad Request Ungültige Request-Parameter. Tritt auf, wenn erforderliche Parameter fehlen oder ungültige Werte haben.
401 Unauthorized Authentifizierung fehlgeschlagen. Tritt auf, wenn der Authentifizierungs-Token fehlt oder ungültig ist.
429 Too Many Requests Kontingent überschritten. Tritt auf, wenn das Kontingent aufgebraucht ist. Die Response enthält einen Header Retry-After mit der Wartezeit vor dem nächsten Versuch.
500 Internal Server Error Serverfehler. Tritt auf, wenn beim Verarbeiten des Requests ein Serverfehler auftritt.

Runs-Endpoint

Ruft alle Modellläufe in einem Zeitraum für eine Liste von Koordinaten und Wetterparametern ab. Optional kann nach einem Lead-Time-Bereich gefiltert werden.

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

Umbenannt Früher /forecasts. Der alte Pfad funktioniert weiterhin.

Verfügbare Modelle

Request-Header

Header Wert Kommentar
Content-Type application/json Standardwert und einziger gültiger Wert.
Accept Einen auswählen:
text/csv
application/json
application/ndjson
Wählt das Response-Format. Standard ist text/csv
Accept-Encoding gzip Optional und empfohlen für eine komprimierte Response
Authorization Bearer <token> Ersetzen Sie <token> durch Ihren Authentifizierungs-Token

Request-Body-Parameter

Der Request-Body muss ein JSON-Objekt mit folgender Struktur sein:

Parameter Typ Beschreibung Erforderlich
forecastedFrom string (ISO 8601) Früheste Modelllaufzeit. Ja, entweder (forecastedFrom, forecastedUntil) oder timesList
forecastedUntil string (ISO 8601) Späteste Modelllaufzeit. Ja, entweder (forecastedFrom, forecastedUntil) oder timesList
timesList array von string (ISO 8601) Explizite Liste von Modelllaufzeiten; jeder Wert entspricht forecasted_at. Ja, entweder (forecastedFrom, forecastedUntil) oder timesList
minLeadTime string (duration) Minimale Lead Time (inklusive). Duration-String wie "45m" oder "18h". Hat Vorrang vor minHorizon/maxHorizon. Nein
maxLeadTime string (duration) Maximale Lead Time (inklusive). Duration-String wie "45m" oder "18h". Hat Vorrang vor minHorizon/maxHorizon. Nein
minHorizon integer Veraltet (verwenden Sie minLeadTime). Minimale Lead Time in Stunden (inklusive). Nein
maxHorizon integer Veraltet (verwenden Sie maxLeadTime). Maximale Lead Time in Stunden (inklusive). Nein
coordinates array von coordinate Liste geografischer Koordinaten. Ja - mindestens coordinates oder grid muss angegeben werden
grid grid-Objekt Regulärer rechteckiger Bereich.
Der Server gibt jeden Punkt innerhalb der Grenzen mit dem angegebenen räumlichen step zurück. Kann zusammen mit coordinates verwendet werden.
Ja - mindestens coordinates oder grid muss angegeben werden
variables array von variable Liste der abzurufenden Wetterparameter. Ja
expressions array von expression Serverseitig berechnete Spalten aus den angeforderten Variablen. Jeder Eintrag wird als eigene Spalte mit dem angegebenen Alias zurückgegeben. Siehe Dokumentation Nein
filter filter-Objekt Boolescher Filter, der angewendet wird, nachdem alle expressions ausgewertet wurden. Muss ein einzelnes Feld expression vom Typ string enthalten. Zeilen, für die die Expression false ergibt, werden aus der Response weggelassen. Nein
members array von integer Für Ensemble-Modelle (gefsatmos, ifsenfo, ifswaef …) werden damit die Ensemble-Mitglieder ausgewählt, die in die Response aufgenommen werden.
Beispiel: "members": [2,3,4].
Standardmäßig wird [0] verwendet und nur Ensemble-Mitglied 0, also die Kontrollvorhersage, zurückgegeben.
Nein (nur Ensemble-Modelle)

HINWEIS: Die ausgewählte Zeit muss über den Bereich (forecastedFrom, forecastedUntil) oder timesList angegeben werden

Koordinatenobjekt

Feld Typ Beschreibung Erforderlich
lat float Breitengrad der Koordinate. Ja
lon float Längengrad der Koordinate. Ja
name string Optionaler Name der Koordinate, der in der Response zurückgegeben wird, um den Ort zu identifizieren. Nein

Grid-Objekt

Feld Typ Beschreibung Erforderlich
minLatitude number Südliche Grenze (°N) Ja
maxLatitude number Nördliche Grenze (°N) Ja
minLongitude number Westliche Grenze (°E) Ja
maxLongitude number Östliche Grenze (°E) Ja
step number Auflösung in Dezimalgrad Ja

Variablenobjekt

Die Felder name, level und info bilden den exakten Selektor der Wettervariable. Kopieren Sie diese Werte aus dem Katalog oder von der Modellseite; es sind API-Identifier, keine zu übersetzenden Labels.

Feld Typ Beschreibung Erforderlich
name string Exakter Wetterparametercode aus dem Katalog (z. B. "TMP" für Temperatur). Nicht übersetzen. Ja
level string Exaktes Atmosphären- oder Oberflächenniveau aus dem Katalog (z. B. "2 m above ground"). Ja
info string Exaktes Unterscheidungsmerkmal, wenn das Modell mehrere Parameter mit demselben name und level hat. Nur leer lassen, wenn der Katalogwert leer ist. Nein
alias string Optionaler Alias für die Variable. Falls angegeben, wird dieser Alias als Spaltenheader in der Response verwendet. Nein

Expression-Objekt

Feld Typ Beschreibung Erforderlich
expression string Erstellt berechnete Spalten. Alle ausgewählten Variablen sind über ihren Alias adressierbar.
Siehe Dokumentation
Ja
alias string Spaltenname in der Response für dieses berechnete Ergebnis. Ja

Filterobjekt

Feld Typ Beschreibung Erforderlich
expression string Boolesche Expression in derselben DSL wie expressions. Sie kann zuvor definierte Aliase im Request-Body referenzieren. Ja

Beispiel-Request

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" }
    ]
}

Beispiel-Response

Das Response-Format wird durch den Header Accept bestimmt. Die API unterstützt drei Response-Formate:

Wenn der Header Accept-Encoding: gzip enthalten ist, wird die Response mit gzip komprimiert.

HINWEIS: Die Response ist nicht strikt sortiert.

CSV-Response-Beispiel

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-Response-Beispiel (JSON-Array)

[{"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-Response-Beispiel (zeilengetrennt)

{"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}
...

Response-Felder:

Feld Beschreibung
forecasted_at Modelllaufzeit: wann die Vorhersage generiert oder ausgegeben wurde.
forecasted_time Gültige Zeit: der Zeitpunkt, für den die Vorhersage gilt.
lat Breitengrad der Koordinate.
lon Längengrad der Koordinate.
name Im Request angegebener Name für den Koordinatensatz.
uwind
vwind
wind_direction
wind_magnitude
Eine Spalte pro Variable oder abgeleiteter Expression. Variablen verwenden standardmäßig [name]|[level]|[info].

Nutzungshinweise

Authentifizierung

Sie müssen einen gültigen Authentifizierungs-Token im Header Authorization angeben. Um einen Token zu erhalten,

Fügen Sie den Token wie folgt in die Request-Header ein:

Authorization: Bearer <token>

Beispiel-cURL-Befehl

  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

Dieser Befehl ruft die Vorhersagedaten ab und gibt die ersten 20 Zeilen der dekomprimierten Response aus.

Fehlerbehandlung

Wenn der Request fehlerhaft ist, gibt die API eine Fehlermeldung mit passendem HTTP-Statuscode zurück.

Häufige Fehlercodes

Statuscode Bedeutung Beschreibung
400 Bad Request Ungültige Request-Parameter. Tritt auf, wenn erforderliche Parameter fehlen oder ungültige Werte haben.
401 Unauthorized Authentifizierung fehlgeschlagen. Tritt auf, wenn der Authentifizierungs-Token fehlt oder ungültig ist.
429 Too Many Requests Kontingent überschritten. Tritt auf, wenn das Kontingent aufgebraucht ist. Die Response enthält einen Header Retry-After mit der Wartezeit vor dem nächsten Versuch.
500 Internal Server Error Serverfehler. Tritt auf, wenn beim Verarbeiten des Requests ein Serverfehler auftritt.

Kontaktinformationen

Bei Fragen oder Unterstützungsbedarf kontaktieren Sie unser Support-Team unter info@gribstream.com.