nces是针对输入文件/文件的组变量的格点统计,每个文件/组的权重是相同的。V4.3.9之前nces称为nceances执行的是一系列文件/组的平均,每个文件/组的权重是相同的。而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’后缀的子组中。

ncrancwa一样,nces也将坐标变量视为特殊变量。通常假设在所有集合成员中坐标变量是相同的,因此nces只是简单的将坐标变量拷贝到输出文件。这个对坐标变量进行平均是一样的作用 ,因此不会导致时间/精度出现问题。

无论非坐标变量执行什么操作,ncrancwa只对坐标变量进行线性平均操作。因此,ncrancwances都对坐标变量进行平均,其余的算数操作仅作用于非坐标变量,只有线性平均会作用于 坐标变量。

示例:

  • 假设有一系列文件,比如由不同初始扰动所产生的集合预报,每个文件中都包含了相同时间的相同维度的数据,对这些文件求平均
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组指定范围的平均值