utilisant comme source: How to concatenate monthly TRMM netCDF files into a single netCDF file using NCO or R on windows 7?Création/concaténer plusieurs dimensions NetCDF dans R
install.packages("ncdf4")
library(ncdf4)
install.packages("abind")
library(abind)
install.packages("RNetCDF")
library(RNetCDF)
install.packages("ncdf.tools")
library(ncdf.tools)
filenames=read.csv('TRMM.filenames.csv',head=F)
filenames=as.character(filenames[,1])
n.lon=4
n.lat=7
NA.matrix=matrix(rep(NA,n.lon*n.lat),nrow=n.lon)
prcp=array(NA.matrix,c(n.lon,n.lat,1))
for (i in 1:length(filenames)){ncdata=nc_open(filenames[i])
+ nc=ncvar_get(ncdata,"precipitation") prcp=abind(prcp,nc)}
prcp=prcp[,,-1]
dim(prcp)
saveRDS(prcp,'TRMM.all.rds')
j'ai pu créer un fichier rds. Cependant, je suis vraiment intéressé à l'enregistrer en tant que fichier nc. J'ai essayé de créer un nouveau fichier NetCDF avec 12 étapes (un pour chaque mois) de dimension temporelle par:
dimx <- ncdim_def("Lon", "degreesE", as.double(-90:-87))
dimy <- ncdim_def("Lat", "degreesN", as.double(14:16))
dimTime <- ncdim_def("Time", "months", 1:12, unlim=TRUE)
dimlist<-list(dimx,dimy,dimTime)
precip.ncvar<- ncvar_def("Precip", "mm/hr", dimlist, -1, longname="Precipitation", prec="float")
precip.nccreate<- nc_create("precip.nccreate.nc", precip.ncvar, force_v4=FALSE, verbose=FALSE)
nc_close(precip.nccreate)
Maintenant, le défi est d'ajouter les données de précipitation pour chaque mois.
Après le premier script, j'ai essayé d'utiliser la fonction ncvar_put
sans succès.
filenames1=read.csv('TRMM.filenames.csv',head=F)
filenames1=as.character(filenames1[,1])
for (i in 1:length(filenames1)){ncdata1=nc_open(filenames1[i])
nc1=ncvar_get(ncdata1,"precipitation")
prcp1=abind(prcp1,nc1)}
n.lon1=4
n.lat1=7
data2d<-(4*7)
for (i in 1:length(filenames1))
ncvar_put(precip.nccreate, precip.ncvar, data2d, start=c(1), count=c(1))
precip.nccreate<- nc_create("precip.nccreate.nc", precip.ncvar, force_v4=FALSE, verbose=FALSE)
Pour que je glissai
Erreur dans ncvar_put (precip.nccreate, precip.ncvar, data2d, start = c (1),: objet 'precip.nccreate' non trouvé
erreur dans nc_create ("precip.nccreate.nc", precip.ncvar, force_v4 = FAUX,: objet 'precip.ncvar' not found
Quoi qu'il en soit, je suppose que je suis juste essayer de trouver un moyen facile de concaténer plusieurs fichiers netcdf en un seul netcdf.
Merci
est-ce lié à python de quelque façon? –
Existe-t-il un moyen de concaténer plusieurs netcdf en un seul netcdf en utilisant python? –
@marie_r Comme je l'ai mentionné dans mes commentaires sur votre question précédente, il existe un moyen de le faire en utilisant python. Note en utilisant la syntaxe @ m'aurait notifié de votre dernier commentaire. Pouvez-vous lancer Python? –