3

我想计算给定日期和时间的地球位置(相对于太阳)和轴旋转。可以假设太阳在 0,0,0 坐标处是静止的。例如,由于月球引力引起的非常小的偏转也可以忽略不计。任何准确度都在一个度左右就足够了。

是否有任何库/源/数据可以帮助我完成此任务?

4

3 回答 3

4

可以从这里下载的 aa-56 代码包括一个太阳星历,它可能会满足您的需要。对于高精度工作,您需要像 JPL 的 DE421 这样更精确的东西,但是涉及到一些不方便的大系数表,如果您对 1 度的精度感到满意,这可能是极端的矫枉过正。

地球在给定时间的自转由格林威治恒星时给出。
Jean Meeus 的“天文算法”(此类计算的一个很好的参考!)theta0根据儒略日期给出了一个公式(以度为单位的累积旋转角度)JD

T = (JD - 2451545.0 ) / 36525

theta0 = 280.46061837 + 360.98564736629*(JD-2451545.0) + 
           0.000387933*T*T - T*T*T/38710000.0

theta0 = 0 度 mod 360 表示格林威治子午线与天体坐标中的赤经 0:00 对齐的时刻。

于 2010-12-02T00:08:19.047 回答
2

在 Python 中,使用该ephem库:

>>> import ephem
>>> sun = ephem.Sun()
>>> sun.compute(ephem.now())
>>> sun.hlong, sun.hlat, sun.earth_distance
(69:41:32.6, 0:00:00.2, 0.98602390289306641)

ephem没有提供地球作为一个物体的方便表示,而是sun.hlong给出sun.hlat了地球的日心经度和纬度。这可以更好地记录下来。

对于地球自转,也许您可​​以在这里说出您要寻找的价值。(通常我们使用一天中的时间,但我认为通常很清楚如何掌握它!)

于 2010-12-02T00:11:58.653 回答
2

是的。你需要的是一个Ephemeris包。

JPL 有一个在线 Ephemeris 服务,可以为您进行计算,所以如果您有网络能力,您可以使用它。

我也找到了一个免费的 Ephemeris 包,但它看起来就像是为你点击了 JPL 网站。但是,那里有一个链接可以下载 JPL 的数据库并让它工作。因此,如果您想离线工作并且不介意不时从 JPL 手动更新您的数据库,那可能是一个选择。

于 2010-12-01T23:55:35.653 回答