2013-06-23 33 views
2

我剛剛開始使用PyEphem。我的當前任務是,給定日期和時間,以latitude-longitude的值計算地球上的亞太陽點。我會深入研究PyEphem來解決這個問題,但如果有人已經這樣做了,我會很感激示例代碼。在赤緯對象φ應該總是騎權的一系列具有緯度φ在地球上的位置之上,因此緯度號碼給予:計算分太陽穴

回答

0

我無法從今天早上我在哪裏測試實際的代碼,但你直接由機構的.dec屬性(或.a_dec.g_dec取決於您的應用程序)。

現在,經度怎麼樣?想象一下這種情況,我認爲這種情況一天大概會發生一次,當0°經度的格林威治仰望起來,並看到天空中0°的赤經右上方向右上方。那時,赤經上的一個天體θ可能會低頭看看經度θ,假設經度向東是正值,PyEphem就是這樣。

現在,如果格林威治正在仰望非赤字的赤字線,那該怎麼辦呢?那麼在我看來,我們只需要從一個人的赤經中減去這個東西來計算經度,因爲隨着時間的推移地球轉動,赤經線越過格林威治,並且分配給它們的赤經越來越大,任何一個特定的身體將穿過地球西行,其經度會減少,然後在經過西半球時變爲負值。

在任何時候,格林威治的赤經開銷線可以通過在0°經度上創建一個觀測器並且如果我正確記得快速參考請求它的.sidereal_time()來確定。所以,我認爲,一個身體下方的經度可能是:

lon = body.ra - greenwich.sidereral_time() 

我會做一個簡單的測試這個今天晚些時候,看看是否合理的數字出來。

0

我去找OP的同一個答案。許多帖子「提到」PyEphem如何走,但沒有提供實際的例子。

這裏是我的工作示例來計算下太陽穴點。將所有內容映射到-180到+ 180度之間的經度。

greenwich = ephem.Observer() 
greenwich.lat = "0" 
greenwich.lon = "0" 
greenwich.date = datetime.utcnow() 
sun = ephem.Sun(greenwich) 
sun.compute(greenwich.date) 
sun_lon = math.degrees(sun.ra - greenwich.sidereal_time()) 
if sun_lon < -180.0 : 
    sun_lon = 360.0 + sun_lon 
elif sun_lon > 180.0 : 
    sun_lon = sun_lon - 360.0 
sun_lat = math.degrees(sun.dec) 
print "Subsolar Point Sun Lon:",sun_lon, "Lat:",sun_lat 

我不是PyEphem的專家,可能有更好的方法 - 但我迄今爲止的測試有這項工作爲我的目的。

p.s.是的..上面的格林威治實際上並沒有設置爲實際經度/經度......它只是0.0的經度才能得到我們需要的合適的恆星時間。