我想计算给定日期和时间的地球位置(相对于太阳)和轴旋转。可以假设太阳在0,0,0坐标处静止不动。由于例如卫星引力,非常小的偏转也可以忽略不计。在一定程度左右准确的任何东西都足够好。
是否有任何库/源/数据可以帮助我实现这一目标?
答案 0 :(得分:4)
aa-56代码which can be downloaded from here包含一个可能满足您需求的太阳星历。对于高精度工作,你需要比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对齐的瞬间。
答案 1 :(得分:2)
是。您需要的是Ephemeris包。
JPL has an online Ephemeris service将为您进行计算,因此如果您具备网络功能,则可以点击它。
我也发现了一个free Ephermeris package,但看起来它只是为你点击了JPL网站。但是,有一个链接可以下载JPL的数据库,并让它可以解决这个问题。因此,如果您想要脱机工作并且不介意不时地手动从JPL手动更新数据库,那么这可能是一种选择。
答案 2 :(得分: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
给出了地球的日心经度和纬度。这可以更好地记录下来。
对于地球自转,也许你可以说出你在这里寻找的价值。 (通常我们会使用一天中的时间,但我认为通常很清楚如何掌握它!)