ML-Schätzung der Flugzeit
Flugzeit von Gate zu Gate zwischen zwei beliebigen Flughäfen, vorhergesagt von einem GradientBoosting-Modell, das auf historischen Betriebsdaten trainiert wurde (R² ≈ 0,98). Die Blockzeit ist die planmäßige Dauer von Gate zu Gate — gleichbedeutend mit Gate-to-Gate — einschließlich des Rollens an beiden Enden.
Verwenden Sie diesen Endpoint, wenn Sie Blockzeitschätzungen für die Flugplanung, Umsteigepuffer oder Dashboards zum Verspätungsrisiko benötigen, ohne eigene statistische Routentabellen pflegen zu müssen.
Geben Sie Start- und Zielflughafen als ICAO- oder IATA-Code an. Übergeben Sie optional einen ICAO-Flugzeugtypcode (B738, A320, B77W) für eine genauere Schätzung; fehlt er, verwendet das Modell typische Reiseflugparameter von Jets für das Städtepaar. Die API liefert einen Punktschätzwert, Min-/Max-Grenzen und eine lesbare Angabe der Dauer.
Wichtig: Wind und aktuelles Wetter auf der Strecke (En-Route) fließen nicht in das Modell ein — das Ergebnis ist ein statistischer Durchschnitt für die Route und die Flugzeugkategorie, keine Vorhersage für eine bestimmte Abflugzeit.
Anfrage
Voraussetzungen
x-api-key bei jeder Anfrage (Direktabonnement). Mehr erfahren →https://data.skylinkapi.com/v3.1/ml/flight-time| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
from | string | Ja | - | ICAO- oder IATA-Code des Startflughafens (3–4 Zeichen), z. B. KSFO, SFO |
to | string | Ja | - | ICAO- oder IATA-Code des Zielflughafens, z. B. KJFK, JFK |
aircraft | string | Nein | Modellstandard | ICAO-Flugzeugtypcode, z. B. B738, A320, C172 |
Antwort
{
"origin": "KSFO",
"destination": "KJFK",
"aircraft_type": "B738",
"distance_nm": 2241.75,
"estimated_minutes": 294,
"estimated_hours_display": "4h 54m",
"min_minutes": 259,
"max_minutes": 329,
"model_version": "2.0.0-wind"
}Vorhersageobjekt
| Feld | Typ | Erforderlich | Null? | Beschreibung |
|---|---|---|---|---|
origin | string | Ja | Nie | Aufgelöster ICAO-Code des Startflughafens |
destination | string | Ja | Nie | Aufgelöster ICAO-Code des Zielflughafens |
aircraft_type | string | null | Nein | Ja | Für die Vorhersage verwendeter Flugzeugtyp oder null, wenn weggelassen |
distance_nm | number | Ja | Nie | Großkreisentfernung in nautischen Meilen |
estimated_minutes | integer | Ja | Nie | Schätzung von Gate zu Gate in Minuten (einschließlich durchschnittlicher Rollzeit an beiden Enden) |
estimated_hours_display | string | Ja | Nie | Lesbare Dauer, z. B. "4h 54m" |
min_minutes | integer | Ja | Nie | Untergrenze des Schätzbereichs |
max_minutes | integer | Ja | Nie | Obergrenze des Schätzbereichs |
model_version | string | Ja | Nie | Versionsstring des Modellartefakts |
Wichtig: Verwenden Sie estimated_minutes für Berechnungen und estimated_hours_display für Beschriftungen, die Passagiere sehen. Zeigen Sie min_minutes–max_minutes als Bereich an, wenn Sie Unsicherheitsbänder benötigen (Umsteigeplanung, SLA-Puffer).
Client-Typen
"""ML flight time response models for /ml/flight-time."""from __future__ import annotationsfrom dataclasses import dataclass@dataclassclass FlightTimeRequest: """Query input for GET /ml/flight-time.""" from_airport: str to_airport: str aircraft: str | None = None@dataclassclass FlightTimePrediction: origin: str destination: str aircraft_type: str | None distance_nm: float estimated_minutes: int estimated_hours_display: str min_minutes: int max_minutes: int model_version: strIntegration
Routenplaner speichern ML-Flugzeitergebnisse in der Regel pro Städtepaar im Cache, da sich das zugrunde liegende Modell selten ändert. Das folgende Beispiel ruft eine Vorhersage ab, bildet sie auf ein kompaktes View-Model ab (block_minutes, display, range) und verwendet explizite Connect-/Read-Timeouts, damit ein langsamer Inferenzaufruf Ihren Worker nicht blockieren kann.
import osfrom dataclasses import dataclassimport requestsBASE = "https://data.skylinkapi.com/v3.1"HEADERS = { "x-api-key": os.getenv("SKYLINK_API_KEY", "YOUR_API_KEY")}@dataclassclass FlightTimeEstimate: origin: str destination: str block_minutes: int display: str min_minutes: int max_minutes: int distance_nm: floatdef fetch_flight_time(*, origin: str, destination: str, aircraft: str | None = None) -> dict: """Fetch ML gate-to-gate flight time between two airports.""" params: dict[str, str] = {"from": origin.upper(), "to": destination.upper()} if aircraft: params["aircraft"] = aircraft.upper() r = requests.get(f"{BASE}/ml/flight-time", headers=HEADERS, params=params, timeout=(10, 20)) r.raise_for_status() return r.json()def flight_time_estimate(origin: str, destination: str, aircraft: str | None = None) -> FlightTimeEstimate: data = fetch_flight_time(origin=origin, destination=destination, aircraft=aircraft) return FlightTimeEstimate( origin=data["origin"], destination=data["destination"], block_minutes=int(data["estimated_minutes"]), display=data["estimated_hours_display"], min_minutes=int(data["min_minutes"]), max_minutes=int(data["max_minutes"]), distance_nm=float(data["distance_nm"]), )if __name__ == "__main__": import json from dataclasses import asdict estimate = flight_time_estimate("KJFK", "KLAX", aircraft="B738") print(json.dumps(asdict(estimate), indent=2))Hinweise zur Implementierung
Flugzeugtyp. Schmalrumpfcodes (B738, A320) gegenüber Großraumcodes (B77W, A359) verändern die Blockzeit auf Langstrecken erheblich — übergeben Sie aircraft, wenn Ihre Flugplanzeile das Fluggerät bereits kennt.
Grenzen vs. Punktschätzwert. min_minutes und max_minutes umschließen die typische betriebliche Streuung. Behandeln Sie sie nicht als harte betriebliche Grenzwerte.
Wichtig: Ist das ML-Modell vorübergehend nicht verfügbar, greift SkyLink möglicherweise auf eine Berechnung aus Entfernung und Geschwindigkeit zurück. Prüfen Sie model_version, wenn Sie Vorhersagen für ESG- oder Flugplanungs-Workflows auditieren.
Fehlerantworten
Plattformweite Fehler (Authentifizierung, Rate Limits, Validierungsstrukturen) finden Sie unter Fehlerbehandlung. Endpoint-spezifisches Verhalten:
422 — ungültiger Flughafencode
Wird zurückgegeben, wenn from oder to keinem bekannten Flughafen zugeordnet werden kann oder die Query-Parameter die Validierung nicht bestehen.
Your SkyLink licence key, for keys bought direct from skylinkapi.com.
In: header
Query Parameters
Origin airport ICAO or IATA code
3 <= length <= 4Destination airport ICAO or IATA code
3 <= length <= 4Aircraft type code (e.g. B738, A320, C172)
length <= 4Response Body
application/json
application/json
curl -X GET "https://data.skylinkapi.com/v3.1/ml/flight-time?from=stri&to=stri"{
"origin": "string",
"destination": "string",
"aircraft_type": "string",
"distance_nm": 0,
"estimated_minutes": 0,
"estimated_hours_display": "string",
"min_minutes": 0,
"max_minutes": 0,
"model_version": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}