我正在尝试使用pyephem计算日出和日落时间,但算法似乎在极地地区无法收敛?请参考下面的示例代码。它以10分钟为间隔迭代整个一年,请求下一个日出和日落时间。然而,pyephem总是返回AlwaysUpError或NeverUpError错误,但在一年中太阳肯定至少会升起和落下一次吧?
import ephem
from datetime import datetime, timedelta
obs = ephem.Observer()
obs.lat = '89:30'
obs.long = '0'
start = datetime(2011, 1, 1)
end = datetime(2012, 1, 1)
step = timedelta(minutes=10)
sun = ephem.Sun()
timestamp = start
while timestamp < end:
obs.date = timestamp
try:
print obs.next_rising(sun)
except (ephem.AlwaysUpError, ephem.NeverUpError):
pass
try:
print obs.next_setting(sun)
except (ephem.AlwaysUpError, ephem.NeverUpError):
pass
try:
print obs.previous_rising(sun)
except (ephem.AlwaysUpError, ephem.NeverUpError):
pass
try:
print obs.previous_setting(sun)
except (ephem.AlwaysUpError, ephem.NeverUpError):
pass
timestamp += step
我不确定是我使用API的方式有误,还是PyEphem存在bug,或者我对某些基本概念有所误解。需要帮助。