你的研究方向有哪些好用的天文軟體?
本題已收錄至知乎圓桌 ? 成為天文學家,更多與天文學家研究生涯,職業發展,工作生活相關的問題歡迎關注討論。
大家都很喜歡提這種很泛泛的問題啊,是不是覺得做天文的人互相都知道大家做的都是什麼。。。現在學科細分這麼厲害,我哪知道做高能天體物理的人用的都是什麼。。。另外,「厲害」是什麼意思?常用?好用?複雜?。。。
常用,好用的話,DS9顯示圖像,Topcat預覽表格,Aladin當做虛擬天文台埠,JSkyCalc規劃觀測;複雜的話,我現在工作的HSC巡天用的數據處理軟體包(hscPipe)是未來給LSST用的,c++和Python混合,代碼加上一些必要的文件裝好後接近1個GB,我到現在也還有好多模塊沒有摸過;做宇宙學數值模擬的Arepo, Gadget,星系半解析模型的Galacticus,SAGE等等,都是幾乎自己可以"造出"一個小宇宙的code,想要弄懂實在不是簡單的事情
關於"重新發明輪子"的問題,分情況討論,個人經驗:
1) 盡量不要沒事什麼都自己寫;就我認識的天體物理博士而言,絕大多數人編程水平並沒有那麼高,你寫的未必有別人寫的好;畢竟是解決科學問題,如果有可以用的軟體盡量不要浪費時間自己來
2) 但使用別人的軟體最好要了解演算法的基本原理,並且要仔細校驗結果;比如做測光最常用的SExtractor,所有的代碼都是公開的,你未必要讀,但是要了解裡面尋找圖像的居於峰值,按照信噪比閾值定義一個目標的像素區塊,將在空間上重疊的目標分開(deblending)這些基本演算法的原理;並且應該設計一些簡單的測試來證明代碼可靠,且適合你的科學項目;我給利用光譜估計星族年齡等參數的EZ_age IDL包挑過錯;給星族合成軟體FSPS挑過錯;但都不是一開始就去讀代碼的,而是設計了一些簡單的input-output測試,發現了問題
3) 科學是最終的驅動,如果真的有必要,該自己動手也不能懶;既然測光有了那麼好的SExtractor,為什麼不大家都使勁維護SExtractor就好了?為什麼HSC和LSST都要寫自己的處理軟體?Dark Energy Survey就是用的自己訂製的SExtractor,一樣有很好的科學成果。這是因為HSC和LSST在設備上的更新帶來了前所未有的觀測,之前在SExtractor裡面的很多演算法已經不足以解決問題;再有就是,基於這些優秀數據的科學目標往往更挑戰,要求更高,也不是已有軟體的精度可以滿足的了,"重新發明輪子"就是必須的了,當然,儘管還是輪子,質量是不一樣的。
最後給一個網站解決99%天文學生的軟體問題:
ASCL.net
Astrophysics Sources Code Library: 天體物理代碼庫,幾乎所有常見的天體物理各個領域能用到的代碼都在這裡有所收錄;主要目的不僅是為了大家搜索方便,也是為了提供一種方式可以讓大家在論文里可以正確地引用代碼。這對編寫,分享這些代碼的科學家是件非常好的事情。
非常鼓勵學習天文的各位在論文里能夠養成引用代碼的習慣,也非常鼓勵學習天文的各位如果有了自己的代碼作品,也到這裡,或者在github等平台上分享給整個社區:什麼是最厲害的軟體?公開的,經過多年科學檢驗的,就是厲害的並不完全同意 @程誠 的第一句話。自己擼代碼雖好,重複造輪子何必呢。而且很多大型項目,數據量 PB 級,我反正是沒有能力單槍匹馬寫出整套數據處理的流程來。寫點小腳本當然不成問題。
我只知道射電方面。首先,每家射電天文台基本都有自己的控制軟體。幾米甚至幾十米的鋼鐵鏡面,還是陣列,要協調控制所有的機械裝置,正確跟蹤天體,按指定參數觀測,數據預處理和存儲,這些都是非常複雜的工作。但是這些軟體吧,太專一了,外人也用不到,所以我想就略去不表了。
還是來看通用軟體吧。非常強大的數據和圖像處理軟體當屬 ALMA 的 CASA (Common Astronomy Software Applications 通用天文軟體應用)https://casa.nrao.edu/。ALMA 是目前全球最大的射電望遠鏡干涉陣列。開發CASA 的首要目標是用來處理大型射電望遠鏡陣列如 ALMA 和 VLA 的數據。不過軟體也兼容其他若干其他望遠鏡陣列的數據格式(如 CARMA)以及單口射電望遠鏡的數據,並且有良好的用戶界面和作圖程序。所以才被成為「通用軟體」,野心是很大滴。CASA 是用 c++ 寫的,然後用 iPython 界面粘起來的。NRAO 有一整個團隊在維護這個軟體和社區。所以專業的程序員朋友們,如果你們有興趣支持天文事業的話,去 CASA 團隊寫程序吧。
通常來講,每家天文台都是使用原生的數據處理軟體最可靠。比如 CARMA 有專門的 mariad 來處理數據。不過 CASA 的好處是,可以把其他軟體處理好的數據導入並作圖。可以直接生成符合天文學期刊出版格式要求的圖像,比通用的作圖軟體比如 python 的 matplotlib 包等等方便很多。在射電光譜擬合方面,大家常用的是 XCLASS/MAGIX,可以用來擬合分子譜線,獲得溫度和密度信息。XCLASS 其實是 CASA 的一個擴展包,是 Peter Schilke 寫的。我自己不是資深用戶,但據說光譜擬合的參數非常難調,用起來蠻蛋疼的。也有一些其他的軟體,不過用戶數量較少。T. M?ller, I. Bernst, D. Panoglou, D. Muders, V. Ossenkopf, M. R?llig and P. Schilke, "Modeling and Analysis Generic Interface for eXternal numerical codes (MAGIX)", AA 549, A21 (2013)
T. M?ller, C. Endres, and P. Schilke, "eXtended CASA Line Analysis Software Suite (XCLASS)", arXiv preprint arXiv:1508.04114, 2015.
Peter 挺有意思的,在 MAGIX 的下載頁面上還不忘黑 Windows 一把。
MAGIX was developed under Linux (ubuntu and SuSE) and works for MACs as well. Due to the fact that we are working only with serious operating systems, MAGIX has not been tested on a Windows machine.
首先什麼程序都不如自己寫一個好用,如果理解了整個處理流程的話,是可以寫出來的程序的,不是什麼大不了的事
------------------------------------------------------------------
補充一下:由於被 @Luyao Zou 引用了第一句話,為了防止修改後大家看不懂他的回答,我就不改了,我做的主要是中紅外波段,數據尺寸比較小,筆記本就能處理,而現成的很多測光和軟體總是不合適或者很麻煩,也是受老闆處理數據風格的影響,有了上面的感慨做過一次Chandra的數據,下載個ciao,後續過程十分省心,也是羨慕,什麼時候紫外到紅外也有這種感覺的數據處理平台就好了
或者已經有了嗎
------------------------------------------------------------------我用到的並且印象很好的:
重點推薦DS9,是我每天都要用無數次的程序,可以看照片,有個idl寫的類似ds9的程序 ATV: an interactive display tool for IDL 感覺很厲害
其次選源的軟體:sextractor,starfinder,sex的說明書寫的非常好,兩個pdf都要看
星系SED擬合的程序幾乎都在:http://www.sedfitting.org/SED08/Welcome.html 這個網站上,我用過的是做測光紅移的EAZY和ANNz和測星系質量的FAST,其中ANNz是神經元網路的方法做測光紅移,療效顯著,我下月就寫一個測光紅移程序,不能再拖了,嗯
一本書叫 http://numerical.recipes/ 從插值解方程到算微分積分隨機數特殊函數什麼的都有,解方程的時候看的比較多,以前辦公室里好幾本放在桌子上供大家翻閱,內容相當於本科修的計算物理吧,當時修計算物理盡聽老師吹各種八卦和表達自己講這門課委屈了,有一節課他怎麼搞的把路徑積分給講了,喂喂,我們是來學怎麼寫程序處理物理問題的好嗎,最後完全不知道學了啥,第二年該老師講了個高級量子場論什麼的高級課,也許這次他就滿足了吧
------------------------------------------------------------------
我體驗過並且印象很好的:
TFIT 和 New software release: T-PHOT :做測光的程序
GALFIT Home Page,著名的面亮度擬合的程序,很好用
Cloudy,計算光致電離的程序,感覺還是挺好用的,至少安裝很方便,作者人也很好
IRAF,很有名的軟體,學過一些用法,感覺還是自己寫個程序用著方便,但是說明書寫的很好,我有一陣子每天地鐵里看那些說明書
CIAO,Chandra衛星數據的處理軟體,功能健康齊全還自帶畫圖擬合小程序,不禁感慨X波段真省心
最後我一定要介紹一下 STARLIGHT :
有一年我研二,我的老闆捧著幾個厚厚的本子發給辦公室的師兄弟姐說:這周我們看程序,看看這個程序寫的有沒有什麼問題,拿來一看,上面寫著starlight,我對自己說,這一定是個很厲害的程序
starlight是fortran寫的程序,雙面列印大約五十來頁,於是我們就看了一周的程序,看到了這個程序如何把發射線扣掉,如何把譜線準備好,如何對48個參數做擬合,而且擬合演算法叫做 退火法,聽起來何止是很火,簡直是我給你的程序過了火,需要消停一下
程序里不定義 pi = 3.14 什麼的,而是用 4 * arctan(1),是那次看源程序活動的唯一印象
結論是沒什麼錯,或者出錯水平也在我們之上,以及太多參數擬合可能不一定準這樣的問題不是這個程序能解決的,演算法已經儘力了,真是好平淡的結論啊
於是組裡用starlight把SDSS dr7 的光譜擬合了一遍,伺服器都被累瘦了
--------------------------------------------------------------------------------------------------------
找照片里的星空位置:http://nova.astrometry.net/ 上傳一個照片後能把星座找出來Plot Digitizer,mac上的軟體,linux 上的是g3data,可以從圖上摳點,偶爾會用到Astropy
astropy
恆星模型,必然是MESA啊!食雙星,那就是WD code!
大牛們都寫了不少了,我覺得對不同領域的研究人員用的會差別很大的。
一般來說,分為這麼幾個類型:1,通用語言工具,比如python、IDL等,這些都屬於通用型等腳本語言,既可以獨立處理數據,也可以用來把現有的軟體嵌合起來,構成自己的新工具包。甚至shell腳本也能做這種事情,不過貌似比較少用。這類工具除了天文學家用,其它專業的人也用(IDL除外,據說只有做地理的也在用)。網上教程啥的也很多。2,望遠鏡控制系統,這類軟體很少通用,有相互借鑒的,但是不可能是一樣的。這些軟體不管多牛*,也都是窩裡橫而已。。。這類軟體,基本上用到這個望遠鏡才可能去學習,遇到問題,也只能找望遠鏡技術支持團隊解決。
3,專門的數據處理工具,別的領域我不清楚,光學的比如SExtractor、iraf等等,都屬於半通用性質的。遇到問題,網上也有不少資料(相對而言……)至於說,怎樣叫好用,本團隊自己有人在用的,就是好用的。Healpix(以及python版本的healpy包),做CMB的人應該都會用到到神器(可能還包括配套的PolSpice,做角功率譜分析用的)
CAMB,給定宇宙學模型(參數)數值求解玻爾茲曼方程,得到各種功率譜(物質功率譜和CMB角功率譜等),一般作為CosmoMC的配套軟體。後者是人們一般用來限制宇宙學參數的軟體
IRAF據說很牛逼,,,可惜我只用來測光過。。。
python裡面到astropy包,pyfits包和cosmolopy包都是比較好用的天文package。用過的還可以枚舉一下~
首先是:IRAF……雖然說總感覺很迷。以及不得不提的:SAOImage - DS9還有學校老師特別愛的IDL,好吧這個不算要不也要拉上MATLAB了~
做軌道的某軟體:AGI的STK(大家懂的…至於愛好者,應該認識Stellarium……似乎同學們被問呆了的時候也會拿這個查查星圖啥的裝點一下門面ˊ_&>ˋ
以下是認真臉:
其實多數時候都是用python啥的自己寫吧?
畢竟有一堆包,譬如,astropy..這樣強答會不會被師兄打死誒?前面的人說的已經挺多挺好了,只補充幾句,也是一直以來的一個體會,所謂工欲善其事,必先利其器,此話不假,但要從兩個層面來看.
好的科研成果一種是從物理圖像和原理上點破的神作,其實很多都是思想實驗,比如牛頓的蘋果,愛因斯坦的電梯,薛定諤的貓等等,總之要能通過敏銳的直覺猜出上帝的答案,嗯,宇宙是大爆炸出來的,哦,還得經歷暴漲一下.當然這種工作可遇不可求,自己的天賦幾斤幾兩掂掂也不指望做出這種級別的工作,但平時要多思考,其實是能做一些出奇制勝idea先行的漂亮工作.
餘下的,一般就得利其器了,磨鏡子,發衛星,拚命除雜訊,除干擾,要看得更深更遠更清楚,越弱越暗越美麗,數據處理的時候還得依賴各種好用的天文軟體了.但是切記,你干科研的目的不是僅僅靠好用的軟體處理數據,更重要的是你要思考解決的科學問題,勿忘初心.遇到很多人沉浸於數據處理中出不來,這是可怕的.
其實我是離題的,所以匿了吧.推薦閱讀:
※從宇宙中抵達地球的正電子,目前的理論認為來源都有哪些?
※天文領域與五十年前相比有何大的進步?
※將來研究天文需要經常熬夜嗎?