Era-промежуточный файл NetCDF с использованием R: неправильное измерение времени

#r #time #extraction #netcdf

#r #время #извлечь #netcdf

Вопрос:

Я загрузил данные о температуре (t2m) из набора данных ERA-Interim в виде файла NetCDF. Эти данные доступны дважды в день с 1 января 1979 года по 31 июля 2016 года:

 1 variables (excluding dimension variables):
        short t2m[longitude,latitude,time]   
            scale_factor: 0.00208082029268055
            add_offset: 258.514370966807
            _FillValue: -32767
            missing_value: -32767
            units: K
            long_name: 2 metre temperature

     3 dimensions:
        longitude  Size:480
            units: degrees_east
            long_name: longitude
        latitude  Size:241
            units: degrees_north
            long_name: latitude
        time  Size:27454   *** is unlimited ***
            units: hours since 1900-01-01 00:00:0.0
            long_name: time
            calendar: gregorian
  

Я смог прочитать долготу и широту, используя код ncvar_get, но при выполнении этого для времени, используя:

 t <- ncvar_get(ncin, "time")
length(t) 
27454 # this should be 37.608(years)*365(days)*2(timesperday)
  

Я получаю:

 head(t)
692508 692520 692532 692544 692556 692568 #hours since 1900-01-01 00:00:0.0

tail(t)
0 0 0 0 0 0 #hours since 1900-01-01 00:00:0.0
  

Затем я разделил строку единиц измерения времени на поля, чтобы получить их как «d-m-y»

 tunits <- ncatt_get(ncin, "time", "units")
tustr <- strsplit(tunits$value, " ")
tdstr <- strsplit(unlist(tustr)[3], "-")
tmonth = as.integer(unlist(tdstr)[2])
tday = as.integer(unlist(tdstr)[3])
tyear = as.integer(unlist(tdstr)[1])
chron(t, origin = c(tmonth, tday, tyear))
realtime <- chron(t, origin = c(tmonth, tday, tyear), format = c("d-m-y"))
realtime <- as.character(realtime)

head(realtime)
"09-01-96" "21-01-96" "02-02-96" "14-02-96" "26-02-96" "09-03-96"

tail(realtime)
"01-01-00" "01-01-00" "01-01-00" "01-01-00" "01-01-00" "01-01-00"
  

Для меня это не имеет смысла, поскольку эти данные доступны с января 1979 года по настоящее время, и как tail (t), так и tail (realtime) сообщают, что некоторые данные относятся к 1900-01-01: t равно нулю 18563 раза. Есть ли что-то, что я делаю неправильно?

Комментарии:

1. перед началом работы вы проверили, действительно ли даты в файле соответствуют тем, которые, по вашему мнению, у вас есть? Попробуйте: cdo showdate file.nc