赤道座標から方位角を求める計算ツール
この計算ツールは、赤道座標から方位角を求めます。天体の赤緯と地方時角を、指定した緯度にいる観測者から見た水平方向へ変換し、天文球面三角形を直接用いて計算します。結果は真北を起点として時計回りに測った度数です。時角は西向きを正とし、東は 90 度、南は 180 度、西は 270 度になります。望遠鏡の向きの計画、観測準備、座標変換の確認、赤道座標系と地平座標系の学習などにご利用いただけます。
無料で実行
規約に従って 3 つの角度を入力します
天体の赤緯、地方時角、観測者の緯度を十進度で入力してください。赤緯は天体が天の赤道から北または南へどれだけ離れているかを表し、-90 度から +90 度までに限られます。緯度は観測者が地球の赤道から北または南へどれだけ離れているかを示し、同じ範囲を使用します。地方時角は、天体が地方子午線に対してどれだけ回転したかを表します。このツールでは西向きが正です。一般に、すでに子午線を通過した天体は正の時角を持ち、これから子午線へ昇る天体は負の時角を持ちます。正弦と余弦によって自然に正規化されるため、時角には 360 度を超える値も入力できます。資料の時角が時間単位の場合は、24 時間が 360 度に相当するため、入力前に 15 を掛けてください。結果は航法で一般的な規約に従い、真北を 0 度として東、南、西の順に時計回りで増加します。
球面三角形による計算を理解します
赤道座標と地平座標は、異なる基準系を使って同じ方向を表します。変換では、天の極、天頂、天体を頂点とする球面三角形を扱います。天の極の近くで数値的に不安定になりやすい正接の式ではなく、このツールは天体の水平面への射影を東成分と北成分に分解します。東成分は、赤緯の余弦と時角の正弦を掛けて符号を反転した値です。北成分は、赤緯、緯度、時角の余弦を組み合わせて求めます。2 引数の逆正接を使うことで、正しい象限が維持されます。通常の 1 引数の逆正接では、180 度離れた方向を区別できないため、この処理が重要です。得られた角度は 0 度以上 360 度未満の範囲へ正規化し、安定した精度で丸めます。天体が天頂または天底に正確に位置すると、水平面への射影には方向がありません。その場合、方位角は物理的に定義できないため、任意の方角を返さず入力エラーを通知します。
計算された方位角を読み取り確認します
出力は真北を基準とするコンパス方位としてお読みください。0 度に近い値は北、90 度は東、180 度は南、270 度は西を示します。これは指定された瞬間の幾何学的な方向であり、見かけの位置や架台制御を完全に求めるものではありません。赤緯と地方時角は、目的の時刻および基準系に合わせて準備済みであることを前提とします。赤経と恒星時から時角を導出する処理、歳差や章動の補正、地平線付近の大気差、極運動、真北から磁北への変換は含まれません。精密観測ではこれらの影響が重要になる場合があるため、より大きな処理手順の適切な段階で適用してください。確認には子午線通過の例が便利です。時角が 0 のとき、天頂または天底と一致しない限り、天体は真北か真南にあります。自動処理での API リクエスト 1 回の料金は $0.002 で、同じ数値入力からは常に同じ結果が得られます。
活用例
望遠鏡の指向方向を計画する
準備済みの赤道座標と地方時角を、観測計画に必要な方位角へ変換できます。
座標変換ソフトウェアを検証する
決定論的な結果を、天文アプリケーションや架台制御処理のテスト用基準値として利用できます。
天文球面三角形を学習する
赤緯、時角、観測者の緯度から地平線上の方向が決まる仕組みを説明できます。
よくある質問
方位角はどの方向を基準に測りますか?
真北から時計回りに測ります。東は 90 度、南は 180 度、西は 270 度です。
時角の符号はどの規約ですか?
西向きを正とします。この規約では、負の値は天体が地方子午線の東側にあることを示します。
時角を時間単位で入力できますか?
先に時間へ 15 を掛けて度へ変換してください。hour_angle_deg は常に十進度を受け取ります。
方位角が定義できない場合があるのはなぜですか?
天頂または天底に正確に位置すると一意の水平方向が存在せず、どの方位角も幾何学的に曖昧になるためです。
大気差は計算に含まれますか?
含まれません。球面座標の幾何学的変換であり、大気差、歳差、章動、極運動はモデル化しません。
API での計算料金はいくらですか?
API の各リクエスト料金は $0.002 です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/astro/azimuth-equatorial \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}'const res = await fetch("https://api.kit.forhosting.com/astro/azimuth-equatorial", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/azimuth-equatorial",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/azimuth-equatorial", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"declination_deg":20,"hour_angle_deg":45,"latitude_deg":52}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/azimuth-equatorial", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"declination_deg": 20,
"hour_angle_deg": 45,
"latitude_deg": 52
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.azimuth_equatorial",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |