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...

January 26, 2013

工欲善其事

當初學IDL 的時候,老師沒有給一份比較實質而且有系統的講義。大多時候是派發作業時,附上了一些 samples,自己就上網找資料加上揣摩修改半路出家,真是痛苦萬分... 後來做研究執行計畫時決定以戰養戰,覺得應該把 IDL 從基本開始學起,儘管網路資源豐富,可是手上還是需要一本好的入門書,以便隨時翻照查閱。因此找到了這一本: Practical IDL Programming ISBN: 1558607005 作者是 Liam E. Gumley http://www.gumley.com/ 這本書真是深入淺出,把基本的 IDL指令都交代的很詳細,而且附上了有用的程式範例與函式庫,讓讀者可以自行應用在自己的程式裡頭。這些程式範例都可以在以上的網頁裡下載得到,是一本很棒很適合IDL 初學者的指引與日後手邊的參考用書。 另外一份對入門者不錯的資料是 Colorado State University (CSU) 大氣科學系老師 Joe Munchak的上課講義: http://www.atmos.colostate.edu/programming/ 總共有五周的講義,加上作業以及作業解答。看完後對於IDL 會有更深一層的...

January 21, 2013

IDL 在地圖上畫風向量 - Wind vector overploting on the map

在7.0 版IDL之前要畫風向量,一般會使用以下幾個 functions: VEL - Draws a velocity (flow) field with streamlines. VELOVECT - Draws a 2D velocity field plot. PLOT_FIELD - Plots a 2D field using arrows. ARROW - Draws one or more vectors with arrow heads. 或者,你也可以用The IDL Astronomy User's Library (NASA)  的 partvelvec.pro 可是他們都不能讓你同時把風向量化在地圖上。如果你要用 ivector 那也要7.0 以後才能用。 Here is a "quick solution" from somebody whom we have to appreciate: map_vect.pro Notice that you might need to modify the reference vector size for your purposes. The figure below represents the composition of 500mb wind speed contour and directions in 1956. The data source is NCEP/NCAR Reanalysis data (NNR) provided by the Physical Science Division, NOAA Earth System Research Laboratory. From...

MPI vs. openMP

MPI (Message Passing Interface) and openMP I am struggling with those two things for a while. Here has several websites having good explanations in Chinese: OpenMP 與 MPI 的差別 中央氣象局超高速運算電腦系統的應...

SST - 老梗

1900 - 2000 年間夏季平均海平面溫度 Mean Sea Surface Temperature (SST) 全球分布。 SST 的分析是做 颱風,ENSO 與 El Niño 的老梗,這張圖比較棘手的地方在近極區(75 度以北或以南)的地區,有時候是海冰,不是有效的海水溫度,需要剔除掉,處理的時候硬是脫層皮;加上360 X 180 網格資料乘上100年, IDL 硬是被我操掛了好幾次... orz 回到圖上,西太平洋,印度洋與墨西哥灣,三大暖區,也是颱風易於生成的地方。 ...

建立紅-白-藍色表 - How to create a R-W-B color table in IDL

在大氣裡面,有很多機會看在天氣圖或是變差圖上到紅白藍三色的色表。我把 David W. Fanning's website talking about "Constructing a Color Table in IDL" 上的簡單色表程式稍微改寫了一下,就完成了我們常用的這個紅白藍色表。這一篇告訴你怎麼建立這個色表;下一篇,我再說明怎麼把它用在IDL的繪圖上面。 (1) 紅白藍矩陣的設定: 第一部份,設定紅色漸層至白色。第二部份則由白色漸深至藍色。 pro color_table_RWB device, decomposed=0 ncolors = 255 steps = 128 scaleFactor = FINDGEN(steps) / (steps - 1) ; Do first half colors (red to white). ; Red vector: 255 -> 0 R = REPLICATE(ncolors, steps) ; Green vector: 255 -> 0 G = 0 + (0 + ncolors) * scaleFactor ; Blue vector: 0 -> 255 B = 0 + (0 + ncolors) * scaleFactor ; Do second 100 colors (whie to blue). ;Red vector: 0 -> 255 R = [R, reverse(0 + (ncolors + 0) * scaleFactor)] ; Green vector: 0 -> 0 G = [G, reverse(0 + (ncolors - 0) * scaleFactor)] ;...

March 01, 2012

GrADS 的網路資源

GrADS 的網路資源 Grid Analysis and Display System (GrADS) GrADS Tutorial (GT) Bin Guan's GrADS Script Libr...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

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