我想使用R编写一个带有“无限”维度的netCDF文件,以便稍后可以扩展。
这是我尝试过的:
创建一个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)
我想在不同的纬度和经度处添加一个新的向量
## 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')
这些显示该文件是使用第一组纬度/经度和'myvar'值编写的,但未附加新的值集。
我错在哪里了?
我知道可以在netCDF-4中具有多个无限维度,并且可以添加到这些维度的功能。我如何在R中实现这一点?
我意识到自己必须将“尺寸定义”与其他概念混为一谈。但我有点迷失方向。