我有一个带有时间序列的netcdf文件,时间变量具有以下典型元数据:
double time(time) ;
time:standard_name = "time" ;
time:bounds = "time_bnds" ;
time:units = "days since 1979-1-1 00:00:00" ;
time:calendar = "standard" ;
time:axis = "T" ;
Run Code Online (Sandbox Code Playgroud)
RI内部想要将时间转换为R日期对象.我通过读取units属性并拆分字符串并使用第三个条目作为我的原点(因此假设间距为"days",时间为00:00等)以硬连线方式实现此目的:
require("ncdf4")
f1<-nc_open("file.nc")
time<-ncvar_get(f1,"time")
tunits<-ncatt_get(f1,"time",attname="units")
tustr<-strsplit(tunits$value, " ")
dates<-as.Date(time,origin=unlist(tustr)[3])
Run Code Online (Sandbox Code Playgroud)
这个硬连线解决方案适用于我的具体示例,但我希望R中可能有一个包很好地处理时间单位的UNIDATA netcdf数据约定并将它们安全地转换为R日期对象?