当前位置: 代码迷 >> python >> 使用Scipy创建netcdf文件? 然而,
  详细解决方案

使用Scipy创建netcdf文件? 然而,

热度:75   发布时间:2023-06-14 08:59:01.0

我今天的工作是在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()”方法中的数据类型...?

任何帮助表示赞赏。

的了第三个参数:

按所需顺序使用变量使用的维名称的列表。

因此,您需要提供一个维度名称列表 ,而不是像192或94这样的整数。例如,

longi = f.createVariable('lons',  'i', ['lons'])

似乎是正确的。

  相关解决方案