我正在尝试在pyephem中创建一个地球静止轨道(每天_n = 1.0
转)。我想通过将观察者直接放在卫星下方并验证alt = '90 .0'和az = 0来验证它是地球静止的。对于我的测试,我将观察者放在经度100度的赤道上。这是我的代码:
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'以及此issue 。设置sat._epoch = obs.date
可以解决这个问题,但我仍然不确定如何实现定义天空位置固定在选定地球坐标之上的地球静止轨道的目标。