Используя это в качестве источника: How to concatenate monthly TRMM netCDF files into a single netCDF file using NCO or R on windows 7?Создания/конкатенация многомерного NetCDF в 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')
Я был в состоянии создать файл РДС. Тем не менее, мне действительно интересно сохранить его как файл nc. Я попытался создать новый NetCDF файл с 12 шагов (по одному на каждый месяц) измерения времени с помощью:
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)
Теперь задача состоит в том, чтобы добавить данные по осадкам для каждого месяца.
После первого скрипта я попытался использовать функцию ncvar_put
без успеха.
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)
На что я получил
Ошибка в ncvar_put (precip.nccreate, precip.ncvar, data2d, начать = с (1),: объект 'precip.nccreate' не найден
Ошибка в nc_create ("precip.nccreate.nc", precip.ncvar, force_v4 = FALSE,: объект 'precip.ncvar' не найден
во всяком случае, я думаю, я просто пытаюсь найти простой способ объединить несколько файлов netcdf в один netcdf.
Благодаря
Это связано с python в любом случае? –
Есть ли способ, которым я мог бы объединить несколько netcdf в один netcdf с помощью python? –
@marie_r Как я упоминал в своих комментариях к вашему предыдущему вопросу, есть способ сделать это с помощью python. Заметка, использующая синтаксис @, уведомила бы меня о последнем комментарии. Можете ли вы запустить python? –