一组netcdf文件中的平均字段,每个文件的大小均相同,以R为单位

问题描述 投票:2回答:2

假设我们有10个these files。此netcdf数据集具有一个名为tmp的变量,它是一个3维数组:[lon][lat][time]。现在,我如何将这10个文件组合在一起,以得到一个带有变量tmp的文件,其值是组合值的平均值。

我以为我可以做那个ncra(http://nco.sourceforge.net/nco.html#xmp_ncra),但没有成功。

r netcdf cdo-climate
2个回答
1
投票

您可以使用ncdf包将10个文件读入R,使用nlon x nlat x time x nfiles包中的abind将它们组合成一个大的abind数组,然后使用apply求平均值[C0 ] 尺寸。所有这些都假设您有足够的RAM将这10个数据集加载到内存中,即它们不能太大。

或者,我来看看file,它是用于操作NetCDF文件的命令行工具。也许还有一种方法可以从该工具获得所需的东西。这可能是对内存更友好的选项。


0
投票

CDO解决方案是使用命令ensmean,“ ens”是指跨多个文件的集成操作。因此,用于平均3个输入文件的基本命令为:

CDO

显然,输入一长串文件名很无聊,因此最好使用通配符。因此,如果您具有文件名,例如file01.nc,file02.nc等,则可以使用

cdo ensmean file1.nc file2.nc file3.nc   ensemble_mean.nc

注意,由于这些命令不知道会有多少个输入文件,因此您无法使用管道过程将此命令与其他CDO操作员结合使用。

© www.soinside.com 2019 - 2024. All rights reserved.