我目前正在研究天文安装支持工具。这需要在 JNow 和 J2000 之间转换坐标。我已经使用 SOFA 库中的 ERFA 实现来完成此操作,该库也存在于 astropy 中。当我开始关注 Skyfield 进行卫星跟踪时,我想减少使用的库的数量。实际上,从 J2000(或 ICRS)到 JNow(Topocentric)的转换可以在 ERFA 上使用“atic13”例程完成:
rc, dc, eo = self.ERFA.atic13(self.ERFA.anp(ra * self.ERFA.D2PI /24 + self.ERFA.eo06a(jdtt, 0.0)),
dec * self.ERFA.D2PI / 360,
<topo julian date>,
0.0)
val1 = rc * 24.0 / self.ERFA.D2PI
val2 = dc * self.ERFA.DR2D
在 Skyfield 上执行此操作的相同方法是
result = earth.at(<topo julian date>).observe(<coordinates>).apparent()
我可以从结果中访问坐标。现在让我伤心的是,因为我可能走错了路,我会反其道而行之。所以在 ERFA 中很简单:
ri, di, eo = self.ERFA.atci13(ra * self.ERFA.D2PI / 24,
dec * self.ERFA.D2PI / 360,
0,
0,
0,
0,
<topo julian date>,
0)
val1 = self.ERFA.anp(ri - eo) * 24 / self.ERFA.D2PI
val2 = di * 360 / self.ERFA.D2PI
但我没有找到 Skyfield 的正确方法。如果有人能以正确的方式指导我,这将非常有帮助。我实际上正在使用最新的(1.6)
米歇尔