为什么 PyEphem 不计算手动生成的对象的高度?
Why won't PyEphem calculate the elevation of manually generated objects?
我使用 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 不会计算目标的高度,因此在尝试导出 [=22= 时 运行 会陷入分段错误] 这个目标的倍数。
我尝试安装最新版本的 PyEphem (3.7.6.0),但没有帮助。任何人都可以复制(解释?)这个错误吗?
考虑到纬度为 35 度,事实上这个天体靠近木星,略高于黄道,并且它的周期为 8 年,它可能直到大约 2 或 3 年才会升起已经过去了。
受R. J. Mathar 的回答启发,我再次查看此问题,发现该问题已消失。我现在使用 Python 2.7 和 3.5 得到正确的结果;都使用 PyEphem 3.7.6.0。
我很乐意就问题所在提供更多见解,但我不知道。我不确定我的系统是否有任何重要的变化。这似乎是由某种安装问题引起的。
我使用 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 不会计算目标的高度,因此在尝试导出 [=22= 时 运行 会陷入分段错误] 这个目标的倍数。
我尝试安装最新版本的 PyEphem (3.7.6.0),但没有帮助。任何人都可以复制(解释?)这个错误吗?
考虑到纬度为 35 度,事实上这个天体靠近木星,略高于黄道,并且它的周期为 8 年,它可能直到大约 2 或 3 年才会升起已经过去了。
受R. J. Mathar 的回答启发,我再次查看此问题,发现该问题已消失。我现在使用 Python 2.7 和 3.5 得到正确的结果;都使用 PyEphem 3.7.6.0。
我很乐意就问题所在提供更多见解,但我不知道。我不确定我的系统是否有任何重要的变化。这似乎是由某种安装问题引起的。