为现有的netcdf文件添加无限维度

时间:2017-10-09 17:37:24

标签: python netcdf

我目前有几个带有变量的netCDF4文件" pp"三维:pp(时间,纬度,经度)。每个单独的文件具有一年的每月土壤湿度数据,并且时间维度代表一年中的每个月。 这是p04文件中pp变量的一个示例,它存储2004年的日期:

p04.variables['pp']
Out[56]: 
<class 'netCDF4._netCDF4.Variable'>
int16 pp(time, lat, lon)
    _FillValue: -999.9
    units: mm
    long_name: Total precipitation
    add_offset: 19.0333409628
    scale_factor: -0.000580886924338
unlimited dimensions: 
current shape = (12, 8520, 7320)
filling on

我想添加第四个无限维,以便变量的形状为pp(unl,time,lat,lon),我可以使用MFDataset聚合来自不同年份的多个文件。我曾尝试使用createDimension,但它会删除数据中的所有信息。

我一直在寻找一种方法来添加这个额外的维度,而无需重新编写所有文件。我该怎么办?谢谢!

2 个答案:

答案 0 :(得分:1)

NCO&#39; s ncecat通过创建新的无限制&#34;胶水&#34;来连接文件。尺寸:

ncecat -u unl in*.nc out.nc

答案 1 :(得分:0)

回答可能有点晚了,您是否使用“w”模式编辑文件? 'w' 模式会覆盖所有内容并创建新值,这就是所有现有信息被删除的原因。请使用“r+”模式 - 它将读取和写入现有值/文件信息 - 并且不会创建一个全新的文件。

代替 ds = nc.Dataset(file,mode='w')

使用 ds = nc.Dataset(file,mode='r+')