Showing posts with label GrADS. Show all posts
Showing posts with label GrADS. Show all posts

February 01, 2013

GrADS的資料結構

GrADS 主要就是由 一個或一組 binary 格式的資料檔(data)與一個(或一組)ASCII 格式的控制檔(contorl file) 類似檔頭 (Header)的功用,描述與指示這組資料的基本資訊。基本上資料結構在 GrADS 的官網上就說的很詳細了,我硬是把他畫了一張圖,讓大家可以比較容易清楚明白,
由GrADS 產生出來或是由其他程式產生出來讓GrADS可讀的資料應如何排列 -- 基本上是為下一篇 IDL output to GrADS binary做準備。

當 GrADS 讀取資料時,他是以 X (通常是經度, Longitude)- Y (通常是緯度, Latitude) 同時讀取,稱為"一筆"資料。X軸由左而右(0 度 - 360度),Y 軸由下而上(南緯90度 - 北緯90度)。如果這筆資料有垂直向則加上 Z 軸,這樣就是一筆3D資料。資料寫成矩陣 (array) 的形式就是: data(X, Y, Z)
如果時間軸的話,再加上時間 (T),那資料的arry 就成了: data(X, Y, Z, T)。

以上應該還算好理解,如果這筆資料有兩個以上變數(Var)各有X, Y, Z呢?
像第一張圖所標示的,GrADS 的處理原則是在同一時間內,先把第一個時間內(T1)的第一個變量(Var1)X, Y, Z處理完,再處理第二變量(Var2)的 X, Y, Z...,直到第N個變量(Var N)的X, Y, Z都處理完。資料的arry 寫成 data(X, Y, Z, Var)。

(1) 單一時間內,GrADS 處理多種變量(Vars)的順序

如果有時間軸的話,就如上規則先處理第一個時間(T1)的變量,再繼續讀第二個時間(T2)的第一個變量(Var 1),直到Var N。
然後再處理第三個時間...直到第 N個時間,第二張圖所示。所以他的變量的arry就是 data(X, Y, Z, Var, T)。

較新版本的GrADS,還加上另一維度 - 也就是 ensemble (E, 系集合),如果前面的五維不夠用的話,可以在加上這第六維,
通常用於預報數據除了實際初始時間 (T),再加上預報時間(Lead Time)的情況。詳細ctl 文件維度 E 的寫法,請看GrADS 官網說明。
 
(2) 加上系集合與時間維度後,GrADS 處理數據的規則

瞭解了GrADS binary 的資料結構,我們就可以很輕鬆地用 Fortran 、IDL或是Matlab 等軟體讀取或產生這樣的檔案,不但同時可以讓 GrADS 的使用者使用,也可以讓我們在處理數據時,第一時間快速地畫出圖,檢驗一下我們所下的數據對還是不對,達到充分運用兩套工具,以增進我們工作效能的目的。

March 01, 2012

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Blogger Theme by Lasantha - Premium Blogger Templates | Affiliate Network Reviews