我正在尝试在 pyephem(_n = 1.0
每天转数)中创建一个地球静止轨道。我想通过将观察者直接放置在卫星下方并验证 alt='90.0' 和 az=0 来验证它是否是地球静止的。对于我的测试,我将观察者置于赤道 100 度 W 经度处。这是我的代码:
import ephem
sat = ephem.EarthSatellite()
sat._n = 1.0
sat._e = 0.0
sat._inc = 0.0
sat._raan = '-100.0'
sat._ap = 0.0
sat._M = 0.0
obs = ephem.Observer()
obs.lat = 0.0
obs.lon = '-100.0'
obs.date = '2014/10/16 00:00:00'
sat.compute(obs)
print "obs position: lat=%s lon=%s date=%s" % \
(obs.lat, obs.lon, obs.date)
print "sat orbit: n=%s e=%s inc=%s raan=%s ap=%s M=%s" % \
(sat._n, sat._e, sat._inc, sat._raan, sat._ap, sat._M)
print "sat position: alt=%s az=%s ra=%s dec=%s sublat=%s sublong=%s" % \
(sat.alt, sat.az, sat.ra, sat.dec, sat.sublat.norm, sat.sublong.norm)
和输出:
> obs position: lat=0:00:00.0 lon=-100:00:00.0 date=2014/10/16 00:00:00
> sat orbit: n=1.0 e=0.0 inc=0:00:00.0 raan=-1:44:43.2 ap=0:00:00.0 M=0:00:00.0
> sat position: alt=-90:00:00.0 az=0:00:00.0 ra=6:57:44.67 dec=0:00:00.0 sublat=1389660529:33:00.8 sublong=335:33:55.8
我发现改变观察者经度不会改变输出。我希望sat._raan
设置卫星的头顶位置(sat.sublong
),但这对输出也没有影响。我一直得到 alt=-90:00:00.0 az=0:00:00.0。(朝向地球中心)和 sublat,sublong 没有任何意义。
更新
奇怪的,不变的输出的原因sublat=1389660529:33:00.8
是由于sat._epoch
默认情况下是'1899/12/31 12:00:00',以及这个问题。设置sat._epoch = obs.date
可以解决这个问题,但我仍然不确定如何实现定义天空位置固定在所选地球坐标上方的地球静止轨道的目标。