首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Skyfield计算彗星的距离?

如何使用Skyfield计算彗星的距离?
EN

Stack Overflow用户
提问于 2016-11-04 09:01:13
回答 1查看 214关注 0票数 1

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

我在NASA找到了一种为彗星(这里)创建Spice文件的方法,但它生成的xsp文件,我似乎无法从skyfieldload命令中读取。

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

我还看到,彗星在skyfield编码sprint的路线图上,所以这也许是我的答案,但如果您知道如何使它与当前版本一起工作,这将是非常有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-17 22:03:32

天田确实获得了彗星的支持!您可以在这里找到详细信息:

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

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

代码语言:javascript
复制
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)

我看到的结果是:

代码语言:javascript
复制
Distance in AU: 35.22790002485247
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40418675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档