我正在尝试组合netcdf文件,但它会连续显示 “文件”CBL_plot.py“,第11行,f = MFDataset(fili)文件”utils.pyx“,第274行,在netCDF4.MFDataset中。 init (netCDF4.c:3822)IOError:主数据集THref_11:00.nc没有聚合维度。“
所以,我只检查了一个netcdf文件,netcdf文件的信息如下:
float64 th_ref(你不是,) 无限尺寸=() 当前大小=(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
我将非常感谢任何帮助,想法和暗示。
谢谢你, 艾萨克
答案 0 :(得分:3)
简短回答:MFDataset只能汇总文件中最慢的变化维度。
更长的答案:在netcdf4-python documentation of MFDataset中说出"打开跨多个文件的数据集,使其看起来好像是一个文件。共享相同维度(使用关键字aggdim指定)的文件列表中的变量将被聚合。如果未指定aggdim,则会聚合无限制。目前,aggdim必须是要聚合的每个变量的最左边(最慢变化)维度。"
因此,MFDataset通过聚合现有文件中最慢的变化维度来工作。因此,如果您有一堆文件在不同时间是同一逻辑数据集的快照,并且您想要及时聚合,则需要在每个文件中都有时间维度。如果数据的时间只是在文件名中编码,则目前无法使用MFDataset进行聚合。