pyephem将观察者日期提前到NeverUpE

2024-09-24 00:33:53 发布

您现在位置:Python中文网/ 问答频道 /正文

第一个问题: 我在一大群经纬仪和日期上循环寻找月亮升起/设定的时间。其中一些点在两极附近。 下面的代码将观察者的日期提前NeverUpError

moon = ephem.Moon()
obs = ephem.Observer()
obs.lat='89'
obs.lon='0'
obs.date = ephem.Date('2014/01/01')
print obs.date
# 2014/1/1 00:00:00
obs.next_rising(moon)
# Traceback (most recent call last):
#   ...
# ephem.NeverUpError: 'Moon' transits below the horizon at 2014/1/1 12:04:01
print obs.date
# 2014/1/1 12:04:01

在调用obs.next_rising(moon)之前,有没有一种方法可以检查这一点?我想在观察中保留这个日期。我当前使用try/except块来捕捉它并重置日期。有更好的方法吗?在

第二个问题: 与第一个相关,库线程安全吗?我使用Queue和threading模块在不同的线程中一次计算多个日期。在


Tags: 方法代码date时间线程nextprintobs
1条回答
网友
1楼 · 发布于 2024-09-24 00:33:53

第一个答案:日期更改是PyEphem中的一个bug,应该在下一个版本发布时修复它!目前,手动设置日期似乎是最简单的解决方法。在

第二个答案:只要每个线程都有自己的MoonObserver对象,它就应该能够在不破坏任何其他线程的情况下完成自己的计算。在

相关问题 更多 >