Meilleure piste selon le vent
Ce calculateur compare chaque direction de piste disponible à un même vent observé.
Lancer gratuitement
Pour chaque option, il calcule le vent traversier signé, sa valeur absolue, le vent de face et tout vent arrière, puis fournit un classement clair. La priorité va au plus faible vent traversier absolu ; à égalité, le vent de face le plus fort l’emporte. Saisissez séparément chaque direction utilisable, y compris les extrémités réciproques si nécessaire, dans l’unité de vitesse de votre choix. Toutes les composantes conservent cette unité.
Décrivez le vent et les directions de piste avec cohérence
Saisissez la direction du vent selon la convention météorologique : elle indique sa provenance et se mesure dans le sens horaire depuis le nord vrai. Un vent de 270 degrés vient donc de l’ouest. Pour chaque extrémité de piste, indiquez le cap dans le sens du déplacement, lui aussi référencé au nord vrai. Si les deux extrémités d’une même piste sont disponibles, inscrivez-les comme deux options, car leurs composantes de vent de face ont des signes opposés. Les pistes 09 et 27 sont ainsi deux directions opérationnelles, même si elles partagent le même revêtement. La vitesse peut être exprimée en nœuds, mètres par seconde, miles par heure ou dans toute unité cohérente. Aucune conversion n’est effectuée : les résultats gardent l’unité saisie. Les caps 0 et 360 désignent le nord et sont normalisés à 0. Pour un calcul précis, utilisez le cap déclaré ou mesuré plutôt qu’une simple estimation tirée du numéro de piste.
Comprenez le calcul des composantes et le classement
Pour chaque direction, le calculateur détermine le plus petit angle signé entre le cap de piste et la provenance du vent. Il décompose ensuite la vitesse sur deux axes perpendiculaires par trigonométrie. La composante cosinus est un vent de face lorsqu’elle est positive et un vent arrière lorsqu’elle est négative. La composante sinus est le vent traversier signé ; sa valeur absolue donne son intensité sans préciser le côté. Le classement place d’abord le plus faible vent traversier absolu. En cas d’égalité, la direction ayant le plus fort vent de face précède l’autre, de sorte qu’un vent de face devance un vent arrière équivalent. Une égalité complète conserve l’ordre de saisie et rend le résultat reproductible. L’angle et la composante signée distinguent les côtés opposés, mais leur signe reste une convention mathématique, pas une autorisation opérationnelle. Interprétez toujours les valeurs selon les procédures de l’aéronef et de l’aérodrome.
Employez le résultat comme comparaison, jamais comme clairance
La piste recommandée est seulement la première du classement calculé ; elle ne constitue pas une instruction de décollage ou d’atterrissage. Le choix réel dépend notamment des limites publiées, de la longueur, de l’état et de la pente, des obstacles, du trafic, des approches aux instruments, des restrictions sonores, des fermetures, du freinage, des rafales, de la variabilité et du contrôle aérien. Une composante favorable ne remplace aucun de ces critères. Vérifiez que chaque option saisie est réellement disponible et que le vent et les caps utilisent la même référence nord ; mélanger nord magnétique et nord vrai crée une erreur évitable. Si un bulletin fournit vent moyen et rafales, testez-les séparément, car la procédure applicable peut retenir la valeur la plus contraignante. La liste ordonnée complète facilite planification, instruction, préparation des vols et contrôles rapides. Par API, une comparaison déterministe coûte $0.002 ; le navigateur exécute localement le même calcul.
Cas d’usage
Comparer les extrémités réciproques
Voyez quelle direction transforme une même intensité traversière en vent de face plutôt qu’en vent arrière.
Examiner plusieurs pistes
Classez toutes les directions disponibles avec un bulletin de vent avant d’appliquer les contraintes opérationnelles.
Enseigner les composantes du vent
Montrez comment le cap modifie le vent traversier signé, son intensité, le vent de face et le vent arrière.
Questions fréquentes
Quelle convention de direction est utilisée ?
La direction du vent indique sa provenance ; le cap de piste indique le sens du déplacement. Tous deux sont mesurés dans le sens horaire depuis le nord vrai.
Comment la meilleure piste est-elle choisie ?
Le plus faible vent traversier absolu vient en premier. À égalité, la composante de vent de face la plus élevée l’emporte.
Que signifie une composante de face négative ?
Elle indique un vent arrière. Sa valeur positive figure aussi dans le champ tailwind_component.
Quelle unité de vitesse faut-il employer ?
Toute unité cohérente convient. Les composantes renvoyées gardent l’unité de la vitesse saisie.
Faut-il saisir séparément les extrémités réciproques ?
Oui. Chaque direction utilisable est une option distincte, car les caps opposés inversent face et arrière et changent le signe du vent traversier.
Le résultat impose-t-il la piste à utiliser ?
Non. Il compare uniquement le vent ; disponibilité, limites, conditions, procédures et contrôle aérien restent déterminants.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/travel/best-runway-for-wind \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wind_speed":18,"wind_direction_deg":250,"runways":[{"name":"09","heading_deg":90},{"name":"18","heading_deg":180},{"name":"27","heading_deg":270}]}'const res = await fetch("https://api.kit.forhosting.com/travel/best-runway-for-wind", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wind_speed": 18,
"wind_direction_deg": 250,
"runways": [
{
"name": "09",
"heading_deg": 90
},
{
"name": "18",
"heading_deg": 180
},
{
"name": "27",
"heading_deg": 270
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/best-runway-for-wind",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wind_speed": 18,
"wind_direction_deg": 250,
"runways": [
{
"name": "09",
"heading_deg": 90
},
{
"name": "18",
"heading_deg": 180
},
{
"name": "27",
"heading_deg": 270
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/best-runway-for-wind", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wind_speed":18,"wind_direction_deg":250,"runways":[{"name":"09","heading_deg":90},{"name":"18","heading_deg":180},{"name":"27","heading_deg":270}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wind_speed":18,"wind_direction_deg":250,"runways":[{"name":"09","heading_deg":90},{"name":"18","heading_deg":180},{"name":"27","heading_deg":270}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/best-runway-for-wind", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"wind_speed": 18,
"wind_direction_deg": 250,
"runways": [
{
"name": "09",
"heading_deg": 90
},
{
"name": "18",
"heading_deg": 180
},
{
"name": "27",
"heading_deg": 270
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.best_runway_for_wind",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_runways | 100 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |