gpt4 book ai didi

r - 如何在 Windows 7 上使用 NCO 或 R 将每月的 TRMM netCDF 文件连接成单个 netCDF 文件?

转载 作者:行者123 更新时间:2023-12-01 13:41:27 24 4
gpt4 key购买 nike

我下载了1998-2016年的netCDF格式的TRMM月降水率,所以大约有200多个文件。这些文件的名称是3B43.19980101.7.HDF.nc 3B43.19980201.7.HDF.nc 3B43.19980301.7.HDF.nc , 等等。
我想将所有这些文件连接成一个 netCDF。我已经尝试使用 NCO 运算符“ncrcat”,它应该能够沿着记录维度连接很长的一系列文件,在这种情况下是时间,但到目前为止还没有运气。我一开始只尝试了简单的 2 个文件
ncrcat -O -h 3B43.19980101.7.HDF.nc 3B43.19980201.7.HDF.nc out.nc
得到了

ERROR: no variable fit criteria for processing



所以我试过了
ncks --mk_rec_dmn time 3B43.19980101.7.HDF.nc TD.3B43.19980101.7.HDF.nc
ncks --mk_rec_dmn time 3B43.19980201.7.HDF.nc TD.3B43.19980201.7.HDF.nc

我又试了一次
ncrcat -O -h TD.3B43.19980101.7.HDF.nc TD.3B43.19980201.7.HDF.nc out.nc

仍然有同样的错误

ERROR: no variable fit criteria for processing



有没有更简单的方法来处理 200 多个文件?我可以遵循的脚本?我对这一切都很陌生,所以请保持温柔。

任何帮助将不胜感激。我正在使用 Windows 7 x86。

最佳答案

在 R 中,您可以通过读入所有数据,组合成一个大型 3d 数组 (latxlonxtime) 来实现这一点。例如,array[,,1] 将是 1998 年 1 月的 latxlon 网格。然后可以将其保存为 .rds 格式以供在 R 中进一步使用,或保存为 netCDF 文件,我不会介绍,但有在线将 R 数组保存为 .nc 文件的教程。

首先,制作一个 .csv 文件,其中包含您下载的所有文件名的单列。一种简单的方法是 ctrl-C 将在终端中键入“ls”的输出放入 Excel 工作表中。下面的代码一个一个地读入这些文件,将每个文件添加到数组中。

library(ncdf4)
library(abind)
filenames=read.csv('TRMM.filenames.csv',head=F) #read in filenames
filenames=as.character(filenames[,1]) #convert to 'character' format

n.lon=192 #input the correct #'s here, must be the same for all files
n.lat=94

NA.matrix=matrix(rep(NA,n.lon*n.lat),nrow=n.lon) #used to initialize
prcp=array(NA.matrix,c(n.lon,n.lat,1)) #n.lonxn.latx1 array of NA's to initialize
for (i in 1:length(filenames)){
ncdata=nc_open(filenames[i]) #read in file i, assuming files are in same location as filenames.csv/your current working directory
#ncdata=nc_open(paste(data.dir,filenames[i],sep="")) #if your data is in another directory than the filenames.csv file, you could read it in with this line instead
nc=ncvar_get(ncdata,"precip") #check the .nc files to see what the variable name actually is; this reads in the variable "precip"
prcp=abind(prcp,nc)
}
prcp=prcp[,,-1] #remove the NA.matrix used to initialize

dim(prcp) #check that the lonxlatxtime dimensions make sense
saveRDS(prcp,'TRMM.all.rds') #save as .rds file, or proceed to save it as .nc file, which takes a bit more work

关于r - 如何在 Windows 7 上使用 NCO 或 R 将每月的 TRMM netCDF 文件连接成单个 netCDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881171/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com