问题描述
我今天的工作是在Numpy中获取一个数组,并使用Scipy将其转储到净CDF文件(.nc)中。 Scipy为此提供了一个特定的子模块,但是那里没有很多创建示例实际的netcdf文件。
这是数据需要放入文件中的内容:
- 纬度(94)
- 经度(192)
- 对应于上面形成的矩阵的温度数据
我已经将所有3个文件保存在Numpy中,现在我必须使用Scipy(我也有NETCDF4 python程序包,但我无法使用该程序包将其存储到.nc文件中)。
到目前为止,这是我的代码:
#testing code about difference
f = netcdf.netcdf_file('2m air temperature difference.nc', 'w')
f.history = 'describes the difference in 2m air temperature between the period (1992-2011) to (1961-1981)'
f.createDimension('lons', 192)
f.createDimension('lats', 94)
print 'lons.size', lons.size
print 'lats.size', lats.size
longi = f.createVariable('lons', 'i', 192)
lati = f.createVariable('lats', 'i', 94)
f.createDimension('diff', difference.size)
lons = lons[:]
lats = lats[:]
differ = difference[:]
f.close()
我使用的是scipy文档中提供的默认示例,而我仅替换了为数据创建该示例所需的部分,其他所有内容均与示例中所示的相同。
然而,
唯一的问题是,由于某种原因,我得到了一个错误,提示"Type Error: 'int' object is not iterable"
。
但是,给定的示例使用i
作为数据类型,并且没有提供任何其他示例可以用作“ createVariable()”方法中的数据类型...?
任何帮助表示赞赏。
1楼
的了第三个参数:
按所需顺序使用变量使用的维名称的列表。
因此,您需要提供一个维度名称列表 ,而不是像192或94这样的整数。例如,
longi = f.createVariable('lons', 'i', ['lons'])
似乎是正确的。