使用 NumPy、SciPy、Scikit-Image 和 Astropy 探索宇宙
• 來源:linux.cn • 作者:Gina Helfrich,ph.d. • 譯者:SilentDawn •
(本文字?jǐn)?shù):2442,閱讀時(shí)長大約:3 分鐘)
天文學(xué)與 Python
對科學(xué)界而言,尤其是對天文學(xué)界來說,Python 是一種偉大的語言工具。各種軟件包,如 NumPy 、 SciPy 、 Scikit-Image 和 Astropy ,(僅舉幾例) ,都充分證明了 Python 對天文學(xué)的適用性,而且有很多用例。(NumPy、Astropy 和 SciPy 是 NumFOCUS 提供資金支持的項(xiàng)目;Scikit-Image 是個(gè)隸屬項(xiàng)目)。我在十幾年前脫離天文研究領(lǐng)域,成為了軟件開發(fā)者之后,對這些工具包的演進(jìn)一直很感興趣。我的很多前天文界同事在他們的研究中,使用著前面提到的大部分甚至是全部工具包。以我為例,我也曾為位于智利的超大口徑望遠(yuǎn)鏡(VLT)上的儀器編寫過專業(yè)天文軟件工具包。
最近令我吃驚的是,Python 工具包竟然演進(jìn)到如此好用,任何人都可以輕松編寫 數(shù)據(jù)還原 (data reduction) 腳本,產(chǎn)生出高質(zhì)量的數(shù)據(jù)產(chǎn)品。天文數(shù)據(jù)易于獲取,而且大部分是可以公開使用的,你要做的只是去尋找相關(guān)數(shù)據(jù)。
比如,負(fù)責(zé) VLT 運(yùn)行的 ESO,直接在他們的網(wǎng)站上提供數(shù)據(jù)下載服務(wù),只要訪問 www.eso.org/UserPortal 并在首頁創(chuàng)建用戶就可以享有數(shù)據(jù)下載服務(wù)。如果你需要 SPHERE 數(shù)據(jù),可以下載附近任何一個(gè)包含 系外行星(exoplanet)或者 原恒星盤(proto-stellar discs)的恒星的全部數(shù)據(jù)集。對任何 Python 高手而言,通過還原數(shù)據(jù)發(fā)現(xiàn)深藏于噪聲中的行星或者原恒星盤,實(shí)在是件令人興奮的事。
我鼓勵(lì)你下載 ESO 或其它天文影像數(shù)據(jù),開啟你的探索歷程。這里提供幾條建議:
- 首先要有一個(gè)高質(zhì)量的數(shù)據(jù)集??匆恍┯嘘P(guān)包含系外行星或者原恒星盤的較近恒星的論文,然后在 http://archive.eso.org/wdb/wdb/eso/sphere/query 之類的網(wǎng)站檢索數(shù)據(jù)。需要注意的是,前述網(wǎng)站上的數(shù)據(jù)有的標(biāo)注為紅色,有的標(biāo)注為綠色,標(biāo)注為紅色的數(shù)據(jù)是尚未公開的,在相應(yīng)的“發(fā)布日期”處會注明數(shù)據(jù)將來公開的時(shí)間。
- 了解一些用于獲取你所用數(shù)據(jù)的儀器的信息。盡量對數(shù)據(jù)的獲取有一個(gè)基本的理解,對標(biāo)準(zhǔn)的數(shù)據(jù)還原之后應(yīng)該是什么樣子做到心中有數(shù)。所有的望遠(yuǎn)鏡和儀器都有這方面的文檔供公開獲取。
- 必須考慮天文數(shù)據(jù)的標(biāo)準(zhǔn)問題,并予以校正:數(shù)據(jù)以 FITS 格式文件保存。需要使用 pyfits 或者 astropy (包含 pyfits )將其讀入到 NumPy 數(shù)組。有些情況下,數(shù)據(jù)是三維的,需要沿 z 軸使用 numpy.median 將數(shù)據(jù)轉(zhuǎn)換為二維數(shù)組。有些 SPHERE 數(shù)據(jù)在同一幅影像中包含了同一片天空的兩份拷貝(各自使用了不同的濾波器),這時(shí)候需要使用 索引 和 切片 將它們分離出來。全黑圖(master dark)和 壞點(diǎn)圖(bad pixel map)。所有儀器都有快門全關(guān)(完全無光)狀態(tài)拍攝的特殊圖片,使用 NumPy 掩膜數(shù)組 從中分離出壞點(diǎn)圖。壞點(diǎn)圖非常重要,你在合成最終的清晰圖像過程中,需要持續(xù)跟蹤壞點(diǎn)。有些情況下,這還有助于你從原始科學(xué)數(shù)據(jù)中扣除暗背景的操作。一般情況下,天文儀器還要拍 標(biāo)準(zhǔn)響應(yīng)圖(master flat frame)。這是對均勻的單色標(biāo)準(zhǔn)光源拍攝的一張或者一組圖片。你需要將所有的原始數(shù)據(jù)除以標(biāo)準(zhǔn)響應(yīng)之后再做后續(xù)處理(同樣,使用 Numpy 掩膜數(shù)組實(shí)現(xiàn)的話,這僅僅是一個(gè)簡單的除法運(yùn)算)。對行星影像,為了使行星在明亮恒星背景下變得可見,需要仰仗 日冕儀(coronagraph)和 角差分成像(angular differential imaging)技術(shù)。這一步需要識別影像的光學(xué)中心,這是比較棘手的環(huán)節(jié)之一,過程中要使用 skimage.feature.blob_dog 從原始影像中尋找一些人工輔助影像作為幫助。
- 要有耐心。理解數(shù)據(jù)格式并弄清如何操作需要一些時(shí)間,繪出像素?cái)?shù)據(jù)曲線圖或者統(tǒng)計(jì)圖有助于你的理解。貴在堅(jiān)持,必有收獲!你會從中學(xué)到很多關(guān)于圖像數(shù)據(jù)及其處理的知識。
綜合應(yīng)用 NumPy、SciPy、Astropy、scikit-image 及其它工具,結(jié)合耐心和恒心,通過分析大量可用的天文數(shù)據(jù)分析實(shí)現(xiàn)重大的發(fā)現(xiàn)是非常有可能的。說不定,你會成為某個(gè)之前被忽略的系外行星的第一發(fā)現(xiàn)者呢。祝你好運(yùn)!
NumFOCUS 是個(gè)非盈利組織,維護(hù)著一套科學(xué)計(jì)算與數(shù)據(jù)科學(xué)方面的杰出開源工具集。如果想了解我們的任務(wù)及代碼,可以訪問 numfocus.org 。如果你有興趣以個(gè)人身份加入 NumFOCUS 社區(qū),可以關(guān)注你所在地區(qū)的 PyData 活動 。
本文基于 Pivigo CTO Ole Moeller-Nilsson 的一次 談話 ,最初發(fā)布于 NumFOCUS 的博客,蒙允再次發(fā)布。如果你有意支持 NumFOCUS,可以 捐贈 ,也可以參與遍布全球的 PyData 活動 中你身邊的那些。
via: opensource.com
作者: Gina Helfrich, Ph.D. 選題: lujun9972 譯者: silentdawn-zz 校對: wxy
本文由 LCTT 原創(chuàng)編譯, Linux中國 榮譽(yù)推出






