Ich versuche, eine multidimensionale NetCDF-Datei mit dem R-Paket ncdf zu erstellen. Ich arbeite mit klimatischen Tagesbeobachtungen für eine Menge von 1500 Punkten, die Anzahl der Beobachtungen beträgt ~ 18250 für jeden Punkt. Das Problem ist, dass die Struktur der NetCDF Datei (create.ncdf) einnimmt 4 GB und jeder Punkt macht die Größe der Datei um mehr als 3 Gb (put.var.ncdf)Erstellen multidimensionalen NetCDF in R
Dies ist der Code ich verwende:
# 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 und Latvector sind Vektoren, die aus der Matrix mit dem langen und Lat für jeden Punkt genommen. Der Datensatz ist ein Listenformat und für jeden Punkt habe ich eine Liste mit numerischen Werten.
dataset[[1]]=c(0,0,0,9.7,0,7.5,3.6,2.9,0,0.5,....)
Bin ich etwas fehlt oder sollte ich andere Pakete versuchen ??
Was sind die Längen von Longvector und Latvector? Können Sie sie bereitstellen, vielleicht mit einem Aufruf von seq() oder einfach nur Code ausgeben, um sie mit dput() neu zu erstellen. – mdsumner
Bitte bearbeiten Sie die Frage, um die fehlenden Informationen einzuschließen. – mdsumner
würde vorschlagen, die akzeptierte Antwort ncdf4 Lösung zu übernehmen, da ncdf jetzt veraltet ist - die Mehrheit der Software verwendet jetzt netcdf4 Konventionen. –