Я хотел бы написать файл netCDF с использованием R с "неограниченными" размерами, которые я впоследствии могу расширить.
Вот что я пробовал:
Создать файл netcdf
library(ncdf4)
## define lat, lon time dimensions
lat <- ncdim_def("latitude", "degrees_east", vals = 44.0, unlim = TRUE)
lon <- ncdim_def("longitude", "degrees_north", vals = -88.5, unlim = TRUE)
time <- ncdim_def("time", "days since 0000-01-01", 1:1000)
## define data with these dimensions
x <- ncvar_def("myvar", units = "m2", dim = list(lat, lon, time))
## create, write to, close nc file
nc <- nc_create(filename = "tmp.nc", vars = list(x))
ncvar_put(nc = nc, varid = x, vals = 1:1000)
nc_close(nc = nc)
Я хочу добавить новый вектор в другой lat и lon
## reopen existing file
nc <- nc_open("tmp.nc", write = TRUE)
## define new lat, lon dimensions (keep time dim from above)
lat2 <- ncdim_def("latitude", "degrees_east", vals = 44.5, unlim = TRUE)
lon2 <- ncdim_def("longitude", "degrees_north", vals = -89.0, unlim = TRUE)
## define, write new dataset at new lat lon coordinates
x2 <- ncvar_def("myvar", units = "m2", dim = list(lat2, lon2, time))
ncvar_put(nc = nc, varid = x2, vals = 11:1011)
Я ожидал бы найти две разные широты и долготы
ncvar_get(nc, 'latitude')
ncvar_get(nc, 'longitude')
ncvar_get(nc, 'myvar')
Это показывает, что файл был написан с использованием первого набора значений lat/lon и 'myvar', но не был добавлен с новым набором значений.
Что я делаю неправильно?
Я знаю, что способность иметь несколько неограниченных размеров и добавлять к ним функцию функции netCDF-4. Как это сделать в R?
Я понимаю, что я должен путать "определение измерения" с каким-то другим понятием. Но я немного потерял.