現行的天氣預報系統是基於一個什麼演算法?
最近突然對於天氣預報的興趣很感興趣,想問問天氣預報系統是基於哪個或哪些演算法呢? 預報計算時其中涉及的影響參數有哪些? 順帶問一下學氣象的同學,你們學一些什麼?
本人水平有限,無法針對問題一一解答,只能把自己所了解的東西告訴題主進行交流學習。
現在的天氣預報很大一部分是依賴於數值天氣預報,各個地區都有自己做的數值模式,比如EC(歐洲中心)、NCEP(美國)、日本、德國,我國的T213,T639等等。這些數值模式都是基於一系列的方程組構建的:
數值模式就是將地球表面格點化,然後將各氣象要素的值進行插值運算,得到未來某一個時刻的值。由於大氣運動不單單就憑以上幾個公式所能描述,所以在模式運算中存在誤差,而且會被累加,所以現階段天氣預報還是離不開預報員的訂正,所能預報的時間長度也是有限的。另外,由於數值預報的空間解析度取決于格點的大小,這就必須有更多的觀測站點來獲取天氣資料,而且格點越小,一些小的系統和擾動也就必須考慮到模式中,從而增加了建立模式的難度。總之,數值天氣預報模式是一個非常複雜的問題,我國現階段數值模式的水平跟其他發達國家相比差距還很大,中國氣象局也在大力發展我國自己的數值天氣預報模式,我國數值天氣預報業務任重道遠。
本人專業是大氣科學(氣候資源方向),本科。我們開的課程:專業課主要有《天氣學原理》、《動力氣象》、《氣候學》、《數值天氣預報》等(一般還有《大氣物理》,但我們專業偏氣候,那時候沒開這門課),專業基礎課《大學物理》、《高等數學》、《計算方法》、《概率統計》、《流體力學》、《熱力學》等,還有計算機課:C語言,Fortran(氣象專業計算編程應用較多),Grads(氣象繪圖軟體)。氣象專業涵蓋的東西比較多,數學、物理、化學、計算機,真正要成為一名合格的氣象工作者需要學習的東西非常的多,而要對數值模式有更大的突破,更是需要有一個良好的數學基礎。
數值天氣預報模式所要考慮的問題相當複雜,了解有限,試著把自己知道的說一下。
賀科的答案中描述了一個簡單的向量形式的大氣運動基本方程,但是在實際的模式應用中,用的可能並不是這個形式的方程組。學過大氣科學的人應該都知道,我們有通過各種近似得到的各種各樣的方程組,比如准地轉方程組,原始方程組等等。同時,為了讓我們的天氣預報模式具有更好的性質。同時,受制於計算能力和大氣運動的性質,我們需要過濾掉一些傳播迅速的波,比如聲波。同時,為了做出天氣預報,我們不僅需要大氣的動力和熱力,同時還需要考慮海洋,陸地,大氣成分等等信息。
對方程組進行離散化的方法主要有三種:譜方式(Spectral Method),有限差分 (Finite Difference)和有限元(Finite Element)。
比如:
ECMWF的模式(CY41R1 Official IFS Documentation)採用了譜方法,具體離散化過程見鏈接文檔。
除了以上動力過程在模式中的體現,很多無法被格點表現的物理過程需要通過參數化來實現,包括邊界層,對流過程,雲等等。而物理過程和大氣動力模式的耦合,大氣模式與海洋,路面等模式的耦合也是天氣預報模式需要面對的挑戰。
目前由於天氣預報的時效性要求,數值天氣預報模式要求其演算法的效率高。受限於計算機性能,並行計算的效率影響了模式mesh的選取,計算方法的選用等各個方面。天氣難道沒有用混沌學非線性動力學演算法嗎
別談太多的偏微分方程,積分方案,物理過程方案。其實你就可以猜猜嘛!
推薦閱讀:
※在機器學習模型的訓練期間,大概幾十分鐘到幾小時不等,大家都會在等實驗的時候做什麼?
※為什麼同樣是解決一個問題,別人就能想出演算法,而我卻絞盡腦汁,百般嘗試也不得其法?
※蒙特卡羅演算法是什麼?
※有哪些令人拍案叫絕的演算法?
※大公司筆試面試有哪些經典演算法題目?