2015年6月24日

陣列 (array) vs 清單 (list)

陣列(array) 和清單(list) 看似十分相似,卻又有一點點不一樣,熟悉陣列與清單的表示法絕對可以大大的增進工作效率!

2015年3月25日

較小的模式輸出檔:addfile v.s. addfiles

無論使用 WRF 模式或其他大氣模式,通常使用者可以決定輸出檔中要包含哪些變數,輸出的頻率 (每小時一筆或每六小時一筆?),還有單一輸出檔要包含幾個時間點 (有時候是限制單一輸出檔的最大容量)。

舉例來說,假設一個模擬實驗的解析度、模擬範圍、輸出的變數全部加起來,每一個時間點的輸出需要 2GB 的儲存空間。如果研究一個溫帶氣旋的生命史,總共模擬了 7 天,每 3 小時輸出一筆資料,總共會有 56 筆 (個時間點) 的資料。此時有兩種選擇:
1. 將這 56 筆資料輸出成一個 .nc 檔,檔案中的變數維度是 var ( nT = 56 , nZ , nY , nX )。
2. 每 3 小時輸出成一個 .nc 檔,總共會有 56 個檔案,檔案中的變數是 var ( 1 , nZ , nY , nX )。

WRF模式輸出的後處理

WRF USERS PAGE 介紹(推薦)了幾款 WRF MODEL GRAPHIC TOOLS,熟悉GrADS的人大概會選用 ARWpost 將模式的輸出檔轉換成 GrADS 可用的 binary 格式和一個相對應的 .ctl 檔。而 NCL 也在這個網頁名單的行列之中。

2015年3月22日

輸出 binary 檔案格式:跨平台應用

在 輸出 .nc 檔案格式 一文中介紹了如何輸出 netCDF 格式,筆者認為是NCL作業平台上檔案輸出格式的最佳選擇,但若輸出檔需要在其他平台上應用 (e.g., Matlab, Fortran, GrADS, GMT, Python, ...),熟悉通用的 binary 格式是必要的。

本篇會示範 NCL - Fortran - Matlab 三者間如何互相讀寫檔案(傳送資料)。

2015年3月19日

輸出 .nc 檔案格式

NCL內建了許多實用的函數,所以不只單單作圖,很多時候直接使用NCL來分析資料十分的方便迅速。而在做科學分析時,有時是為了增加效率(有些分析非常耗時耗費電腦資源),有時是為了偵錯(有些計算非常繁複),需要把計算的結果存下來(輸出),以便之後的作圖或再計算。

2015年3月16日

Day 7 好康盡在NCL官網

NCL 的官方網站
https://www.ncl.ucar.edu

Day 6 增加效率:善用批次功能

編寫 script 檔如果不能善用批次處理 (batch processing),那就真是太浪費自己的大好青春時光了。不光是NCL,這個道理適用於所有的程式編寫。

2015年3月11日

Day 5 常用的 Resources 類別介紹

在作圖的時候最常更動的無非就是標題拉,範圍拉,座標軸拉,等值線密度拉,等等。範例 NCL101-7.ncl 將再多介紹一些常用的 Resources 的設定,雖然無法在一章中將「全部」的功能完整的示範一遍,但每多學幾個,就越能抓到NCL設計上的邏輯,多看一些範例越容易融會貫通或舉一反三,之後搜尋需要的某項設定時會更加的得心應手。

Day 4 疊圖與拼圖:Draw and Frame 的應用

Definition
首先先定義疊圖與拼圖。

何謂疊圖 (composite)?
這裏所謂的疊圖,是指在一張圖上,運用顏色、形狀等方式展現數個不同的場量。舉例來說,可以在一張地面天氣圖上面同時畫上地面氣壓,氣溫,風場,水氣。運用不同顏色的等值線或粗細或塗色,可以將數筆資訊濃縮在一張圖裡面。若學過GrADS,可以知道這是一個在直覺不過的動作,先畫氣壓,再畫氣溫,再畫風場,最後畫水氣,結束。要疊幾張,就同一個步驟重複幾次就可以了。但用NCL做起來可是複雜了幾分...。

2015年3月10日

Day 3 畫圖的基本元素:以全球氣溫分佈圖為例

接續 Day 2 的介紹,這裡使用NCEP Reanalysis 2014年的全球氣溫資料 (air.2014.nc) 示範如何用NCL畫圖並介紹其scrip的基本架構。方式如下:NCL101-3.ncl

2015年3月9日

Day 2 方便的netCDF格式和NCL的變數結構

何謂netCDF?
相較於ascii格式,一般科學資料大多以binary格式儲存,因為可以有效的縮小檔案以利於節省硬碟空間及資料傳輸時間。如果你還不曉得ascii/binary兩種格式的區別,請容我偷吃步的解釋:Windows底下的記事本、Mac底下的TextEdit、或Linux底下的VI能直接打開看得到內容的檔案都是ascii,反之亦然。舉例來說,強制用vi開啟一個binary格式的檔案,會像下面這樣出現亂碼:

2015年3月1日

Day 1 開始使用NCL:第一隻script檔

NCL和眾多其他軟體(eg. Matlab, GrADS)一樣,有兩個基本的模式可以使用:(1) Interactive mode,程式碼一行一行輸入,等電腦跑完一行指令,使用者再輸入下一行。(2) Script mode,將所有程式全部寫在一個文件中,再令NCL去執行這個檔案。Interactive mode的好處是可以監控每一行程式有沒有順利完成,但缺點是當程式越來越複雜時,一行一行指令輸入費時且修改不易。因此一般情況下,都是使用Script mode在NCL上執行各種運算和繪圖。

2015年2月27日

在Mac上安裝NCL

Step 1 安裝 XQuartz
下載網址:http://xquartz.macosforge.org/

Step 2 安裝 gcc 和 gfortran
檢查你的電腦裡是否已預先安裝好gcc和gfortran。方法:在terminal中輸入