Melhor pista para o vento
A calculadora da melhor pista para o vento compara cada direção disponível com um único vento informado.
Executar grátis
Ela calcula vento cruzado com sinal, vento cruzado absoluto, vento de proa e eventual vento de cauda, e então apresenta uma classificação clara. A menor componente cruzada tem prioridade; em caso de empate, vence a maior componente de proa. Informe separadamente cada direção utilizável, inclusive as cabeceiras recíprocas quando necessário, e use a unidade de velocidade de sua preferência. Todas as componentes são devolvidas nessa mesma unidade.
Descreva vento e pistas com a mesma referência
Informe a direção do vento segundo a convenção meteorológica: ela indica de onde o vento vem e é medida no sentido horário a partir do norte verdadeiro. Assim, vento de 270 graus vem do oeste. Informe o rumo de cada cabeceira como a direção de deslocamento, também em relação ao norte verdadeiro. Se as duas cabeceiras de uma pista estiverem disponíveis, cadastre-as separadamente, pois as componentes de proa terão sinais opostos. As pistas 09 e 27, por exemplo, são direções operacionais distintas, embora usem o mesmo pavimento. A velocidade pode estar em nós, metros por segundo, milhas por hora ou outra unidade consistente. A ferramenta não converte unidades: as componentes mantêm a unidade informada. Os rumos 0 e 360 representam o norte e aparecem normalizados como 0. Quando a precisão for importante, prefira o rumo declarado ou levantado ao valor aproximado sugerido pelo designador da pista.
Entenda o cálculo das componentes e a classificação
Para cada direção de pista, a calculadora determina o menor ângulo com sinal entre o rumo e a origem do vento. Em seguida, decompõe a velocidade em dois eixos perpendiculares por trigonometria. A componente do cosseno representa vento de proa quando positiva e vento de cauda quando negativa. A componente do seno é o vento cruzado com sinal; seu valor absoluto expressa a intensidade sem indicar o lado. A ordem prioriza o menor vento cruzado absoluto. Se houver empate, aparece primeiro a direção com maior vento de proa, colocando uma componente de proa antes de uma componente de cauda equivalente. Empates completos preservam a ordem de entrada, tornando o resultado estável. O ângulo e a componente cruzada com sinal ajudam a distinguir lados opostos, mas o sinal é uma convenção matemática, não uma autorização operacional. Interprete os números conforme os procedimentos aplicáveis à aeronave e ao aeródromo.
Use o resultado como comparação, não como autorização
A pista recomendada é apenas a primeira da classificação calculada; não é uma instrução para pousar ou decolar. A seleção real pode depender de limites publicados, comprimento, condição e inclinação da pista, obstáculos, fluxo de tráfego, aproximações por instrumentos, restrições de ruído, interdições, frenagem, rajadas, variabilidade e controle de tráfego aéreo. Uma componente favorável não substitui esses critérios. Confirme que todas as opções informadas estão disponíveis e que vento e rumos usam a mesma referência norte; misturar graus magnéticos e verdadeiros cria erro angular. Se o boletim trouxer vento sustentado e rajadas, avalie-os separadamente, pois o procedimento aplicável pode exigir o valor mais restritivo. A lista completa é útil para planejamento, instrução, despacho e conferências rápidas. Pela API, cada comparação determinística custa US$ 0,002; no navegador, o mesmo cálculo é executado localmente.
Casos de uso
Comparar cabeceiras recíprocas
Veja qual direção transforma a mesma magnitude cruzada em vento de proa, e não de cauda.
Analisar várias pistas
Classifique todas as direções disponíveis com um boletim de vento antes de aplicar restrições operacionais.
Ensinar componentes do vento
Mostre como o rumo altera o vento cruzado com sinal, sua magnitude e as componentes de proa e cauda.
Perguntas frequentes
Qual convenção de direção é usada?
A direção do vento indica de onde ele vem; o rumo da pista indica para onde se segue. Ambos são graus no sentido horário a partir do norte verdadeiro.
Como a melhor pista é escolhida?
A menor componente cruzada absoluta vem primeiro. Em caso de empate, vence a maior componente de vento de proa.
O que significa vento de proa negativo?
Significa uma componente de cauda. A saída também apresenta essa magnitude positiva no campo tailwind_component.
Qual unidade de velocidade devo usar?
Qualquer unidade consistente funciona. Todas as componentes retornadas usam a unidade da velocidade informada.
Devo cadastrar cabeceiras recíprocas separadamente?
Sim. Cada direção utilizável deve ser uma opção, pois rumos opostos invertem proa e cauda e mudam o sinal do vento cruzado.
O resultado determina qual pista devo usar?
Não. Ele só compara componentes; disponibilidade, limites, condições, procedimentos e controle de tráfego aéreo continuam decisivos.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"wind_speed": 18,
"wind_direction_deg": 250,
"runways": [
{
"name": "09",
"heading_deg": 90
},
{
"name": "18",
"heading_deg": 180
},
{
"name": "27",
"heading_deg": 270
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.best_runway_for_wind",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_runways | 100 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |