ncks实现了ncdump和nccopy的大部分功能,此外还可以extract, hyperslab, multi-slab, sub-set, and translate 。
ncks可以从输入文件中提取数据,如果指定了地理信息文件(map-file),还可以执行插值操作(regrid),然后将结果输出到netCDF文件,二进制文件,或者屏幕。
ncks可以将netCDF数据以ASCII,CDL,JSON或NcML/XML的形式输出到标准输出,这一点类似ncdump。选项-s(长选项--sng_fmt/--string)允许用户使用C语言字符串的形式格式化输出。
--cdl:格式化为CDL格式--jsn:格式化为JSON格式--trd:格式化为传统格式--xml:格式化为NcML
传统的输出格式更便于寻找想要的结果。
ncks的-a, —cdl, -F, —fmt_val, -H, —hdn, —jsn, -M, -m, -P, —prn_fl, -Q, -q, -s, —trd, -u, -V, —xml 选项可以控制输出格式。
ncks可以从输入文件中提取所选择的变量,并存储到新的文件中。只有变量和坐标可以通过参数指定,全局属性和与变量相关的属性都直接复制到新的文件或输出到屏幕。-c,-C,-v和-x控
制的是要提取的变量。
如果输出文件已经存在,且其维度大小与输入文件一致,ncks将会添加输入文件的变量和属性到输出文件。
ncks的添加功能通常是将输入文件中的原始数据添加到输出文件,如果两个文件的变量名冲突,那么输出文件中的值将被输入文件中的值覆盖。因此,在执行添加操作时,应该备份输出文件。
如果输出文件已经存在,执行ncks命令时会询问用户执行重写/添加/退出操作。
重写操作将创建一个新的文件,原来的文件将被覆盖
添加操作依赖于
ncks数据的变量和属性与已有文件的差别如果属性不冲突,将直接添加到输出文件;如果属性冲突,将使用输入文件的属性重写已有输出文件的属性;如果两个文件的维度不一致,输出文件中可能会创建新的维度。
注意:
ncks的交互式操作在批处理时可能会造成意外,因此可以使用-O和-A选项强制重写/添加。
示例
列出文件变量
这是一个比较复杂的示例,
--trd使用传统格式打印1ncks --trd -m in.nc | grep -E ': type' | cut -f 1 -d ' ' | sed 's/://' | sort提取变量
1 2ncks -v U,V,W wrfout.nc uvw.nc # 可能还会包含一些相关的坐标变量 ncks -C -v U,V,W wrfout.nc uvw.nc # 使用 -C 强制去除坐标变量提取指定时空范围数据
1ncks -d Time,3,10 -d south_north,10,50 -d west_east,50,100 wrfout.nc wrfsub.nc拷贝全局属性
1ncks -A -x in.nc out.nc打印字符串多维数组
1ncks -s '%c' -v fl_nm_arr in.nc # 以固定长度打印字符串多维数组

