2012-01-21 46 views
1

PyEphem有沒有一種方法可以在不使用python循環的情況下將大量的視在座標有效地轉換爲赤道赤道/赤道? 任何暗示讚賞,謝謝!海拔/方位角到赤道座標的批量轉換

+1

顯示您迄今爲止所嘗試的內容,我們可能會提供幫助。你的互動領域是專業化的,pyhehem的天文學專業人員很少。因此,請說明你在做什麼,並且你將從python程序員那裏得到一個不是天文數字的適當解決方案。 –

+0

好的,謝謝,我還沒有例子,我將在接下來的幾天創建並添加一個。然而,它非常簡單,我有一組仰角和方位角,我想在沒有循環的情況下將它們全部轉換爲ra/dec。 –

+0

基本上你想要一個「矢量化」的處理鏈?!只要你沒有足夠的矢量單位,你就無法循環!循環本身並不壞。對於性能方面的擔憂,你可能會考慮'map'函數,該函數會執行「循環」操作以避免「for循環」。 –

回答

1

您可以在函數內部隱藏for循環,以便您不必考慮主代碼中的循環。或者你可以使用列表理解移動循環表達式的內部,使得循環不需要在一份聲明中的水平要出,如改變:

a = [1,2,3] 
b = [] 
for n in a: 
    b.append(n*n) 

來表達,如:

a = [1,2,3] 
b = [n*n for n in a] 

但是,不,PyEphem沒有提供它自己的語法 - 就像numpy提供的庫一樣 - 用於執行向量操作(當然,它總是在任何漂亮的語法之下循環)。

PyEphem將不得不重建其在numpy頂部的計算,而不是在C中實現它們以實現真正的矢量工具鏈方法。無論如何,總有一天這可能是一個好主意,因爲numpy與pypy結合時會變得多快;但是現在PyEphem是一個圍繞C庫「libastro」的包裝,它繼續保持和改進,所以PyEphem尚未支持實施許多計算。

+0

感謝布蘭登,我關注性能,所以我希望PyEphem能夠在C級而不是py級別上有循環,並且性能可能會有明顯的提高。 –