【发布时间】:2014-11-28 04:10:30
【问题描述】:
我想设置一个 Python 程序,以便能够从不同位置提取日出/日落,以触发本地位置的灯光,以象征远程日出 - 如果你真的在那里。 我的意思是,如果您住在柏林,并且您在 12 月中旬的日出/日落时间是上午 7:45/下午 4:15,那么您可以有一个小 LED,当一些热带日出发生时会亮起(比如夏威夷)。但这是根据您自己的当地时间发生的。
因此,使用 Python 的 ephem、pytz 和 localtime,提取各个位置的日出/日落信息,并根据每个位置触发事件。
我设置了一个测试程序,使用不列颠哥伦比亚省的温哥华和法属圭亚那的乔治敦作为测试用例,并且大部分情况下它都能正常工作 - 但乔治敦的日出/日落完全错误。
您可以将整个内容剪切并粘贴到 Python 窗口中进行测试,请原谅无关的时间调用,但我觉得看看每个时间调用 pull 的内容很有趣。
尽管如此,您会看到 Guyana.date 是绝对正确的,但日出/日落大约是 1:53 AM / 13:57 PM,完全被破坏了。 关于这怎么会变得如此可怕,可怕的错误的任何想法?
已编辑删除不必要的代码
import ephem
from datetime import datetime, timedelta
from pytz import timezone
import pytz
import time
Guyana = ephem.Observer()
Guyana.lat = '5'
Guyana.lon = '58.3'
Guyana.horizon = 0
Guyana.elevation = 80
Guyana.date = datetime.utcnow()
sun = ephem.Sun()
print("Guyana.date is ",Guyana.date)
print("Guyana sunrise is at",Guyana.next_rising(sun))
print("Guyana sunset is going to be at ",Guyana.next_setting(sun))
这样的结果如下:
Guyana.date is 2014/10/4 16:47:36
Guyana sunrise is at 2014/10/5 01:53:26
Guyana sunset is going to be at 2014/10/5 13:57:05
这有什么问题,今天圭亚那的实际日出时间是早上 5:40,所以 1:53:26 的时间不只是几个小时,而是在很多方面。
【问题讨论】:
标签: python timezone pytz pyephem