我试图合并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
我将非常感谢任何帮助,想法和暗示。在
谢谢你, 艾萨克
简短回答:MFDataset只能沿文件中变化最慢的维度聚合。在
更长的答案:在netcdf4-python documentation of MFDataset中,它说“打开一个跨越多个文件的数据集,使它看起来像是一个单独的文件。共享同一维度(使用关键字aggdim指定)的文件列表中的变量将被聚合。如果未指定aggdim,则会聚合unlimited。目前,aggdim必须是要聚合的每个变量的最左边(变化最慢)维度。”
所以MFDataset的工作原理是沿着现有文件中变化最慢的维度进行聚合。因此,如果您有一堆文件,它们是同一逻辑数据集在不同时间的快照,并且您希望在时间上进行聚合,则需要在每个文件中都有一个时间维度。如果将数据的时间简单地编码在文件名中,则当前无法使用MFDataset进行聚合。在
相关问题 更多 >
编程相关推荐