使用pyephem,我可以从小行星中心获取轨道元素,并将它们添加到ephem.EllipticalBody()中。
为了绘制轨道,我已经得到了计算太阳距离,日心纬度和经度的轨道周期,并绘制了:
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看起来很聪明,并考虑到了随体进动。这不是我想要的。
有什么建议吗,关于如何从轨道元素绘制轨道,或者我在这里做错了什么?理想情况下,我希望能够从不同的“观点”来显示情节的倾向性以及古怪,或者可能是一个现场的蛋黄酱场景。
发布于 2015-09-14 13:13:00
我怀疑这里的现象不是近程进动,因为在给定椭圆坐标时,PyEphem下的libastro库使用简单的开普勒式轨道。
相反,我的猜测是,你看到的是地球的极地进动,当你试图绘图时,它正在将日心纬度和经度系统从你的脚下移出。对于大多数物体来说,这种影响可以忽略不计,但11000年的轨道运行时间足以让地球的极点绕着天空转一圈。
libastro产生的唯一可能对该效果免疫的坐标(假设compute(…, epoch=J2000)不会使日心经度稳定?)是a_ra和a_dec坐标,所以您可能需要同时提取太阳和Sedna的坐标,将它们转换为矢量,然后减去。
https://stackoverflow.com/questions/32521922
复制相似问题