我有一个包含 4-D 变量的 netcdf 文件:
variables:
double maxvegetfrac(time_counter, veget, lat, lon) ;
maxvegetfrac:_FillValue = 1.00000002004088e+20 ;
maxvegetfrac:history = "From Topo.115MaCTRL_WAM_360_180" ;
maxvegetfrac:long_name = "Vegetation types" ;
maxvegetfrac:missing_value = 1.e+20f ;
maxvegetfrac:name = "maxvegetfrac" ;
maxvegetfrac:units = "-" ;
double mask_veget(time_counter, veget, lat, lon) ;
mask_veget:missing_value = -1.e+34 ;
mask_veget:_FillValue = -1.e+34 ;
mask_veget:long_name = "IF MYVEG4 EQ 10 AND I GE 610 AND J GT 286 THEN 16 ELSE MYVEG4" ;
mask_veget:history = "From desert_115Ma_3" ;
我想使用变量“mask_veget”作为掩码来改变变量“maxvegetfrac”在特定区域的值,以及其“veget”维度的选择值。为此,我正在使用 ncap2。例如,如果我想将第 5 级 veget 维度的 maxvegetfrac 值设置为 500,其中 mask_veget 等于 6,我会:
> ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,5,:,:) = 500" test.nc
我的问题是,在生成的 test.nc 文件中,maxvegetfrac 已在“veget”维度的第一级修改,而不是第五个。如果我在整个植物维度上运行脚本,我会得到相同的结果:
ncap2 -s "where (mask_veget(:,:,:,:)== 6) maxvegetfrac(:,:,:,:) = 500" test.nc
所以我在某个地方弄错了,但是......在哪里?任何帮助表示赞赏!