太陽高度角計算
太陽高度角は、観測者の天文地平線より太陽がどれだけ上または下に見えるかを表す角度で、太陽高度とも呼ばれます。この計算機では、地理緯度、太陽赤緯、時角という3つの角度に、球面天文学の標準式を適用します。各値を十進度で入力すると、高度の度数とラジアン、補角となる太陽天頂角、計算に使った正弦値が得られます。正の結果は理想地平線より上、0は幾何学的地平線、負の結果は太陽中心が地平線より下にあることを示します。位置情報、日時サービス、大気モデル、ネットワークは使用せず、同じ入力には常に同じ結果を返します。
無料で実行
太陽高度の式が表す仕組み
太陽高度は、天の極、天頂、太陽で構成される天文三角形から求められます。この計算機が評価する式は、sin 高度 = sin 緯度 × sin 赤緯 + cos 緯度 × cos 赤緯 × cos 時角です。緯度は観測者が赤道の北側または南側のどこにいるかを示します。太陽赤緯は太陽が天の赤道の北側または南側のどこにあるかを表し、季節に応じて至点付近の限界の間を変化します。時角は太陽と地方子午線との角距離であり、地方太陽正午では0、その前は負、その後は正です。式全体の逆正弦を取ると、マイナス90度からプラス90度までの高度が得られます。この結果は、理想的な天文地平線から太陽円盤の中心まで測る幾何学的な太陽高度でもあります。90度からこの値を引いた補角が太陽天頂角です。極や天頂などの厳密な限界配置では、浮動小数点の丸めにより正弦値が逆正弦の有効範囲をわずかに外れる場合があります。そのため実装では、逆関数を適用する前に計算済みの正弦をマイナス1から1までの閉区間に安全に収めます。この数値保護は通常の結果を変えず、数学的に正しい配置が丸め誤差によって無効値になることだけを防ぎます。
3つの入力値の選び方と読み方
緯度はマイナス90度からプラス90度までの十進度で入力してください。赤道より北の地点には正、南の地点には負の値を使います。太陽赤緯も同じ符号規則で入力します。赤緯は天文座標であり、太陽の方位角や磁気偏角ではありません。暦表や日付に基づく別の太陽位置計算からまだ得ていない場合は、この計算機を使う前に用意する必要があります。最後に、時角をマイナス180度からプラス180度までで入力してください。0は地方子午線通過、一般に地方太陽正午と呼ばれる瞬間です。負の値は正午前、正の値は正午後を示します。余弦は対称なので、緯度と赤緯が一定なら、午前と午後の絶対値が等しい時角は同じ幾何学的高度になります。主な答えは solar_elevation_angle_degrees です。sun_altitude_degrees は天文学で一般的な名称を使って同じ値を示し、solar_elevation_angle_radians はラジアンを使うソフトウェアや式に適しています。solar_zenith_angle_degrees は地平線から上向きではなく、天頂から下向きに測ります。正の高度は太陽中心が幾何学的地平線より上、0は地平線上、負は地平線より下にあることを表します。これらは理想的な幾何学値であり、大気差、地形、建物、太陽円盤の見かけの半径は含みません。
精度、計算範囲、実務での利用
通常の浮動小数点精度の範囲では、指定した球面座標に対する計算は正確です。ただし、答えの有用性は入力品質と必要な物理的解釈に左右されます。緯度は観測地点を表し、赤緯と時角は同じ瞬間と同じ天文規約に基づく必要があります。時角が不正確であれば太陽は日周運動の弧に沿って直接ずれ、概算の赤緯は季節的な位置誤差を生みます。この計算機は、暦日、時計時刻、経度、時間帯、均時差補正から赤緯や時角を導出しません。また、返す値は見かけの高度ではなく幾何学的高度です。地平線付近では、大気差によって観測される太陽がかなりの角度だけ持ち上がることがあり、実際の補正量は気圧、気温、大気構造に依存します。日の出や日の入りの定義では太陽中心ではなく上縁を用いる場合もあるため、0度という結果がそのまま公式の日出没時刻になるわけではありません。工学用途では、必要に応じて方位角、大気差、地平線形状、面の向きの補正を後段で加えることで、太陽光パネルの入射角、日影、昼光の予備計算や教材図に利用できます。APIで成功した各計算には公開基本料金 $0.002 が適用され、ブラウザーでは同じ純粋なアルゴリズムをネットワークなしで実行できます。
活用例
太陽幾何の確認
既知の緯度、赤緯、時角から、太陽の幾何学的高度を計算します。
再生可能エネルギーモデル
入射角、日影、昼光の予備計算に、検証可能な太陽高度を渡します。
天文学の学習
緯度、季節による赤緯、太陽正午からの時間差が日周経路をどう変えるかを示します。
よくある質問
太陽高度角と太陽高度は同じ意味ですか?
はい。この計算機では、どちらも理想的な天文地平線から太陽中心までの符号付き角度を意味します。
入力にはどの単位を使いますか?
緯度、太陽赤緯、時角を十進度で入力してください。結果の高度は度数とラジアンの両方で返します。
地方太陽正午に対応する時角はいくつですか?
0度です。負の時角は地方太陽正午より前、正の時角はその後を表します。
高度0度は観測上の日の出や日の入りですか?
必ずしもそうではありません。この式は太陽中心の幾何学的高度を返し、大気差、太陽半径、地域の地平線形状を含みません。
日付から太陽赤緯を求めますか?
いいえ。入力された太陽赤緯を使用します。日付と場所から始める場合は、暦表または一貫した太陽位置法で赤緯と時角を求めてください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/trig/solar-elevation-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"latitude":40,"solar_declination":20,"hour_angle":30}'const res = await fetch("https://api.kit.forhosting.com/trig/solar-elevation-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"latitude": 40,
"solar_declination": 20,
"hour_angle": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/solar-elevation-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"latitude": 40,
"solar_declination": 20,
"hour_angle": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/solar-elevation-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"latitude":40,"solar_declination":20,"hour_angle":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"latitude":40,"solar_declination":20,"hour_angle":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/solar-elevation-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"latitude": 40,
"solar_declination": 20,
"hour_angle": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.solar_elevation_angle",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |