当我想用python在现有的netcdf文件上添加新组时,我很难过。 MWE适用于我的机器。
MWE
import os
import numpy as np
from scipy.io import netcdf
from netCDF4 import Dataset
try:
os.remove('test.nc')
except OSError:
pass
mydata = np.linspace(1,30,30)
g=Dataset('test.nc','w',format='NETCDF4')
g.description = 'The data in this file was created for a test'
g.close()
#Do stuff
g=Dataset('test.nc','r+',format='NETCDF4')
g1 = g.createGroup('grp1')
g1.createDimension('dim', len(mydata))
ncdata = g1.createVariable('data1', 'f8', ('dim',)); ncdata[:] = mydata
ncdata = g1.createVariable('data2', 'f8', ('dim',)); ncdata[:] = mydata
g.close()
#Do stuff
g=Dataset('test.nc','r+',format='NETCDF4')
g1 = g.createGroup('grp2')
g1.createDimension('dim', len(mydata))
ncdata = g1.createVariable('data1', 'f8', ('dim',)); ncdata[:] = mydata
ncdata = g1.createVariable('data2', 'f8', ('dim',)); ncdata[:] = mydata
g.close()
但是,我无法使用ncview
打开我的文件,相反,我得到了
Ncview 1.93g David W. Pierce 2009年2月24日 http://meteora.ucsd.edu:80/~pierce/ncview_home_page.html版权所有(C) 1993年至2009年,David W. Pierce Ncview绝对没有 保证;有关详细信息,请键入
ncview -w'. This is free software licensed under the Gnu General Public License version 3; type
ncview -c'对于 再分配详情。找不到可显示的变量!
它说no displayable variables found!
,但通过ncdump -h test.nc
我能够看到以下几行;
netcdf test {
//全局属性: :description ="此文件中的数据是为测试而创建的。 ;
组:grp1 {dimensions: 昏暗= 30;变量: double data1(dim); double data2(dim); } // group grp1
组:grp2 {dimensions: 昏暗= 30;变量: double data1(dim); double data2(dim); } // group grp2}
我在Python
脚本中遗漏了什么? (我在想ncview
是可以的,因为当我不将它们保存在 netcdf组中时,我能够看到相同的数据。
答案 0 :(得分:0)
您可以尝试升级您的ncview版本; 1.93克已经很老了。 2.1.6(2015年秋季发布)可在此处获取:http://meteora.ucsd.edu/~pierce/ncview_home_page.html