问题描述
我正在尝试使用Linux中的CDO将印度气象局的年温度和降雨量数据从.Grd转换为netcdf。但是,当我将netcdf文件导入R并检查日期时,给定年份的1月1日没有值,而下一年的值或重复日期取决于文件(我具有正确的日期总数)在每种情况下)。我想确保这是一个标签问题,并且顺序正确,而不是转换或基础数据问题。
复制步骤:
-
从http://www.imdpune.gov.in/Clim_Pred_LRF_New/Grided_Data_Download.html#
下载1951年的二进制最高温度文件。 -
根据示例创建带有以下文本的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
cdo -f nc import_binary Maxtemp_MaxT_1951.ctl Maxtemp_MaxT_1951.nc
- 将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导入。
解决方法
根据罗伯特的上述评论,运行
cdo -a setcalendar,standard ifile ofile
在CDO中解决了R导入上的问题