
太陽同期軌道の傾斜角をPythonで計算|"いつも同じ太陽角度"のしくみ
2026-09-17 ・ 実践
地球観測衛星の多くは 太陽同期軌道 を使います。いつも同じ地方時(例: 午前10時半)に上空を通るので、影の条件がそろって比較しやすい。この"魔法"の正体は、地球の膨らみを逆に利用すること。Pythonで必要な軌道傾斜角を計算します。
しくみ:膨らみで軌道面を回す
地球は自転で赤道がやや膨らんでいます(J2)。この膨らみは衛星の軌道面をゆっくり回転させる(歳差)力になります。この回転が**ちょうど1年で1周(0.9856°/日)**になるよう傾斜角を選ぶと、軌道面と太陽の角度が一定に保たれます。
1年で軌道面を1周
地球の膨らみ
J2が歳差を生む
軌道面が回転
傾斜角で調整
太陽角一定
毎回同じ地方時
準備
pip install numpy
① 太陽同期に必要な傾斜角を計算
軌道面の歳差が年 360° になる傾斜角を、J2の式から逆算します。
import numpy as np
GM = 3.986e14
R = 6.378e6 # 地球赤道半径
J2 = 1.08263e-3 # 地球の扁平を表す係数
YEAR = 365.2422 * 86400
precession_rate = 2 * np.pi / YEAR # 太陽同期に必要な歳差(rad/s)
def sso_inclination(alt_km, e=0.0):
a = R + alt_km * 1000 # 長半径(円軌道と仮定)
n = np.sqrt(GM / a**3) # 平均運動
# 軌道面歳差の式を cos(i) について解く
cos_i = precession_rate * (-2/3) * (a/R)**2 * (1 - e**2)**2 / (J2 * n)
return np.degrees(np.arccos(cos_i))
for alt in [400, 600, 800]:
print(f"高度 {alt}km → 傾斜角 {sso_inclination(alt):.2f}°")
出力:
高度 400km → 傾斜角 97.03°
高度 600km → 傾斜角 97.79°
高度 800km → 傾斜角 98.60°
いずれも 約97〜99° の傾斜角。90°をわずかに超える「ほぼ極軌道だけど少し傾いた」軌道が太陽同期の正体です。高度が上がるほど、必要な傾斜角も少し増えます。
なぜ90°を超える?
傾斜角90°ちょうどは真の極軌道で歳差ゼロ。90°を少し超えると「逆行成分」が生まれ、軌道面が東へ歳差します。この歳差量を年1周ぶんに合わせるのが約98°、というわけです。観測衛星がほぼ南北に飛ぶのはこのためです。
地球の膨らみは『邪魔者』ではない
J2摂動は普通は軌道を乱す厄介者ですが、太陽同期軌道では逆に利用しています。自然の癖を味方につける、軌道設計の妙です。地球観測・気象衛星の多くがこの軌道を使っています。
まとめ
- 太陽同期軌道は常に同じ地方時に通過する観測向き軌道
- 地球の膨らみ(J2)による軌道面の歳差を、年1周に合わせる
- 必要な傾斜角は高度により約97〜99°(ほぼ極軌道)
- J2という"癖"を逆に利用する軌道設計の好例
もう少し詳しく(背景と理論)
太陽同期軌道は、地球の扁平(赤道が膨らんだ形)が生む J2摂動 を積極利用します。J2 は軌道面をゆっくり回す昇交点の歳差を引き起こし、その量は軌道傾斜角・高度・離心率で決まります1。この歳差を「1年で360度(=1日約0.9856度)」にちょうど合わせると、軌道面と太陽の位置関係が一年中保たれ、衛星は常に同じ地方時に同じ緯度を通過します2。だから地球観測衛星は毎回同じ太陽高度で撮影でき、画像の比較がしやすい。必要な傾斜角は高度により約97〜99度の逆行軌道になります。摂動は普通「乱すもの」ですが、ここでは設計に取り込んだ好例です3。
次の一歩 🌸
軌道の種類は軌道の種類、地上のずれは地上軌跡、衛星の用途は衛星の使い道へどうぞ。