在 NCL101Day2 中介紹了netCDF檔案格式的優點,在NCL中非常的方便好用,不但讀取方式簡潔,還能一併附帶變數屬性和維度資訊。因此,本篇示範了如何將變數輸出成一個.nc檔案。
範例 NCL_output_ncFile.ncl 計算了 air.2014.nc 中,模式最底層的年平均氣溫,並將之輸出到 MyOwnNC.nc。
;===== NCL_output_ncFile.ncl =====
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
ncFile = addfile("air.2014.nc","r")
Temp = ncFile->air(:,0,:,:)
meanTemp = dim_avg_n_Wrap(Temp,0)
; 計算年平均
; write out meanTemp to a .nc file
ncFileName = "MyOwnNC"
; 指定檔名
system("/bin/rm -f "+ncFileName+".nc")
; 先強制刪除檔案確保資料無誤
print("Creating... "+ncFileName+".nc")
ncdf = addfile(ncFileName+".nc","c")
; 建立新的.nc檔。"c" 代表 create,前面第五行的 "r" 代表 read。
; 和 plot 的 resources 相同概念,可以指定新檔案屬性
fAtt = True
fAtt@title = "first .nc file created by myself"
fAtt@creation_date = systemfunc("date")
fileattdef(ncdf,fAtt)
; 執行完這一行才把屬性加到檔案中
ncdf->mT = meanTemp
; 和讀檔很類似,等式左邊「->」後面放的是之後會顯示在.nc檔案內的變數名稱
; 等式右邊放的是要存入的變數
print("All Done.")
end
;=====
得到.nc檔後,同樣的可以用 ncl_filedump 檢查其內容。
>>$ ncl_filedump MyOwnNC.nc
Take Home Message
ncdf = addfile( FileName , "c" )
fileattdef( ncdf , FileAtt )
ncdf->VarInNC = VarInScript
沒有留言:
張貼留言