假设我们有10个these files。这个netcdf数据集有一个名为tmp的变量,它是一个3维的数组:[lon][lat][time]
。现在我如何组合这10个文件来获得一个变量为tmp的文件,其值是组合值的平均值。
我以为我可以做那个ncra(http://nco.sourceforge.net/nco.html#xmp_ncra)但是没有成功。
答案 0 :(得分:0)
您可以使用ncdf
包将10个文件读入R,使用nlon x nlat x time x nfiles
包中的abind
将它们合并为一个大abind
数组,然后使用apply
平均file
维。这一切都假设您有足够的RAM来将这10个数据集加载到内存中,即它们不能太大。
或者,我会看一下CDO,这是一个操作NetCDF文件的命令行工具。可能还有一种方法可以从该工具中获得您想要的内容。这可能是一个更友好的选择。
答案 1 :(得分:0)
CDO解决方案是使用命令ensmean,“ ens”是指跨多个文件的集成操作。因此,用于平均3个输入文件的基本命令为:
cdo ensmean file1.nc file2.nc file3.nc ensemble_mean.nc
显然,输入一长串文件名很无聊,因此最好使用通配符。因此,如果您具有文件名,例如file01.nc,file02.nc等,则可以使用
cdo ensmean file*.nc ensemble_mean.nc
请注意,由于这些命令不知道将有多少个输入文件,因此您不能使用管道过程将此命令与其他CDO操作员结合使用。