该脚本应该获取通过时间,获取通行时间的角度,然后获取到达角度的时间。我给出的两份印刷说明应该给出相同的结果。PyEphem:从太阳时间计算角度,然后从角度计算时间的时间不匹配
import ephem
obs = ephem.Observer()
obs.lat = '30'
obs.long = '30'
sun = ephem.Sun(obs)
obs.date = sun.transit_time
sun.compute(obs)
altitude = sun.alt
obs.horizon = altitude
print(obs.next_setting(ephem.Sun(), use_center = True))
相反,这是给我一个NeverUpError。这没有任何意义。我试着坐标20,20。它没有给出错误,但时代不匹配。
Traceback (most recent call last): File "test.py", line 11, in print(obs.next_setting(ephem.Sun(), use_center = True)) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", line 498, in next_setting return self._riset_helper(body, start, use_center, False, False) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", line 466, in _riset_helper d0 = visit_transit() File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ephem/init.py", line 410, in visit_transit % (body.name, d)) ephem.NeverUpError: 'Sun' transits below the horizon at 2017/7/12 10:05:39
请分享您使用的实际代码。错误消息引用第15行。您打印变量'transTime',但不会初始化它。这与生成错误的代码不同。 –
@DarenThomas你可以看看我过去的编辑。为了使它更具可读性,我缩短了一点,但本质上它是相同的。 – Goldname
您的缩写使其“更具可读性”使您的代码无法正常工作,并且您显示的错误消息不适用于此代码,即可能会让人们试图帮助您。失败。 – barny