1
第一個問題: 我正在循環大量的經緯度和日期以查找月亮上升/設置時間。其中一些點靠近兩極。 下面的代碼推進觀察者對NeverUpError
pyephem在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和線程模塊在單獨的線程中一次計算多個日期。