【发布时间】:2016-10-19 19:13:56
【问题描述】:
将此作为来源:How to concatenate monthly TRMM netCDF files into a single netCDF file using NCO or R on windows 7?
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')
我能够创建一个 rds 文件。但是,我真的很想将它保存为 nc 文件。我尝试通过以下方式创建一个具有 12 个步骤(每个月一个)时间维度的新 netCDF 文件:
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, start = c(1), : 找不到对象“precip.nccreate”
nc_create 中的错误(“precip.nccreate.nc”,precip.ncvar,force_v4 = FALSE,:找不到对象 'precip.ncvar'
无论如何,我想我只是想找到一种简单的方法将多个 netcdf 文件连接到一个 netcdf 中。
谢谢
【问题讨论】:
-
这与python有什么关系吗?
-
有没有办法可以使用 python 将多个 netcdf 连接成一个 netcdf?
-
@marie_r 正如我在 cmets 中关于您之前的问题所提到的,有一种使用 python 的方法。注意使用 @ 语法会通知我你最后的评论。你会运行python吗?
-
@ericbridger 当然可以。你能告诉我怎么用python来做吗?
标签: python r concatenation netcdf netcdf4