第一个问题:
我正在遍历一大组纬度/经度和日期以查找月亮升起/落下时间。其中一些点靠近两极。以下代码将观察者的日期提前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 块来捕获它并重置日期。有没有更好的办法?
第二个问题: 与第一个相关,库线程安全吗?我将其设置为使用队列和线程模块在单独的线程中一次计算多个日期。