該腳本應該獲取通過時間,獲取通行時間的角度,然後獲取到達角度的時間。我給出的兩份印刷說明應該給出相同的結果。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