我已经看过使用ephem计算日出和日落的例子,并且它的工作效果很好。使用ephem计算“Solar Noon”,翻译为当地时间
当我尝试计算这两次之间的中点时,我遇到了麻烦。下面是我有:
import datetime
import ephem
o = ephem.Observer()
o.lat, o.long, o.date = '37.0625', '-95.677068', datetime.datetime.utcnow()
sun = ephem.Sun(o)
print "sunrise:", o.previous_rising(sun), "UTC"
print "sunset:",o.next_setting(sun), "UTC"
print "noon:",datetime.timedelta((o.next_setting(sun)-o.previous_rising(sun))/2)
我得到:
日出:2010年11月2日12时47分四十秒UTC
日落:2010年11月2日23时24分25秒UTC
中午:5:18:22.679044
这就是我卡住的地方。我是一名Python初学者,并且坦率地说并不是一般的程序员。
任何建议将是最受欢迎的!
如果你的北方(或南方)太远,太阳没有今天上升,你的日出计算不“工作”...(例如今天是7月8日但最后的日出是5月17日:-) – thebjorn 2011-07-08 10:37:07
是的,我看到了问题:'ephem.AlwaysUpError:'太阳'仍然在地平线上2011/7/8 00:04:58' – 2011-07-08 10:50:16