目录
函数addfile和addfiles
创建NetCDF文件
函数addfile和addfiles
f = addfile(filename, status)
当status为"c",即创建一个新文件时,如果同路径下已经存在同名文件,则会出现报错信息
对于此情况,须在使用函数addfile前将同名文件删除,可通过函数systemfunc调用Linux命令rm实现
filename = "dataT.nc"
systemfunc("rm -f"+filename)
g = addfile(filename,"c")
当用户需要一次读入多个文件时,则使用函数addfiles,例如:
list_of_files = systemfunc("ls ./*.nc")
file_list = addfiles(list_of_files, status)
在此操作后,可通过[:]读取列表中多个文件的同一个变量
t = f[:]->TEMP
注意,NCL有两种方式读取同一个变量,分别是“cat"和"join”
默认是cat方式,若采用join方式,则要求所有文件中的同名变量数组结构必须相同
ListSetType(f, "join")
x = f[:]->TEMP
同时,函数addfiles打开多个文件后,也可读取某些指定文件中的变量。例如:用户可能需要从列表变量中每隔一个文件读取变量:
T_sec = f[0::2]->T
创建NetCDF文件
fin = addfile("tem_C.nc","r")
fout = addfile("tem_K.nc","c")
filedimdef(fout, "time", -1, True) ; 定义文件中的"time”维大小不固定
tK = fin->tsurf
tC = tK
tC = tK-273.15
tC@units = "degC";--输出变量tC至文件fout中,并将该新写入的变量命名为tc
fout->tc = tC