nces
是针对输入文件/文件的组变量的格点统计,每个文件/组的权重是相同的。V4.3.9之前nces
称为ncea
。nces
执行的是一系列文件/组的平均,每个文件/组的权重是相同的。而ncra
是针对
单个记录维度(比如time
维度)进行统计计算。在每个记录维度记录权重是相同的。
对于科学研究结果来说,文件/组是一个逻辑单元。通常需要创建单独的文件/组存储许多文件/组的统计产品。通过组合大量的试验结果可以减少统计噪声(类似集合预报)。当你想要根据一系列文>件/组得到统计产品时,并且这些输入文件/组的影响是相同的,那么可以使用nces
进行计算。
注意:使用
nces
计算时,应保证输入文件/组的维度大小是相同的。
nces
可以基于两种方式进行计算:
文件集合:默认使用文件集合,即使用
--nsm_fl
或--ensemble_file
指定组集合:
--nsm_grp
或--ensemble_group
指定来进行组集合统计,针对组集合而言,所有的组成员要具有相同的结构,相同的父组(parent group)和嵌套等级(nesting level)。而且要是"叶组”(leaf groups),即不能包含子组。组集合模式中,最终的输出统计默认存储在父组(parent group)中。使用
--nsm_sfx
选项可以创建一个子组,将结果存储在父组中,比如:1
nces --nsm_grp --nsm_sfx='_avg' mdl1.nc mdl2.nc mdl3.nc out.nc
将结果存储在父组名称+’_avg'后缀的子组中。
与ncra
和ncwa
一样,nces
也将坐标变量视为特殊变量。通常假设在所有集合成员中坐标变量是相同的,因此nces
只是简单的将坐标变量拷贝到输出文件。这个对坐标变量进行平均是一样的作用
,因此不会导致时间/精度出现问题。
无论非坐标变量执行什么操作,ncra
和ncwa
只对坐标变量进行线性平均操作。因此,ncra
,ncwa
和nces
都对坐标变量进行平均,其余的算数操作仅作用于非坐标变量,只有线性平均会作用于
坐标变量。
示例:
假设有一系列文件,比如由不同初始扰动所产生的集合预报,每个文件中都包含了相同时间的相同维度的数据,对这些文件求平均
1 2 3 4 5
nces ens_01.nc ens_02.nc ens_03.nc ens_04.nc ens_05.nc ens.nc # 或 nces ens_0[1-5].nc # 或 nces -n 5,2,1 ens_01.nc ens.nc # -n表示文件名按照规律排列,即ens_01.nc 中的01部分,5表示有5个文件,重复部分有2个字符,1表示逐次+1
如果想对部分时空结果进行求平均,可以使用选择选项
1
nces -d Time,0,3 -d south_north,30,50 -d west_east,40,60 ens_0[1-5].nc ens.nc
上述示例以wrf输出结果为例,Time, south_north, west_east为wrf输出结果中的变量维度,表示对这些结果求平均
对组集合进行求平均
假设上述ens_0*文件中包含组成员,比如
/ncep
和/ecmwf
1 2 3
nces --nsm_grp ens_0[1-5].nc ens.nc #对 /ncep 和 /ecmwf 组求平均 nces --nsm_grp --nsm_sfx='_min' --op_typ=min ens_0[1-5].nc ens_min.nc # 求每个组的成员的最小值 nces --nsm_grp -g ncep -v tas -d Time,0,5 ens_0[1-5].nc ens.nc # 求/ncep组指定范围的平均值