在python中使用MFDataset组合netcdf文件

2024-06-02 13:34:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图合并netcdf文件,但它不断显示 “文件”CBL_绘图.py,第11行,在f=MFdataset(fili)文件中实用工具.pyxnetCDF4.MFDataset中的第274行。init(netCDF4.c:3822)IOError:master dataset THref_11:00.nc没有聚合维度

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

第64个参考值(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

我将非常感谢任何帮助,想法和暗示。在

谢谢你, 艾萨克


Tags: 文件pyimportref绘图npnetcdfnetcdf4
1条回答
网友
1楼 · 发布于 2024-06-02 13:34:06

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

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

所以MFDataset的工作原理是沿着现有文件中变化最慢的维度进行聚合。因此,如果您有一堆文件,它们是同一逻辑数据集在不同时间的快照,并且您希望在时间上进行聚合,则需要在每个文件中都有一个时间维度。如果将数据的时间简单地编码在文件名中,则当前无法使用MFDataset进行聚合。在

相关问题 更多 >