高度からエアマスを計算
地平線から30度の高さにある天体のエアマスは2で、天頂にあるときの2倍の大気を光が通ります。高度を度で入力すれば、天頂角とエアマスが分かります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 高度 (度)
- 30
- 天頂角 (度)
- 60
- 大気質量
- 2
この計算ツールは、地平線から見た天体の角高度を相対的な大気エアマスへ変換します。最初に天頂角を求め、標準的な平面平行大気のセカント近似を適用します。結果は、天頂にある光源と比べて視線がどれだけ長く大気中を通るかを示します。0より大きく90以下の高度を度単位で入力してください。計算は決定論的ですぐに完了し、観測計画、露出の比較、学習用途に利用できます。
大気エアマスが表すもの
大気エアマスは、光が地球の大気中を進む距離を、天頂方向の最短経路と比較した無次元の尺度です。真上にある天体は高度が90度で、エアマスは1です。天体の高度が低くなるほど、光は斜めに長い空気の柱を通るため、エアマスは増加します。
経路が長いほど、一般に減光、散乱、大気吸収、像の劣化が強くなるので、この値は重要です。この計算ツールへ入力するのは天文地平線からの高度であり、海抜高度や赤緯ではありません。それぞれ異なる問いに用いる量です。
正の高度は天体が地平線より上にあることを示し、0は地平線上を示します。セカントの関係は地平線で特異点となり、地平線下の天体を表せないため、0以下の値は意図的に拒否します。結果は、天頂での観測を基準とした相対的な幾何学的経路の推定値としてご利用ください。
セカント計算の仕組み
次に X = sec(z) を計算します。度単位で入力された角度は、三角関数を評価する前にラジアンへ変換します。たとえば高度30度では正弦が2分の1なので、エアマスは2です。
90度では正弦が1で、エアマスも1になります。返されるオブジェクトには、検証済みの高度、対応する天頂角、計算したエアマスが含まれるため、各段階を確認または保存できます。入力は90度以下の有限数でなければなりません。
テキストフォームで扱いやすいよう数値文字列も受け付けますが、曖昧な値、欠損値、無限値、数値でない値は拒否します。
この近似が適している場面
セカントモデルでは、大気を平らな平面平行層として扱います。地平線から十分に離れた天体には便利で直感的であり、観測計画の概算や、低い天体ほど大気の影響を強く受ける理由の説明に役立ちます。しかし地平線付近では、地球の曲率、大気差、観測者の標高、気圧、気温、空気の鉛直分布が次第に重要になります。
理想的なセカント式はそこで際限なく増加しますが、実際の光路は異なる挙動を示します。精密測光や非常に低い高度には、改良された経験式または球面大気モデルを使用し、そのモデルに必要な環境データを指定してください。このツールは、文書化されていない補正で前提を隠すことなく、指定された直接のセカント結果を返します。
そのため、教科書、表計算、観測記録との比較を再現できます。ブラウザーでもネットワークを使わず、同じ決定論的ロジックを実行できます。
活用例
観測順序を計画する
大気中の幾何学的な光路長で天体を比較し、より高い位置に来る天体を優先できます。
相対的な大気減光を見積もる
大気が天体をどの程度暗くするか評価する際、別の減光モデルへの入力としてエアマスを利用できます。
高度と天頂角の幾何学を教える
高度、天頂角、セカント近似の関係を、再現可能な数値で説明できます。
よくある質問
どの式を使用しますか?
X = sec(z) = 1 / sin(h) を使用します。zは天頂角、hは地平線からの高度です。
天頂でのエアマスはいくつですか?
高度が90度の場合、天頂角は0で、計算されるエアマスは1です。
高度が0以下だと拒否されるのはなぜですか?
高度0ではセカント近似が特異点となり、負の高度は天体が地平線下にあることを示すためです。
地平線付近でも正確ですか?
いいえ。 平面平行大気のセカント近似は地平線付近で非現実的になるため、より高度な大気モデルが適しています。
観測者の標高は結果に影響しますか?
この簡略計算には影響しません。角高度だけを使用し、標高、気圧、気温、大気差はモデル化していません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/astro/airmass-from-altitude \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"altitude_degrees":30}'const res = await fetch("https://api.kit.forhosting.com/astro/airmass-from-altitude", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"altitude_degrees": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/astro/airmass-from-altitude",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"altitude_degrees": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/astro/airmass-from-altitude", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"altitude_degrees":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"altitude_degrees":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/astro/airmass-from-altitude", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"altitude_degrees": 30
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "astro.airmass_from_altitude",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
セカント計算の仕組み
まず、高度hを z = 90 degrees - h によって天頂角zへ変換します。これは X = 1 / sin(h) と同じです。繰り返し実行しても安定したJSONになり、この近似に十分な精度も保てるよう、出力するエアマスだけを小数点以下12桁に丸めます。
この近似が適している場面
自動処理では1回のリクエストにつき1つの高度を送り、APIの基本料金を$0.002として扱ってください。
技術的な質問
APIリクエストの料金はいくらですか?
基本料金は1回のリクエストにつき$0.002です。