以下是Pyephem文档中提供的示例:
iss = ephem.readtle("ISS (ZARYA)","1 25544U 98067A 03097.78853147 .00021906 00000-0 28403-3 0 8652","2 25544 51.6361 13.7980 0004256 35.6671 59.2566 15.58778559250029")
gatech = ephem.Observer()
gatech.lon, gatech.lat = '-84.39733', '33.775867'
gatech.date = '2003/3/23'
iss.compute(gatech)
print iss.rise_time, iss.transit_time, iss.set_time
2003/3/23 00:00:44 2003/3/23 00:03:22 2003/3/23 00:06:00
当我运行示例时,我已经获得了完全相同的结果,所以我希望我至少正在做这个部分。我想知道的是卫星在J2000坐标中的天体位置,所以我可以将它与星图进行比较。我尝试了以下代码,答案是可疑的,因为a_ra和ra是相同的。我相信a_ra和ra都是在日期中给出的,而不是a_ra是J2000中的天体测量解决方案。
print iss.a_ra, iss.ra, iss.g_ra
8:50:10.99 8:50:10.99 6:54:40.64
有没有办法将进动/章动应用于地心说ra和decepep?#/ p>
答案 0 :(得分:1)
很棒的问题!在查看了构成PyEphem基础的C代码之后,看起来两者 ra
和a_ra
值已经进入观察者对象的时代(在您的情况下是默认为J2000)。作为参考,这是来自libastro
的{{1}}代码:
earthsat.c
我认为此if (epoch != EOD && mjd != epoch)
precess (mjd, epoch, &ra, &dec);
op->s_ra = ra;
op->s_dec = dec;
和.ra
值已经已经。让这个代码站起来可能是我的遗漏;很可能我真正应该做的,但当时没有看到,是将这些赋值语句移到 {/ 1}}语句之前的位置,这样它们就可以了没有进入,因此不同于天体测量RA和dec,后来通过我自己添加的代码设置了几行。
所以:目前,你实际上是 - 如果我正确理解PyEphem - 准确地获得你想要的RA并且可以继续你的项目。同时,我会追查该票,并尝试让.dec
和if
开始提供与.ra
和.dec
不同的数字!