使用气候数据运算符转换的 netcdf 中的日期错误

Date error in netcdf converted using climate data operator

我正在尝试使用 Linux 中的 CDO 将来自印度气象局的年度温度和降雨数据从 .grd 转换为 netcdf。但是,当我将 netcdf 文件导入 R 并检查日期时,给定年份的 1 月 1 日没有值,并且下一年的值或重复日期取决于文件(我有正确的日期总数在每种情况下)。我想确保这是一个标签问题并且顺序正确,而不是转换或基础数据的问题。

重现步骤:

  1. http://www.imdpune.gov.in/Clim_Pred_LRF_New/Grided_Data_Download.html#

    下载 1951 年的二进制最高温度文件
  2. 根据他们的示例,使用以下文本创建一个 ctl 文件 (Maxtemp_MaxT_1951.ctl):

    DSET Maxtemp_MaxT_1951.GRD
    TITLE 1 degree analyzed grids
    UNDEF 99.9
    XDEF 31 LINEAR 67.5 1
    YDEF 31 LINEAR 7.5 1
    ZDEF 1 Linear 1 1
    TDEF 365 LINEAR 1JAN1994 1DY
    VARS 1
    T 0 99 DAILYTEMP
    ENDVARS
  1. 运行下面在bash生成.nc文件
    cdo -f nc import_binary Maxtemp_MaxT_1951.ctl Maxtemp_MaxT_1951.nc
  1. 将netcdf导入R
    library(raster)
    library(ncdf4)
    
    netcdf_example <- "my_path//Maxtemp_MaxT_1951.nc"
    brick_test <- brick(netcdf_example,varname="t")
    head(brick_test@z)

列出的第一个日期时间是“1951-01-02 23:56:02”,最后一个是“1952-01-01 23:56:02”

根据下面的评论,问题似乎出在光栅导入上(从 CDO 调用时日期显示正确)。另外,如果它是相关的,我在 Linux 中进行转换,然后通过 Dropbox 同步 .nc 文件,然后使用 R 导入 Windows.

根据罗伯特上面的评论,运行

cdo -a setcalendar,standard ifile ofile

在 CDO 中解决了 R 导入的问题