Расстояние до комет с помощью Skyfields

Я использую Skyfield, чтобы вычислить относительное расстояние планет к Земле как функцию времени (как описано на домашней странице Skyfield). Это прекрасно работает, и теперь я пытаюсь реализовать расстояние от кометы Earth=> (например, 67P/ Tchouri).

Я нашел в NASA JPL способ создания файлов Spice SPK для комет ( здесь), но он создает файлы xsp, которые я не могу прочитать с помощью load команда с небесного поля.

Еще одна возможность, которую я рассмотрел, - это использовать информацию об орбитах, как это предлагается для пифема (см. Здесь), но я не знаю, как читать их в Скайфилде. Я также видел, что кометы были на дорожной карте для спринта кодирования неба, так что, возможно, это мой ответ, но если вы знаете способ заставить его работать с текущей версией, это было бы очень полезно.

Спасибо!

0 ответов

Skyfield получил поддержку комет! Вы можете найти подробности здесь:

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

Адаптировав код из документации, вот расстояние до кометы из базы данных Minor Planet Center:

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
Другие вопросы по тегам