1

以下是 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

有没有办法将岁差/章动应用于 pyephem 中的地形中心 ra 和 dec?

4

1 回答 1

1

好问题!在查看了 PyEphem 基础的 C 代码之后,看起来值都已经进入观察者对象的纪元(在您的情况下是 J2000 的默认值)。供您参考,这是来自以下问题的代码:raa_ralibastroearthsat.c

if (epoch != EOD && mjd != epoch)
    precess (mjd, epoch, &ra, &dec);
op->s_ra = ra;
op->s_dec = dec;

在我看来是这样的.ra,并且.dec价值已经进动了。让这个代码保持不变可能是我的疏忽。很可能我真正应该做但当时没有看到的是将这些赋值语句移到语句之前的位置if,这样它们就不会被进动,因此与天体测量的 RA 和 dec 不同稍后通过我自己添加的代码设置几行。

所以:目前,你实际上——如果我正确理解 PyEphem——得到你想要的 RA 和 dec,并且可以继续你的项目。同时,我将追查那张票,并尝试获取.ra.dec开始给出与.a_ra和不同的数字.a_dec

于 2013-03-02T05:44:37.593 回答