我一直在使用PyEphem很长一段时间,但是几天前(可能是几周?)之前,我的一个脚本已经不能再工作了。该脚本计算小行星的上升和设定时间,我使用CALLHORIZONS
从轨道元素创建。我发现PyEphem没有正确计算出小行星的数量。高程 - 然而,它正确计算太阳的高度。
这是一个最小的脚本:
import ephem
import numpy
import callhorizons
this_target = '3552'
body = callhorizons.query(this_target)
body.set_discreteepochs(2415730.0)
body.get_elements()
this_target = body.export2pyephem()[0]
### works fine for the Sun
#this_target = ephem.Sun()
date = ephem.now()
this_target.compute(date)
obs = ephem.Observer()
obs.epoch = 2000.0
obs.lon = -111.653152/180.*numpy.pi
obs.lat = 35.184108/180.*numpy.pi
obs.elevation = 2738 # m
obs.date = date
obs.horizon = 0.
# if target is '3552', this_target.alt stays constant
for time in numpy.arange(date, date+1, 0.1):
obs.date = time
this_target.compute(obs)
print time, this_target.alt, this_target.ra
### if this_target is '3552', this results in a segmentation fault
print obs.next_rising(this_target)
使用自定义目标(在这种情况下为3552
),PyEphem不会计算目标的高程,因此在尝试推导上升/设定时间时会遇到分段错误这个目标。
我尝试安装最新版本的PyEphem(3.7.6.0),但它没有帮助。任何人都可以复制(解释?)这个错误吗?
答案 0 :(得分:0)
考虑到纬度为35度,这个物体接近木星略高于黄道而且它的周期为8年,这可能是它直到大约2或3时才会上升更多年过去了。
答案 1 :(得分:0)
由R. J. Mathar的回答引发,我再次研究了这个问题,发现这个问题已经消失了。我现在使用Python 2.7和3.5获得正确的结果;两者都使用PyEphem 3.7.6.0。
我希望能更深入地了解问题所在,但我不知道。我不确定我的系统是否有任何重要的变化。这似乎是由某种安装问题引起的。