惑星の季節別太陽赤緯範囲計算ツール
この計算ツールは、惑星の自転軸傾斜角から、理想化した1年の間に太陽直下点が到達する北限と南限を求めます。傾斜角を10進度で入力すると、太陽赤緯の最小値を負の傾斜角、最大値を正の傾斜角として返します。計算は決定論的で、0度から90度までを受け付けます。範囲外の値は拒否するため、不正な惑星形状からもっともらしい季節結果が生成されることはありません。
無料で実行
惑星の自転軸傾斜角を度で入力します
自転軸傾斜角(黄道傾斜角)を、0以上の10進度で入力してください。許容範囲は0度から90度です。傾斜が0度なら、理想化した1年を通じて太陽直下点は赤道上にあります。角度が大きいほど、直下点は南北へ遠く移動します。符号は計算側で両端に付けるため、通常の正の大きさを入力してください。逆行自転する天体では、資料が極の向きを90度より大きい角度で示す場合があります。その場合は、対応する鋭角の季節的な傾斜角へ変換してから使用します。入力値と比較値はいずれも10進度にそろえてください。桁数を増やしても、元の傾斜角が同程度の精度でなければ意味はありません。負数、90度超、欠損値、無限大、数値以外は、丸めたり推測したりせずエラーになります。
傾斜角から赤緯の限界が決まる仕組み
太陽赤緯とは、現地正午に恒星が天頂に来る緯度、または惑星の赤道面から見た恒星の南北方向の角度です。理想化した幾何では、惑星が公転する間も自転軸の向きは一定です。そのため見かけの太陽赤緯は、自転軸傾斜角の負の値から正の値まで変化します。このツールは南端を負、北端を正として返します。地球に近い23.4393度なら、範囲は-23.4393度から+23.4393度です。全幅は傾斜角の2倍ですが、端点のほうが南北の規約を直接表せます。0度ではJSONに負のゼロを出さず、両方とも通常のゼロになります。90度では理想上の限界が両極に達します。公転周期は1年の長さを変えるだけで、この角度限界には不要です。
理想化した季節範囲を正しく解釈します
出力は幾何学的な上下限であり、季節の暦や特定日の赤緯ではありません。単純なモデルでは、各極値が至点、ゼロの通過が分点に当たります。傾斜角が1年間一定で、赤緯を惑星の赤道基準で測ることを前提とします。至点の公転経度、各季節の長さ、日照時間、太陽高度、気温、気候は計算しません。軌道離心率は季節の長さや強さを不均等にしますが、この単純な関係の正負の限界は変えません。歳差、章動、長期的な傾斜角変化は別途モデル化してください。教材図の確認、シミュレーションの制約、惑星間比較に利用できます。観測用途では、採用する極の規約と元期が、モデル内の他のデータと一致するか確認してください。
活用例
季節シミュレーションの境界設定
負と正の赤緯限界を、理想化した年間太陽直下緯度モデルの制約に使用します。
惑星ごとの季節比較
各惑星の傾斜角を、比較可能な太陽赤緯の北限と南限へ変換します。
天文学教材や図の確認
至点と太陽直下緯度の表示が、モデルの自転軸傾斜角と一致するか検証します。
よくある質問
APIリクエストの料金はいくらですか?
APIリクエスト1回は$0.002です。同じ決定論的計算をブラウザーでも実行できます。
最小赤緯が負になるのはなぜですか?
慣例により、赤道より北の太陽赤緯を正、南を負で表すためです。
軌道離心率でこの範囲は変わりますか?
この理想化計算では変わりません。離心率は公転速度と受熱量に影響しますが、端点は傾斜角の正負です。
逆行自転の惑星で90度超を入力できますか?
できません。極の向きを0度から90度までの等価な季節的傾斜角へ変換してください。
特定日の赤緯を計算できますか?
できません。年間の最小値と最大値のみです。日付別計算には公転位置と季節位相の規約も必要です。
自転軸傾斜角が0度ならどうなりますか?
理想化した太陽直下点が1年中赤道上にあるため、両方の限界がゼロになります。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/astro/planet-axial-tilt-season \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"axial_tilt_deg":23.4393}'const res = await fetch("https://api.kit.forhosting.com/astro/planet-axial-tilt-season", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"axial_tilt_deg": 23.4393
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/planet-axial-tilt-season",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"axial_tilt_deg": 23.4393
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/planet-axial-tilt-season", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"axial_tilt_deg":23.4393}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"axial_tilt_deg":23.4393}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/planet-axial-tilt-season", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"axial_tilt_deg": 23.4393
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.planet_axial_tilt_season",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |