[轉]grads中站點處理和oacres&maskout函數應用心得


SJ 發表於: 2011-1-05 13:22 來源: MNMUC空間

昨兒剛剛幫同事畫了兩張降水圖(不同時間段的),很是費勁,中間碰到若干問題,但好在最后基本達到了滿意的效果,下面把這次畫圖中遇到的問題及解決辦法貼出來,供大家參考或指正:
1,數據處理的問題
   由於micaps的24小時降水資料中,並不是每個時次的文件里的站點個數都是相同的,就更不用提兩個文件里有完全相同的站點了,這樣就給各個站點降水的累加處理造成了極大的困難(如果一開始就有人或專門的機構來做這件事,將大大提高科研人員的工作效率),但本帖不打算過多描述數據處理的情形,因此這個問題就到此為止。
2,站點數據中打網格和maskout的聯系
  降水的站點資料處理完畢並轉成grads能識別的二進制格式后,就需要給站點數據打網格了,這個網格是用於站點資料差值使用的(如果用grads,就要用格點資料),此時就涉及到要打一個什么分辨率的網格了,在這次畫圖過程中,我一共打了兩個全球網格,一個是0.1X0.1(細網格)的另一個是0.5X0.5(粗網格)的。然后按部就班的使用了如下的語句:
  'set mpdset china'                          * 設定一個地圖,用於只畫中國范圍內的物理量
  'define a=oacres(g,tt.2,XXXX)'           * 插值函數,把變量tt插值到網格g上,其中XXXX代表影響半徑
  'define a1=maskout(a,a-8)'               * maskout(n1,n2)里第一個變量n1是我們要畫的物理量,第二個變量n2的意思是只畫當其值大於零時的物理量n1,         
                                                 * 當然n1和n2是一一對應的,而這個例子中的意思是,只畫物理量a的值大於4的部分
  'define aa=smth9(a1)'                      * 平滑函數

  'run province-basemap china aa'          * 只畫中國范圍內物理量

  下面通過格點的分辨率-2種,和oacres中的影響半徑做組合實驗:

  (1)粗網格+XXXX(50,30,20,10,5,1)
       見圖一
  (2)細網格+XXXX(20,10,5,1)
       見圖二
  (3)細網格+XXXX(50,30,20,10)
       見圖三
  (4)粗網格+XXXX(50,30,20)50是grads中默認最大的數值
       見圖四
  從這四張圖中,可以看到比較大的差別,這也是我畫圖時思考的一個順序。
  首先,我用的是選擇1,畫出圖后我發現邊緣極不光滑,有明顯的馬賽克的痕跡,此時我就想,如果我把網格打細點,馬賽克的大小會不會縮小,邊緣就會相應光滑點呢;於是,我就是用了選擇2,效果還是顯著的,但是又出現個問題,就是圖中出現很多一個圓一個圓的色斑,然后我就想到是不是我的影響半徑設置過小導致的;接着,我就使用了選擇3,並最終得到了比較滿意的結果。這張圖是08年南方冰凍雨雪災害期間的一個降水累積情況。

  結論:
  1,maskout的作用有點類似cmax或cmin,但作用覺得比后兩種更大,當然需靈活運用才行。
  2,maskout針對的是一個格點一個格點來做的,因此,如果想使其消隱后的格點空白不明顯,可以選擇打一個分辨率較高的網格。
  3,oacres中插值函數的影響半徑選擇比較重要,有時需要多調試幾次,然后選擇最好的一種。

P.S.:圖四是我為了寫這篇帖子另畫的一張圖,虧了當時直接從選擇1跳到選擇2,沒有嘗試這種解決方法,偏差過於巨大了;-)
P.P.S.:這是我用來畫中國變量的相應數據文件和gs http://www.mnmuc.org/thread-568-1-1.html


0.5-rain-10-5-1.gif


0.1-rain-20-10-5-1.gif


08-rain.gif


0.5-rain-50-30-20.gif


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM