Introduction
The NCAR command language (NCL) 由美國國家大氣研究中心(NCAR) 開發,是大氣科學研究中的常用語言,可繪製許多類型的圖及處理絕大部分的資料分析。NCL 亦可搭配 shell script, Unix/Linux command line, Fortran 語言使用,可快速大量的將數值模式模擬的結果圖形化,是相當有用的研究工具。希望藉由此教學課程協助更多學生及研究人員快速熟悉此語言,加速科學資料分析,提升我國科研競爭力。
實體課程由 國家實驗研究院台灣颱風洪水研究中心 舉辦 (2016年暑期班已結束)
此課程的部分內容引用自 NCL 官方提供的投影片,完整的投影片可於官網下載。
線上教材會永久保留(只要提供平台的這家公司沒有倒),未來會根據實體課程上課的情況,陸續增加課程內容,並整理成常見問題集(等我有空時)。有任何使用上的問題可於討論區留言或 email 給老師,有空時會盡量回答。本課程開放給所有人瀏覽,若要使用討論區功能需先加入。
版權聲明:
Q:誰適合學習此語言?
A:大氣科學相關領域之大三以上學生或研究人員,以初學者為主。
Q:上課前需要具備什麼基礎?
A:1. 熟悉 Unix/Linux 作業系統的使用環境,能在不用問人或google的情況下,知道如何查詢及移動檔案、執行程式等。
A:1. 熟悉 Unix/Linux 作業系統的使用環境,能在不用問人或google的情況下,知道如何查詢及移動檔案、執行程式等。
2. 能在工作站環境中熟練的編輯純文字檔案(例如:使用 Emacs or vi/vim 等)。
3. 學過至少一種程式語言( Python, IDL, MATLAB, Fortran, C 等)
4. 具備高三程度英文水準
4. 具備高三程度英文水準
Course schedule:
時間 | 內容 |
9:00~10:30 |
NCL 基本介紹、官網導覽、開始使用NCL NetCDF 資料格式介紹、 NCL Batch script及繪圖基本設定 |
10:40~12:10 |
繪圖練習(等值線圖、不同變數疊圖、圖組) 大量檔案讀取(搭配 shell script、Unix/Linux command line )、統計分析、輸出 NetCDF 檔案 |
12:10~13:30 | 午休 |
13:30~15:00 |
其他資料格式 I/O (純文字、二進位) 繪圖(折線圖、柱狀圖) |
15:10~16:40 |
NCL程式語言(do loops, if statement ) |
16:40~17:10 |
問題與討論 |
Course activities
2019/09/14 更新:
台灣為主權獨立國家,本人堅持台獨路線,中國人不喜歡此聲明者可以不要用這份教材自學,自己的教材自己做。
2019/02/11 更新:
NCL官網公告由於Python快速在科學社群中普及,未來NCL將轉換為以 Python 為基礎的script language。NCL預定會出到6.6.0 版,停在這版不再開發,此版會永久保留並維持原始碼開放給社群開發,所以還是可以繼續使用,老狗不想換也是可以存活的,有技術問題也還是可以問(NCL-talk會活著),但是工程師時間有限所以相關文件不會繼續更新,未來雖然會繼續開發新的 libraries,但是主要提供給Python相關的功能使用,NCL順便用。預定兩年內把目前的NCL功能轉換成 Python,官網會陸續提供相關文件及教學。
我很想建議新手直接開始學習 Python,但是目前短暫測試後覺得,Python 在讀取氣候資料時(如:NetCDF格式)仍不太方便,官網提供的程式範本也仍然非常不足,建議新手可單純先學 NCL,但有空時多多少少學一些 Python,未來轉換過去會比較快。
已有NCL基礎者,目前NCL官網提供了一些轉換到 Python 的初步教學文件可先參考看看。
http://www.ncl.ucar.edu/Document/Manuals/NCL_to_Python/Transition_Guide_NCL_PyNGL.pdf
http://www.ncl.ucar.edu/Applications/NCL_to_Python/
http://www.ncl.ucar.edu/Document/Pivot_to_Python/
-舊的公告-----------------------------------------------------
如果你目前沒有順手的連線軟體(從windows連到工作站),建議先看5.1安裝 Mobaxterm。
如果你有 root 權限,或不幸的你家的 root 沒有先灌好 NCL 6.1.0 以上的版本,請看 5.2 安裝最新版的 NCL。
如果你有 root 權限,或不幸的你家的 root 沒有先灌好 NCL 6.1.0 以上的版本,請看 5.2 安裝最新版的 NCL。
如果你有一點 Linux 使用經驗了,可以試著先強化編輯器(5.3)。
強烈建議不要再用 6.0.0 以下的版本,語法改了不少。
每一個單元都有個別的討論區,可以針對影片提問(可標記影片時間點),其他同學也可以參與。
綜合性的問題在右下角有討論區(需加入課程才可使用)。
-
1.NCL 簡介
-
Read more than 10 minutes 1.1 NCL官方網頁導覽
11:48
-
Read more than 10 minutes 1.2 NCL 初體驗 (exercise 1a)
10:58
-
Read more than 6 minutes 1.3 NetCDF格式介紹
08:19
-
Read more than 10 minutes 1.4 互動式讀取NC檔案(exercise 1b) (download ERSST sample data)
13:04
-
Read more than 10 minutes 1.5 NCL變數格式介紹
12:22
-
Read more than 2 minutes 1.6 建立你的第一個 NCL batch script (read_ERSST.ncl)
03:52
-
-
2.初級繪圖(I)、檔案I/O介紹(I)
-
Read more than 8 minutes 2.1 exercise 2:調整等值線及加上圖片標題
09:55
-
Read more than 10 minutes 2.2 NCL繪圖流程簡介
11:21
-
Read more than 4 minutes 2.3 exercise 3:shading 的設定及區域繪圖
05:13
-
Read more than 9 minutes 2.4 exercise 4:疊圖、虛線設定、副標題設定
10:12
-
Read more than 15 minutes 2.5 常見資料格式、檔案 I/O 介紹
18:36
-
-
3.初級繪圖(II)、檔案 I/O (II)
-
Read more than 9 minutes 3.1 大量檔案讀取 (exercise 5)
10:43
-
Read more than 1 minutes 3.2 匯出 NetCDF 檔案 (exercise 6)
02:05
-
Read more than 1 minutes 3.3 純文字資料 I/O 及統計函數 (exercise 7)
09:35
-
Read more than 3 minutes 3.4 設定 Metadata 及繪製折線圖 (exercise 8)
05:35
-
Read more than 10 minutes 3.5 二進位檔案 I/O (exercise 9)
12:59
-
-
4.NCL 程式語言簡介
-
Read more than 11 minutes 4.1 程式語法簡介 Part I
13:08
-
Read more than 10 minutes 4.2 程式語法簡介 Part II
12:34
-
Read more than 1 minutes 4.3 do-loops 練習 (exercise 5a)
-
Read more than 1 minutes 4.4 if statement (exercise 6a / exercise 7a)
-
Read more than 1 minutes 4.5 在NCL中使用 Fortran 副程式
-
-
5.工作環境設定
-
6.進階繪圖技巧
-
Read more than 1 minutes 6.1 使用高解析度地圖(exercise 10a)
-
Read more than 1 minutes 6.2 利用 shapefile 畫出海岸線、國界、縣市界、河流等 (exercise 10b)
-
Read more than 1 minutes 6.3 高解析度繪圖之海岸線錯位問題(疑難雜症)
-
Read more than 1 minutes 6.4 使用NCL 處理 WRF 資料
-
-
7.新手常見錯誤與問題陸續新增
-
8.NCL官網教材
-
9.Exercise 總表今天的課程透過大量的練習,讓大家逐步接觸到新的函數並重複練習前幾次 exercise 的主題,以下為每個練習的重點整理:exercise 1a: 如何進入NCL互動模式,設定變數,列印變數(數值與attributes),基本計算exercise 1b: 以互動模式開啟 NetCDF 檔案,讀取變數,列印變數(數值),格式轉換,基本繪圖設定exercise 2: 繪圖練習,指定等值線上下限與間距exercise 3: 繪圖練習,shading 及區域繪圖exercise 4: 繪圖練習,兩種變數疊圖exercise 5: 大量讀取檔案,NCL + Unix指令,指定維度計算exercise 5a: 用 do-loops 處理多個檔案exercise 6: 輸出 NetCDF 檔案exercise 6a: 簡單的 if 判斷式exercise 7: 讀取純文字檔案及使用統計函數exercise 7a: if 判斷式的練習exercise 8: 設定 Metadata 及繪製折線圖exercise 9: 讀取二進位檔案,繪製圖組exercise10a: 使用高解析度地圖
exercise10b: 使用 shapefile 畫出海岸線、國界、縣市界等
exercise11:高解析度繪圖時海岸線錯位問題
exercise 12: 在NCL中使用Fortran 副程式