首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pyephem/matplotlib绘制轨道

如何使用pyephem/matplotlib绘制轨道
EN

Stack Overflow用户
提问于 2015-09-11 19:04:14
回答 1查看 1.2K关注 0票数 2

使用pyephem,我可以从小行星中心获取轨道元素,并将它们添加到ephem.EllipticalBody()中。

为了绘制轨道,我已经得到了计算太阳距离,日心纬度和经度的轨道周期,并绘制了:

代码语言:javascript
复制
dt = body._epoch
period = (sqrt(a**3))

timespace  = np.linspace(dt-((period*365)/2),
                         dt+((period*365)/2), 720)

theta_e = []
r_e = []
phi_e = []
for t in timespace:
    body.compute(t)
    theta_e.append(body.hlon)
    phi_e.append(body.hlat)
    r_e.append(body.sun_distance)

subplot = figure(figsize=(20, 20)).add_subplot(111, polar=True)
subplot.scatter(theta_e, r_e*cos(phi_e), s=0.5)

这种方法适用于周期较短(几年)的小行星。然而,当我走到极端,情节比方说Sedna,我得到:

http://i.stack.imgur.com/wxRCW.png

因此,pyephem看起来很聪明,并考虑到了随体进动。这不是我想要的。

有什么建议吗,关于如何从轨道元素绘制轨道,或者我在这里做错了什么?理想情况下,我希望能够从不同的“观点”来显示情节的倾向性以及古怪,或者可能是一个现场的蛋黄酱场景。

EN

回答 1

Stack Overflow用户

发布于 2015-09-14 13:13:00

我怀疑这里的现象不是近程进动,因为在给定椭圆坐标时,PyEphem下的libastro库使用简单的开普勒式轨道。

相反,我的猜测是,你看到的是地球的极地进动,当你试图绘图时,它正在将日心纬度和经度系统从你的脚下移出。对于大多数物体来说,这种影响可以忽略不计,但11000年的轨道运行时间足以让地球的极点绕着天空转一圈。

libastro产生的唯一可能对该效果免疫的坐标(假设compute(…, epoch=J2000)不会使日心经度稳定?)是a_raa_dec坐标,所以您可能需要同时提取太阳和Sedna的坐标,将它们转换为矢量,然后减去。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32521922

复制
相关文章

相似问题

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