我尝试使用Skyfield绘制地球到太阳系行星的距离随时间变化的au图。这非常简单,甚至在包主页的前页中已经给出了。然而,虽然对于水星、金星和火星它可以完美工作,但对于其他行星则无法正常运行。我不熟悉JPL天文数据文件,但看起来例如木星在de421.bsp文件中没有关键项,这可能是问题所在。
以下是一个最小示例(来自主页):
错误如下。请注意,如果在上面的代码中将“jupiter”替换为“mars”,它就不会崩溃。
我是否以错误的天心使用了星历文件(错误的重心)?或者这只是 de421.bsp 文件的限制?我阅读了 Skyfield 网站上有关星历文件的描述(此处),但不确定我是否完全理解了它。
有什么建议可以用 Skyfield 进行地球 - 木星距离的简单计算吗?
谢谢!
以下是一个最小示例(来自主页):
from skyfield.api import load, now
planets = load('de421.bsp')
earth, planet = planets['earth'], planets['jupiter']
jd = now()
position = earth.at(jd).observe(planet)
ra, dec, distance = position.radec()
print(distance)
错误如下。请注意,如果在上面的代码中将“jupiter”替换为“mars”,它就不会崩溃。
----> earth, planet = planets['earth'], planets['jupiter']
KeyError: "kernel 'de421.bsp' is missing 'JUPITER' - the targets it supports are:
SOLAR SYSTEM BARYCENTER, MERCURY BARYCENTER, VENUS BARYCENTER, EARTH BARYCENTER,
MARS BARYCENTER, JUPITER BARYCENTER, SATURN BARYCENTER, URANUS BARYCENTER,
NEPTUNE BARYCENTER, PLUTO BARYCENTER, SUN, MERCURY, VENUS, MOON, EARTH, MARS"
我是否以错误的天心使用了星历文件(错误的重心)?或者这只是 de421.bsp 文件的限制?我阅读了 Skyfield 网站上有关星历文件的描述(此处),但不确定我是否完全理解了它。
有什么建议可以用 Skyfield 进行地球 - 木星距离的简单计算吗?
谢谢!
planets['jupiter barycenter']
吗? - Psytho