爲什麼有些天文從業者也需要寫代碼?

DanielCasio


天文學是個實實在在的,理論、觀測一體的學科。現代天文學家,已經很少有隻從事理論工作的工作的了。

大概在2001年,我曾與到訪的一位在日本專門從事超新星遺蹟理論工作的學者交流,在那個時候,因為理論推導的繁複,他們也開始用mathmatica來校驗公式推導。這也就意味著,理論工作中曾經非常人工化、技巧化的一個分支,公式推導,都開始自動解決了。這已經是17年前的事情了。

通常來說,天文學家是必須和數據打交道的。我舉一個很簡單的例子。我們拍一張星星的照片,大概5秒鐘。要去把照片上星星的星等測出來。這個工作,大致的步驟是什麼呢?

我們拍星星,用的是CCD,首先,要在拍攝在同樣溫度下,不曝光的CCD,我們稱為暗場,大概要拍20多張,做疊加,做平均。還要把均勻光源的照片,拍上20多張,做疊加,做平均,然後,要減掉暗場,除以歸一化平場。整個過程,用到的數學,只有四則運算。但是因為是圖像的操作,為了方便,就自己編程。做完這些準備工作後,再開始編程序來求星星的亮度。為什麼?因為星星太多啊,必須用算法,用程序來做啊。

這只是一個很簡單的例子。天文觀測,硬件供應商給的,都是最直接的硬件。而天文學家,是不希望硬件供應商自行寫太多程序,來處理數據。因為,中間如果算法不對,查找起來反而麻煩。

所以,天文數據往往有兩類,一類是完全沒有處理的原始數據,不同的天文學家按照要求去處理。這需要編程。另一類是給出完整處理步驟,並給出源程序,最後提供做了初步處理的乾淨數據。而乾淨數據的進一步使用,大多數情況下,還是需要天文學家自己編程。


令狐迦基


代碼多少還是要寫的,要不怎麼叫科研民工。

主要原因有兩點,一是現代天文學是定量化的科學,一顆恆星有多遠、有多亮、有多大、有多老,含有哪些元素各有多少,都是需要用數字來說明的,而這些數字是需要計算出來的,計算需要計算機,需要代碼。

二是因為天文學比較小眾,很多程序沒有現成的可以下載,就只能自己寫唄。

現在一些熱門app,比方說抖音啦今日頭條啦,可能在中國就有好億人在用,但是天文上的專業望遠鏡,可能全世界用的人只有幾十幾百幾千(因為全球天文學工作者加起來也沒多少人)。雖然望遠鏡所在的天文臺一般會寫一些基本的數據處理程序來給大家用,但是天文臺人手也有限,不可能面面俱到。

這樣一來,要想把數據變成科研成果就需要自己把缺少的程序補全,有時候需要看懂並改進已有的代碼,有時候需要重新寫一個符合自己要求的程序。

而且科研講究創新,新的數據、新的方法往往需要新的程序,這種新程序顯然沒法去應用商店下載現成的,所以科研工作者就自己動手寫。

好在大學天文系一般都有幾門計算機相關課程,所以天文專業學生寫代碼的能力還是可以的,有同學開玩笑地說自己是碼農,也有同學畢業之後就轉行去做IT了。

此外,天文臺等機構會招計算機專業的學生讀研究生或者在工作,天文臺也有大型計算機來進行復雜的計算(比如宇宙的演化),天文臺的童鞋們也會和IT公司的人進行交流,提升自己寫代碼的能力。


喬小海


這問題應該嚴謹點,換成"為什麼越來越多的天文從業者需要寫代碼?"

通俗地說,是觀測星星,研究宇宙……需要它。


為什麼說越來越多的天文從業者需要寫代碼?實際上,不僅天文從業者如此,幾乎各行各業的工作者都如此,尤其是與工科理科相關的,"越來越多"體現的是(科學)發展越來越需要技術。

最近這幾年,AI的技術發展達到了新的高潮,學編程,寫代碼都納入國家教育發展體系裡了。小學生學Python,高中生考Python,大學生感覺沒啥關係的專業也學簡單的編程……計算機二級考試更是火的不得了,現在還是自願,過幾年我估計都得像英語四六級一樣強制了!這在以前的中國哪有的事!


天文學是一門 研究宇宙以及宇宙裡的各種天體的發展和結構的科學。它的每一次的大發展幾乎都伴隨著技術的重大革新。當然了,它的每一次突破也會反作用於技術,造福人類,這也是研究感覺和我們沒啥關係的宇宙的一個重大意義。

從伽利略的望遠鏡到今天形式各異,功能齊全的各種探測器,從觀察探測到模擬研究,從內太陽系到太陽系外層空間……哪一樣少了機器語言,彙編,和各式各樣的高級語言的加持能做到的?沒有,所有和計算機有關的技術都無法和代碼撇開關係。

在天文行業,有些你的需要似乎是可以通過像很多企業一樣找個開發單位,給錢讓人家幫你完成。確實,很多無法自力開發的單位就這樣,這也是龐大的程序猿群體存在的需要。但實際上這是有很多麻煩的,對於有些行業更是如此。

別把程序猿像的神通廣大,就說天文學這一門科學,很多你需要的技術會摻雜學科的知識,思維等等。你給程序猿項目難道還要讓他精通天文?或者某些天文思維?別吧,他們很累的,他們也不願意這樣做。



以上的說法結合其他的限制,不是自己懂編程,會寫代碼來的更實在嗎?當然了,天文從業者也不需要有著程序猿那種相對全的能力才能寫出自己的需要,反正你也不是去接各種各行各業的需要需求項目,但懂得更多也不是壞事,畢竟什麼的都是術業有專攻。


通俗科普


因為天文學是一門基於觀測的科學,而我們現在的天文觀測,早已不是簡單的肉眼觀測,而是要利用各個波段的電磁波(現在甚至還包括了引力波)來進行天文觀測。在這個過程中,涉及到各種天文數據的觀測、獲取、處理、分析、數據可視化等等,這些過程中都離不開編程。即使我們不自己親自進行觀測,哪怕只是利用目前國際上常用的恆星、星系天文學數據庫,或者讀取詳細的星表,這些數據的讀取和分析也是需要一定的編程基礎的。

如果希望從事天體力學的研究,研究天體的運動,那麼在研究中常常需要用到數值求解微分方程的方法,這樣的求解過程也離不開編程。如果希望從事天體物理學的研究,那麼有可能需要進行恆星、星系等的模擬,這些模擬同樣也離不開計算機,例如我們熟悉的引力波探測,其中兩個黑洞合併的模式就是通過計算模擬得到、並且跟觀測結果進行對照的。


分享到:


相關文章: