您可以使用CDO的屏蔽功能来完成此任务,有关以下答案之外的更多详细信息,您也可以参考我的关于掩蔽使用的视频指南cdo.
第一步是制作一个等效文件,如果 P> 阈值(在您的情况下为 1 毫米/天)则为 1,否则为 0。为此,我们使用“大于或等于常量”gec 函数(如果您愿意,也可以使用 ge="greaterthan"):
cdo gec,1 input.nc mask.nc
(假设输入文件中的单位为毫米/天)。
然后,您可以简单地在您想要统计数据的时间段(月、年等)内对这个掩码进行求和
cdo monsum mask.nc nwetdays_mon.nc
cdo yearsum mask.nc nwetdays_year.nc
当然,如果您想在一行上执行此操作,则可以通过管道来完成此操作:例如
cdo monsum -gec,1 input.nc nwetdays_mon.nc
如果您想计算特定月份的气候,我们可以更进一步。如果您有多年数据集,那么您可以使用精彩的“ymonstat”命令。例如,一旦您计算了上面每月的潮湿天数系列,您就可以计算每个月的平均值
cdo ymonmean nwetdays_mon.nc nwetdays_mon_clim.nc
然后,您可以将该系列与每月气候学进行区分,从而获得该系列中每个月潮湿天数的异常情况
cdo ymonsub nwetdays_mon.nc nwetdays_mon_clim.nc nwetdays_mon_anom.nc
我希望这有帮助!
(ps:我通常总是发现用这种方式直接用 CDO 计算这类统计数据更容易,我很少发现内置的气候函数计算exactly按照我想要的方式进行统计)。