NCO:使用另一个具有(0 - 1)值的netcdf掩码文件屏蔽netcdf文件



我有两个。nc文件data.ncmask.nc。其中:data.nc包含一个名为tempunmask的变量,而mask.nc包含一个名为tmask的变量中的掩码,(0 - 1)的值。使用NCO,我如何为data.nc文件应用掩码,使零掩码值设置为缺失,而统一掩码值保持不变?

不清楚您希望对掩码做什么。下面是一个常见的过程,使用掩码将实际值替换为缺失值:

ncks -A -v tmask mask.nc data.nc
ncap2 -s 'where(tmask == 0) temp=temp.get_miss()' data.nc out.nc

whereget_miss的文档在手册中

如果temptmask有更多的记录,那么让where()条件对tmask的副本进行操作,该副本已经广播到temp的大小:

ncap2 -s '*big_mask=0*temp+tmask;where(big_mask == 0) temp=temp.get_miss()' data.nc out.nc

要在cdo中执行相同的操作,您可以尝试这样做,在获取产品之前首先将掩码中的零设置为缺失:

cdo setctomiss,0 mask.nc maskm.nc
cdo mul data.nc maskm.nc masked_data.nc

cdo自动重复掩码,使其与数据文件的时间长度相同,称为数据"广播"。

我在这里有一个关于遮罩的youtube视频,作为进一步的指导,以及其他关于暂时广播的材料。

最新更新