ベクトルから対地針路を計算
東へ12ノットで進み、3ノットの潮流が南へ流れていると、対地針路は104.036243°、対地速度は12.369317ノットです。2つの速度は同じ単位で、方向は真方位で入力します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 船首方向の速度
- 12
- 進行方向 (度)
- 90
- 環境の速度
- 3
- 環境の方向 (度)
- 180
- 速度の単位
- Knots
- 対地速度
- 12.369317
- 対地速度 (ノット)
- 12.369317
- 東向き速度
- 12
- 北向き速度
- -3
この対地針路計算ツールは、船首方位の速度ベクトルに潮流または風の速度ベクトルを加え、地面に対する合成された動きを求めます。2つの速度は同じ単位で、2つの方向は真北から時計回りに測る真方位でご入力ください。結果には対地針路、対地速度、東向き・北向きの速度成分、ノットに換算した速度が含まれます。計算過程が明快で、同じ入力からは常に同じ結果が得られるため、航法の演習、乗り物の動きの見積もり、平面上の2つの速度ベクトルを合成するあらゆる問題にご利用いただけます。
2つの速度ベクトルを同じ基準で入力してください
まず、対象の船首方位に対応する速度を入力します。2つ目のベクトルは、水の流れ、動いている空気、あるいは基準となる媒体のその他の一様な動きを表せます。方向の項目はどちらも航海で使う方位で、0度が北、90度が東、180度が南、270度が西です。
周囲の媒体の方向には、ベクトルが向かっていく方向を入力する必要があります。これは風のデータで特に重要です。気象情報では一般に風が吹いてくる方向が示されるため、その値に180度を足し、0〜360度の範囲に収めてから使ってください。
ノットとキロメートル毎時を混ぜると、数値としては計算できても物理的には意味のない合計になるため、元の値を先に換算してください。方位も同じ真北基準でそろえ、真方位と磁方位を混在させないでください。360度は北を表す別の書き方として受け付けます。
COGとSOGの計算方法
計算では、入力した各速度を東向き成分と北向き成分に分解します。航海用の方位では、東向き成分は速度に方位の正弦を掛けた値、北向き成分は速度に方位の余弦を掛けた値です。対応する成分どうしを足し合わせ、地面に対する速度ベクトルを作ります。
その大きさをユークリッドの斜辺として求めたものが対地速度です。その向きを2引数の逆正接で求め、0〜360度の範囲に正規化したものが対地針路です。東向き・北向きの値が正ならその方向への動き、負なら西または南への動きを表します。
2つのベクトルがちょうど打ち消し合う場合、速度は0となり、静止した合成ベクトルには定まった方向がないため、針路の項目は返されません。
現実的な限界を踏まえて結果をご利用ください
対地針路は合成された動きの方向として扱い、そのまま操舵の指示とは考えないでください。この計算ツールが答えるのは、順方向のベクトル加算の問いです。つまり、この2つの速度が与えられたとき、対象は地面に対してどの方向へどれだけの速さで動くのか、という問いです。
望む航跡を得るための船首方位を選ぶという逆問題は解きません。また、このモデルは対象とする時間のあいだ、2つのベクトルが一定であると仮定しています。実際の潮流は潮汐、水深、河川の流量、場所によって変わり、風は高度、地形、突風、時間によって変わります。
船舶や航空機には、風による横流れ、空力的な影響、波、操縦の変化が生じることがあり、これらは入力した1つの船首方位ベクトルでは表されません。計画を立てる際は、長いルートを区間に分けて各地点に合った値を入力し、条件が変わるたびに再計算してください。
実際の航行では、見積もりを最新の海図や航空図、予報、計器、位置の実測、適用される専門的な手順と照らし合わせてください。この決定論的な結果は、すべての値が入力した2つのベクトルから直接導かれ、成分の値から個別に検証できるため、教育、シナリオの比較、短い時間の見積もりに特に役立ちます。
活用例
船の対地航跡を見積もる
船の対水での船首方位速度に潮流のベクトルを加え、航路の1区間のCOGとSOGを見積もります。
動きに対する風の影響を調べる
乗り物の対気速度と、風が吹いていく方向に向いたベクトルを入力し、合成された東向き・北向きの動きを確認します。
航海のベクトル合成を教える
方位がどのように成分になり、その成分から合成された速さと方向がどう生まれるかを示します。
よくある質問
方向は北から測りますか、それとも東から測りますか?
方向は真北から時計回りに測る真方位です。北が0度、東が90度になります。
風向は吹いてくる方向と吹いていく方向のどちらで入力しますか?
風の速度が向かっていく方向を入力してください。気象情報で示される「吹いてくる方向」には180度を足し、結果を通常の方位の範囲に収めてください。
対地針路が省略されるのはなぜですか?
大きさが等しく向きが反対のベクトルが打ち消し合うと、対地速度は0になり、静止したベクトルには定まった針路がないためです。
希望する針路に必要な船首方位を計算できますか?
できません。 既知の船首方位ベクトルと周囲のベクトルから合成された対地の動きを求めるもので、必要な船首方位を逆算することはしません。
ノットとキロメートル毎時を混ぜて入力できますか?
できません。2つの速度は選んだ同じ単位でそろえる必要があり、混ぜると数値は出ても意味のない合計になります。先に換算してください。結果はその単位とノットの両方で示されます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/geo/course-over-ground \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"heading_speed":12,"heading_degrees":90,"environment_speed":3,"environment_direction_degrees":180}'const res = await fetch("https://api.kit.forhosting.com/geo/course-over-ground", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"heading_speed": 12,
"heading_degrees": 90,
"environment_speed": 3,
"environment_direction_degrees": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/course-over-ground",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"heading_speed": 12,
"heading_degrees": 90,
"environment_speed": 3,
"environment_direction_degrees": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/course-over-ground", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"heading_speed":12,"heading_degrees":90,"environment_speed":3,"environment_direction_degrees":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"heading_speed":12,"heading_degrees":90,"environment_speed":3,"environment_direction_degrees":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/course-over-ground", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"heading_speed": 12,
"heading_degrees": 90,
"environment_speed": 3,
"environment_direction_degrees": 180
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.course_over_ground",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
2つの速度ベクトルを同じ基準で入力してください
大きさはheading_speedに、真方位での向きはheading_degreesに入れます。次に、周囲の媒体の速度をenvironment_speedとenvironment_direction_degreesで指定します。2つの大きさはどちらも、speed_unitで選んだ単位で入力する必要があります。
COGとSOGの計算方法
応答にはeast_velocityとnorth_velocityも含まれるため、結果を検証したり、成分を別の計算に再利用したりできます。speed_over_groundは選んだ単位のまま返され、speed_over_ground_knotsは海上や航空の業務で扱いやすいノット換算値です。APIでもブラウザーでも安定した結果になるよう、出力は小数点以下6桁に丸めます。
技術的な質問
APIリクエストの料金はいくらですか?
APIリクエストは1回$0.002です。同じ決定論的な計算をブラウザーでも実行できます。
2つの速度を異なる単位で入力できますか?
できません。計算の前に、2つの大きさをspeed_unitで選んだ単位に換算してください。