Sto cercando di creare un file NetCDF multidimensionale utilizzando il pacchetto R ncdf. Sto lavorando con osservazioni giornaliere climatiche per un set di 1500 punti, il numero di osservazioni è ~ 18250 per ogni punto. Il problema è che la struttura del file NetCDF (create.ncdf) occupa 4Gb e ciascun punto rende la dimensione del file di aumento di più del 3 Gb (put.var.ncdf)Creazione di NetCDF multidimensionale in R
Questo è il codice che sto usando:
# 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 e Latvector sono vettori presi dalla matrice con la lunga e Lat per ogni punto. Il set di dati è un formato elenco e per ogni punto ho un elenco di valori numerici.
dataset[[1]]=c(0,0,0,9.7,0,7.5,3.6,2.9,0,0.5,....)
Mi manca qualcosa o devo provare altri pacchetti ??
Quali sono le lunghezze di Longvector e Latvector? Puoi fornirli, magari con una chiamata a seq() o semplicemente eseguire il dump del codice per ricrearli con dput(). – mdsumner
Si prega di modificare la domanda per includere le informazioni mancanti – mdsumner
suggerirebbe di spostare risposta accettata soluzione ncdf4 come ncdf ora sta diventando obsoleto - la maggior parte del software che utilizza convenzioni netcdf4 ora. –