太陽日の長さ計算
惑星の太陽日とは、ある地点で正午を迎えてから次の正午を迎えるまでの時間であり、遠方の恒星を基準にした1回の自転とは通常一致しません。この計算ツールは恒星自転周期と公転周期を組み合わせ、自転中に惑星が主星の周りを進む分を反映します。両方の周期を同じ単位で入力すると、同じ単位で太陽日の長さが得られます。計算は決定論的ですぐに完了し、惑星や系外惑星の比較、教育用モデル、順行自転する架空の惑星系の設計にご利用いただけます。
無料で実行
太陽日と恒星自転周期が異なる理由
恒星自転周期は、遠くの恒星を基準として惑星が1回転するまでの時間を表します。一方、太陽日は、主星が惑星の空で同じ見かけの位置に戻るまでの時間であり、代表的には連続する2回の地方正午の間隔です。惑星は自転している間にも軌道上を前進します。順行自転の場合、主星が同じ子午線を再び通過するには、惑星の表面が恒星基準の1回転よりもさらに回らなければなりません。この計算ツールは、自転だけをそのまま1日とみなさず、自転と公転の両方を考慮します。自転が速く公転周期が長い惑星では差は小さいものの、2つの周期が近づくほど差は大きくなります。入力値には必ず同じ単位をご使用ください。地球に似た天体には時間、ゆっくり自転する天体には日、非常に長い周期には年が便利です。結果には選択した単位がそのまま使われるため、暗黙の換算で値の尺度が変わることはありません。
2つの周期を組み合わせる計算方法
順行運動では、主星の見かけの角速度は惑星の自転角速度と公転角速度の差になります。角速度を周期の逆数で表すと、太陽日の逆数は、恒星自転周期の逆数と公転周期の逆数との差の絶対値です。この計算ツールでは、それと等価で安定した式を用い、恒星自転周期と公転周期の積を両者の差の絶対値で割ります。絶対値を使うため、周期の数値的な大小関係によって空での主星の見かけの移動方向が逆になる場合でも、時間の長さは正の値で返されます。2つの入力は有限で0より大きい数でなければならず、同じ単位で表す必要があります。一方を時間、もう一方を日で入力すると、物理的な意味のない結果になります。周期が完全に同じ場合は角速度が相殺され、理想化したモデルでは主星が1つの経度の上に静止します。この場合、有限の太陽日は存在しないため、無限大ではなく入力エラーを返します。
結果の読み方とモデルの適用範囲
結果は、運動が一様であると仮定した理想的な系における平均太陽周期の長さとしてお読みください。地球では、24時間よりわずかに短い恒星自転周期と約1年の公転周期を使うと、太陽日はほぼ24時間になります。同期自転に近い天体では、主星が空を非常にゆっくり移動するため、結果は大きくなります。この計算は、恒星自転速度が一定であること、公転の平均角速度が一定であること、正の周期で表される順行運動であることを前提としています。軌道離心率、地軸の傾き、歳差、秤動、大気屈折、自転速度の変化によって生じる視太陽時の季節変動は扱いません。また、正の周期だけから逆行自転を判定することもできません。高精度の暦表や逆行天体には、符号付き角速度と時刻に応じた軌道データが必要です。比較、教育、系外惑星の初期評価、世界設定では、観測表やネットワーク接続を必要とせず自転と公転の基本関係を分離できるため、この平均的な関係が有用な第一歩になります。
活用例
惑星ごとの時間尺度を比較する
公表されている恒星自転周期と公転周期から、比較可能な平均太陽日の長さを求めます。
同期に近い自転を調べる
惑星の自転周期が公転周期に近づくにつれて、見かけの1日がどのように長くなるか確認できます。
架空の惑星系を設計する
整合する自転周期と公転周期を選び、そこに暮らす人々が経験する明暗周期を計算します。
よくある質問
API での計算料金はいくらですか?
API は1リクエストあたり $0.002 です。同じ決定論的な計算をブラウザーで無料実行することもできます。
恒星日と太陽日はどのように違いますか?
恒星日は遠方の恒星に対する1回の自転です。太陽日は、主星が空の同じ見かけの位置に戻るまでの時間です。
なぜ両方の周期に同じ単位が必要ですか?
式では周期の逆数で表した角速度どうしを引きます。同じ単位を使うことで、角速度と計算結果の時間を整合させられます。
同じ周期を入力すると拒否されるのはなぜですか?
順行自転と公転の周期が同じ場合、このモデルでは主星の見かけの角速度が0になり、有限の太陽日が存在しないためです。
逆行自転にも対応していますか?
明示的には対応していません。入力は符号のない正の周期であり、式は順行の会合周期関係の大きさを求めます。逆行系には符号付き角速度が必要です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/astro/solar-day-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sidereal_rotation_period":23.9344696,"orbital_period":8765.8128}'const res = await fetch("https://api.kit.forhosting.com/astro/solar-day-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sidereal_rotation_period": 23.9344696,
"orbital_period": 8765.8128
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/solar-day-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sidereal_rotation_period": 23.9344696,
"orbital_period": 8765.8128
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/solar-day-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sidereal_rotation_period":23.9344696,"orbital_period":8765.8128}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sidereal_rotation_period":23.9344696,"orbital_period":8765.8128}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/solar-day-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"sidereal_rotation_period": 23.9344696,
"orbital_period": 8765.8128
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.solar_day_length",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |