第一个问题:
我在一大群经纬仪和日期上循环寻找月亮升起/设定的时间。其中一些点在两极附近。
下面的代码将观察者的日期提前NeverUpError
moon = ephem.Moon()
obs = ephem.Observer()
obs.lat='89'
obs.lon='0'
obs.date = ephem.Date('2014/01/01')
print obs.date
# 2014/1/1 00:00:00
obs.next_rising(moon)
# Traceback (most recent call last):
# ...
# ephem.NeverUpError: 'Moon' transits below the horizon at 2014/1/1 12:04:01
print obs.date
# 2014/1/1 12:04:01
在调用obs.next_rising(moon)
之前,有没有一种方法可以检查这一点?我想在观察中保留这个日期。我当前使用try/except块来捕捉它并重置日期。有更好的方法吗?在
第二个问题: 与第一个相关,库线程安全吗?我使用Queue和threading模块在不同的线程中一次计算多个日期。在
第一个答案:日期更改是PyEphem中的一个bug,应该在下一个版本发布时修复它!目前,手动设置日期似乎是最简单的解决方法。在
第二个答案:只要每个线程都有自己的
Moon
和Observer
对象,它就应该能够在不破坏任何其他线程的情况下完成自己的计算。在相关问题 更多 >
编程相关推荐