Я пытаюсь создать многомерный файл NetCDF с использованием пакета R ncdf. Я работаю с климатическими ежедневными наблюдениями за набор в 1500 пунктов, количество наблюдений составляет ~ 18250 для каждой точки. Проблема состоит в том, что структура файла NetCDF (create.ncdf) занимает 4Gb и каждая точка делает размер файла увеличение более чем на 3 Гб (put.var.ncdf)Создание многомерного NetCDF в R
Это код я использую:
# Make a few dimensions we can use
dimX <- dim.def.ncdf("Long", "degrees", Longvector)
dimY <- dim.def.ncdf("LAT", "degrees", Latvector)
dimT <- dim.def.ncdf("Time", "days", 1:18250, unlim=FALSE)
# Make varables of various dimensionality, for illustration purposes
mv <- -9999 # missing value to use
var1d <- var.def.ncdf("var1d", "units", dimX, mv,prec="double")
var2d <- var.def.ncdf("var2d", "units", list(dimX,dimY), mv,prec="double")
var3d <- var.def.ncdf("var3d", "units", list(dimX,dimY,dimT), mv,prec="double")
# Create the test file
nc <- create.ncdf("writevals.nc", list(var1d,var2d,var3d))
# !!Creates a nc file with + 4 Gb
# Adding the complete time series for one point (the first point in the list of the dataset)
put.var.ncdf(nc, var3d,dataset[[1]], start=c(Longvector[1],Latvector[1],1), count=c(1,1,-1))
Longvector и Latvector векторы взяты из матрицы с длинным и Шир для каждой точки. Набор данных - это формат списка, и для каждой точки у меня есть список числовых значений.
dataset[[1]]=c(0,0,0,9.7,0,7.5,3.6,2.9,0,0.5,....)
Я что-то упустил или должен попробовать другие пакеты?
Какова длина длинного и латектора? Можете ли вы предоставить их, возможно, с вызовом seq() или просто кодом дампа, чтобы воссоздать их с помощью dput(). – mdsumner
Пожалуйста, отредактируйте этот вопрос, чтобы включить недостающую информацию. – mdsumner
предложит переносить принятое решение ncdf4 с принятым ответом, поскольку ncdf теперь устаревает - большая часть программного обеспечения, использующего соглашения netcdf4. –