我正在尝试使用 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 中存在错误,要么我误解了一些基本的东西。有什么帮助吗?