滑走路の向かい風・追い風・横風成分計算
滑走路風成分計算機は、報告された風を航空機の滑走路方位に平行な成分と直角な成分に分解します。風速、風が吹いてくる方向、滑走路方位を、同じ北基準で入力してください。向かい風または追い風の強さ、横風の強さ、さらに横風が左右どちらから来るかを表示します。計算練習の確認や飛行計画システムに役立ちますが、承認済み資料や有資格乗員による運航判断に代わるものではありません。
無料で実行
方向は同じ基準で入力してください
まず通報された風速と風向を入力し、使用する滑走路の方位を指定します。航空気象の風向は、空気が向かう先ではなく、風が吹いてくる方角を表します。そのため、風向240度で滑走路方位270度の場合、風は機体の左前方から来ます。風向と滑走路方位には、磁方位同士または真方位同士という同じ基準を使用してください。真方位の予報と磁方位の滑走路を混在させると、地域の偏角だけ結果がずれます。0と360はいずれも北として扱えます。滑走路番号は10度単位に丸められているため、精度が必要な場合は公示された実方位をご使用ください。速度単位を選ぶと、すべての成分が変換されず同じ単位で返されます。
向かい風・追い風・横風を読み取ります
計算機は風向から滑走路方位を引き、その差をマイナス180度から180度までの最短の符号付き角度に正規化します。余弦で滑走路に沿う成分を、正弦で横切る成分を求めます。縦方向の値が正なら向かい風、負なら絶対値を追い風として表示し、両方が同時に正になることはありません。横風は比較しやすい非負の強さに加え、符号付きの値も示します。正の符号は右から、負の符号は左からの風です。ゼロに極めて近い計算誤差は「なし」と判定します。値は自動処理や比較を安定させるため、小数点以下6桁に丸められます。
安全な運航計画の中でご利用ください
出力は数学的な分解結果であり、出発可否の判断や飛行規程の代替ではありません。公示資料では実証横風値と厳守すべき制限が区別される場合があり、滑走路状態によって値が変わったり、追い風に別の制限が設けられたりします。突風も重要で、必要に応じて別の風速として計算できます。入力が検討中の滑走路と時間帯に対応しているかご確認ください。本機能は地形、建物、ウインドシア、変動、制動、操縦資格、管制指示をモデル化しません。訓練では再現可能な検算に、ソフトウェアでは決定論的な出力に利用できます。API リクエストは $0.002、ブラウザー計算はローカルで実行可能です。行動前には必ず最新の承認資料、手順、正式な気象情報と照合してください。
活用例
飛行前の滑走路比較
同じ風を複数の滑走路方位に当てはめ、縦方向と横方向の成分変化を比較できます。
操縦訓練の計算問題
手計算を確認し、左からの横風と右からの横風を明確に区別できます。
再現可能な計画ソフトウェア
通信、乱数、時刻依存の出力を使わず、同じ入力から同じ計算結果を得られます。
よくある質問
風向は風が来る方向ですか、向かう方向ですか?
航空気象の慣例どおり、風が吹いてくる方角を示します。
符号付き横風が正の場合は何を表しますか?
航空機の右側から来る風を表します。負の値は左側からの風です。
方位の代わりに滑走路番号を入力できますか?
度数の方位を入力してください。滑走路番号は丸められており、精密計算に必要な公示方位とは異なる場合があります。
ノット、mph、メートル毎秒を使えますか?
はい。kt、mph、m/s、km/h から選択でき、すべての成分を選んだ単位で返します。
API 計算の料金はいくらですか?
API は1リクエスト $0.002 です。このページのブラウザー版は無料でご利用いただけます。
離着陸が安全かどうかを判定しますか?
いいえ。風を数学的に分解するだけです。承認資料、手順、気象情報、資格を持つ担当者の運航判断をご確認ください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/travel/runway-wind-components \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wind_speed":20,"wind_direction":240,"runway_heading":270}'const res = await fetch("https://api.kit.forhosting.com/travel/runway-wind-components", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wind_speed": 20,
"wind_direction": 240,
"runway_heading": 270
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/runway-wind-components",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wind_speed": 20,
"wind_direction": 240,
"runway_heading": 270
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/runway-wind-components", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wind_speed":20,"wind_direction":240,"runway_heading":270}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wind_speed":20,"wind_direction":240,"runway_heading":270}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/runway-wind-components", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"wind_speed": 20,
"wind_direction": 240,
"runway_heading": 270
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.runway_wind_components",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |