python中使用MFDataset合并netcdf文件

Isa*_*aac 0 python netcdf

我想的NetCDF文件合并,但它contifuously显示“文件”CBL_plot.py“,第11行,在F = MFDataset(菲力)文件”utils.pyx“,线路274,在netCDF4.MFDataset。INIT(netCDF4.c :3822) IOError:主数据集 THref_11:00.nc 没有聚合维度。”

所以,我只检查了一个netcdf文件,一个netcdf文件的信息如下:

float64 th_ref(u't',) 无限维度 = () 当前大小 = (30,)

看起来没有聚合维度。但是,我想合并那些 netcdf 文件,而不是一一使用。有没有办法创建聚合维度来使这个 MFData 集工作?

下面是我使用的python代码:

    import numpy as np
    from netCDF4 import MFDataset
    varn = 'th_ref'
    fili = THref_*nc'
    f    = MFDataset(fili)
    Th  = f.variables[varn]
    Th_ref=np.array(Th[:])
    print Th.shape
Run Code Online (Sandbox Code Playgroud)

我将非常感谢任何帮助、想法和提示。

谢谢你,艾萨克

Ric*_*ell 5

简短回答:MFDataset 只能沿文件中最慢的变化维度聚合。

更长的答案:在MFDataset 的 netcdf4-python 文档中,它说“打开跨越多个文件的数据集,使其看起来好像是一个文件。共享相同维度的文件列表中的变量(用关键字 aggdim 指定)聚合。如果未指定 aggdim,则聚合无限制。目前,aggdim 必须是要聚合的每个变量的最左侧(变化最慢)维度。”

因此 MFDataset 的工作原理是沿现有文件中最慢的变化维度进行聚合。因此,如果您有一堆文件是同一逻辑数据集在不同时间的快照,并且您希望及时聚合,则需要在每个文件中都有一个时间维度。如果只是将数据的时间编码在文件名中,目前还没有办法使用MFDataset进行聚合。