首页 > 解决方案 > netcdf - CDO monmean

问题描述

我有一个带有每日时间步长的 netcdf 文件,我希望将其转换为每月时间步长。时间格式如下:

    double time(time) ;
            time:standard_name = "time" ;
            time:long_name = "time" ;
            time:bounds = "time_bnds" ;
            time:units = "days since 2000-01-01" ;
            time:calendar = "standard" ;
            time:axis = "T" ;

当我使用命令转换为每月时间步时:

cdo monmean input.nc output.nc

一切正常,只是时间输出很奇怪:

 time = "2000-01-16", "2000-02-15", "2000-03-16", "2000-04-15 12",
"2000-05-16", "2000-06-15 12", "2000-07-16", "2000-08-16",
"2000-09-15 12", "2000-10-16", "2000-11-15 12", "2000-12-16";

我希望用每月的第一天替换每月值上的日期,并在出现的时间删除那些奇数的 12。所需的输出:

 time = "2000-01-01", "2000-02-01", "2000-03-01", "2000-04-01",
"2000-05-01", "2000-06-01", "2000-07-01", "2000-08-01",
"2000-09-01", "2000-10-01", "2000-11-01", "2000-12-01";

任何提示表示赞赏

标签: netcdfcdo-climate

解决方案


cdo --timestat_date first monmean input.nc output.nc

对我有用,我希望它有帮助!它将时间戳放在平均周期的第一步,而默认设置在中间。(如果想要做相反的事情,也有一个--timestat_date最后一个,放在窗口的最后一步)


推荐阅读