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



我正试图在Linux中使用CDO将印度气象局的年度温度和降雨量数据从.grd转换为netcdf。然而,当我将netcdf文件导入R&检查日期,没有给定年份的1月1日的值&根据文件的不同,可以是下一年的值,也可以是重复的日期(在每种情况下,我都有正确的日期总数(。我想确保这是一个标签问题;排序是正确的,而不是转换或基础数据的问题。

复制步骤:

  1. 从下载1951年的二进制最高温度文件http://www.imdpune.gov.in/Clim_Pred_LRF_New/Grided_Data_Download.html#

  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 for Windows导入。

根据Robert上面的评论,运行

cdo -a setcalendar,standard ifile ofile

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

最新更新