【问题标题】:Ephem not updating real timeEphem 没有实时更新
【发布时间】:2017-04-21 23:21:26
【问题描述】:

我有一个在画布上带有地图的程序。当我在地图上滚动时,它会在屏幕上显示鼠标指针所在位置的经度和纬度,并实时更新。同样,当我移动鼠标时,它会在屏幕上显示我所在位置的日出、日落、月出、月落和月相。一切正常,除了 ehem 显然不会实时更新。

这是每次移动鼠标时运行的代码中特定于 ephem 的部分。

self.maploc.lat, self.maploc.lon = str(py), str(px)
sr = str(self.maploc.next_rising(ephem.Sun()
ss = str(self.maploc.next_setting(ephem.Sun()))
snr = sr.split(' ')
sns = ss.split(' ')
self.maploc.lat, self.maploc.lon = str(py), str(px)
mr = str(self.maploc.next_rising(ephem.Moon()))
ms = str(self.maploc.next_setting(ephem.Moon()))
mn = ephem.Moon()
mn.compute(self.maploc)
mnr = mr.split(' ')
mns = ms.split(' ')

我认为运行 mn.compute(self.maploc) 会完全更新地图坐标,但事实并非如此。昨天承认,当我开始修改这个想法时,我注意到它似乎也没有根据日出时间进行实时更新。

我如何获得实时更新,或者我可以使用 ehem。

如果我运行该程序,月相将始终保持不变,直到我关闭该程序并重新启动该程序。

【问题讨论】:

    标签: python-3.x pyephem


    【解决方案1】:

    您可能需要重置 maploc 的日期,否则它的例程(如 next_rising())可能只会根据您创建它时获得的日期计算时间。

    from ephem import now
    ...
    self.maploc.date = now()
    

    这就是您可以更新maploc 以从新的日期和时间开始考虑计算的方法。祝你好运!

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      相关资源
      最近更新 更多