NCO
NCO提供三種方式對數據求平均,分別是nces(舊ncea)、ncwa、ncra,三者功能是有差別的。
nces
nces提供變量的格點統計功能(包括但不限於平均),適用於任意數目的輸入文件或者輸入組中的每一個文件。每一個文件或者組都默認有同樣的權重。它與ncra不同,ncra是只用於記錄軸的平均(如time),在每一個文件的每一個記錄軸平均地加權。
文件或組是許多科學研究結果的組織邏輯單元。 通常,人們希望生成一個文件或組,該文件或組是許多單獨文件或組的統計產物(例如,平均值)。 這可能是通過組合大量實驗的結果來減少統計噪聲,或者可能只是目標是從平均狀態計算異常的過程中的一個步驟。 無論如何,當希望生成一個文件的統計屬性受所有輸入影響的文件時,就使用nces。
可以用‘--nsm_fl’ 或 ‘--ensemble_file’來指定文件集合,或者用‘--nsm_grp’ or ‘--ensemble_group’來指定組集合,我理解這個組集合就是多個文件夾中的文件,而文件集合是一個文件夾下的文件。默認情況下,組集合模式下的輸出統計信息存儲在父組中。 如果集合成員為/cesm/cesm_01和/cesm/cesm_02,則計算出的統計信息將位於輸出文件的/cesm中。 '--nsm_sfx'選項指示nces將輸出存儲在通過將后綴附加到父組名稱而創建的父級的新子組中,例如,'--nsm_sfx ='_ avg'將結果存儲在輸出組中 /cesm/cesm_avg
nces --nsm_grp mdl1.nc mdl2.nc mdl3.nc out.nc
nces --nsm_grp --nsm_sfx='_avg' mdl1.nc mdl2.nc mdl3.nc out.nc
與ncra和ncwa一樣,nces將坐標變量(如lat、lon)視為特例。 假定所有集合成員中的坐標變量都相同,因此nces只需將出現在集合成員中的坐標變量直接復制到輸出文件中。 這與在整個集合中平均坐標變量具有相同的效果,但不會產生平均它們所造成的時間或精度損失。 ncra和ncwa允許僅通過線性平均運算處理坐標變量,而不管對非坐標變量執行的算術運算類型如何。 因此,可以說三個算子(ncra,ncwa和nces)都平均坐標變量(即使nces簡單地復制了它們)。 所有其他要求的算術運算(例如,最大化,平方根,RMS)僅應用於非坐標變量。 在這些情況下,將返回坐標變量的線性平均值。
平均將不可避免設計到大量文件,怎么告訴NCO想要指定的文件呢?有三種辦法,分別是
CDO
cdo fldmean
即對field求平均,field指的是變量的一個水平層。比如對全球表面氣溫求全球平均,就可以用cdo fldmean,輸入是個空間的二維數組,輸出是一個值。
cdo fldmean TS.nc TSmean.nc
ncl
dim_avg_n(Var,Dim)
對變量Var的指定維度Dim求平均,這個大家都很熟悉,不再贅述。
wgt_areaave(q,wgty,wgtx,opt)
類似於cdo fldmean,對一個區域求加權平均。比如經緯度格點的面積會隨着緯度的變化而變化,所以這時求區域平均時需要加權。
q為要被平均的數據;wgty為y方向上的權重,wgtx為x方向的權重;當opt為0時,則用所有有值的點進行平均計算,當opt為1時,則若區域內有missing value時,便不進行平均計算,而把結果設為q@_FillValue。