引擎盖下的 PyEphem - 它如何计算行星的位置?

PyEphem under the hood - how does it calculate position of planets?

在 space SE 中是 suggested I use PyEphem to calculate orbits from two-line elements. Now I'm curious how it calculates "build-in" solar system objects like the planets and their satellites. Does it use one of the standard JPL ephemerides (also here),还是别的?

到目前为止,我在 PyEphem or XEphem 网站上找不到答案。

例如,JPL 星历表是通过在有限的时间段内整合轨道生成的(粗略地说),同时与大量观测数据进行比较以获得一组轨道参数。然后将其整合到遥远的未来和过去,并在固定时间将结果制成表格。这个 table 的位置(和其他东西)可以称为 星历表

然后通过在时间段之间进行插值来使用星历 - 在这种情况下使用 table.

中给出的切比雪夫多项式的系数

JPL DE405 ephemeris for example can be read with the python module de405

@Mattexx 在下面指出 XEphem 正在使用一个名为 libastro 的例程,而 PyEphem 可能也在做同样的事情。所以我想知道它是用什么来计算位置的——算法和观察到的数据集。

根据PyEphem Readme

The underlying numeric routines are coded in C and are the same ones that drive the popular XEphem astronomy application, whose author, Elwood Charles Downey, generously gave permission for their use in PyEphem.

C 库称为 libastro。检查 libastro source 表明它实际上使用的是 VSOP 87。