如何使用天空场计算到彗星的距离?

2024-07-07 07:52:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用^{}计算行星与地球的相对距离,作为时间的函数(如skyfield主页所述)。它工作得很好,现在我正在尝试实现Earth=>;彗星距离(例如67P/Tchouri)

我在NASA JPL上发现了一种为彗星(here)创建Spice SPK文件的方法,但它生成了xsp文件,我似乎无法从skyfield使用load命令读取这些文件

我考虑的另一种可能性是使用pyephem(见here)建议的轨道信息,但我不知道如何在Skyfield中读取它们

我还看到comets在skyfield编码sprint的路线图上,所以这可能是我的答案,但是如果你知道一种方法使它与当前版本一起工作,那将非常有用


Tags: 文件方法函数gt距离地球here时间
1条回答
网友
1楼 · 发布于 2024-07-07 07:52:24

Skyfield确实获得了对彗星的支持!您可以在此处找到详细信息:

https://rhodesmill.org/skyfield/kepler-orbits.html#comets

根据文档中的代码,这里是从小行星中心数据库到彗星的距离:

from skyfield.api import load
from skyfield.constants import GM_SUN_Pitjeva_2005_km3_s2 as GM_SUN
from skyfield.data import mpc

ts = load.timescale()

eph = load('de421.bsp')
sun, earth = eph['sun'], eph['earth']

with load.open(mpc.COMET_URL) as f:
    comets = mpc.load_comets_dataframe(f)
comets = comets.set_index('designation', drop=False)
row = comets.loc['1P/Halley']
comet = sun + mpc.comet_orbit(row, ts, GM_SUN)

t = ts.utc(2020, 10, 17)
ra, dec, distance = earth.at(t).observe(comet).radec()

print('Distance in AU:', distance.au)

我看到了结果:

Distance in AU: 35.22790002485247

相关问题 更多 >