python讀取NetCDF - PyNIO
2019-05-04
前言
利用Python,讀取高維度氣象資料時,例如WRF output,或是再分析資料時,常見的格式如:NetCDF-4, GRIB 2, HDF...等,必須引入NCAR開發的特殊套件 - PyNIO。
本文參考官方網站 : https://www.pyngl.ucar.edu/Nio.shtml
進行步驟教學。
1. 引入模組
PyNIO模組 依賴 NumPy模組的部分功能,因此使用PyNIO進行氣象資料讀取時,請先引入此兩項模組。
import numpy as np
import Nio
2. 開啟檔案
PyNIO 開啟檔案的指令為: open_file ,附屬指令為: "w","rw","a","r+" ,這裡不贅述附屬功能,舉例如下:
f = Nio.open_file("wrfout.nc")
必須提醒副檔名"nc"必須加上,其他的附檔名例如"grb"也一樣要加上。
3.關閉檔案
同樣的關閉檔案有以下操作方式
f.close()
這是因為f已經是Nio.open_file("wrfout.nc") ,python是一種OOP語法,所以下標 "."代表導入某一個動作。
因此接下來要對f做任何動作,只需要有下標 "."即可導入行為。
4.調出變數
讀取檔案成功後,接下來希望對某個變數做處理,因此這裡先舉例,如何讀取單一變數的資訊,下一節再繼續說明。
print (f.variables['varName'])
例如要讀取雨水混合比,則寫 "print(f.variables['QRAIN'])",下圖是顯示的結果:
由上至下為:變數名稱、資料格式(浮點數)、檔案大小、維度。
維度包含:時間=1,垂直共34層,南北方向101個網格,東西方向119個網格。
再往下則是座標資訊,即維度。最後則是這個變數的描述。