我在windows7机器上使用Python2.7中的netcdf4。我已经将numpyrecarray加载到我创建的netcdf文件中,并随后多次检索数据。然后,由于某种未知原因,当我试图检索数据时,我得到一个ValueError无法将字符串转换为float:
用于检索数据的代码是:
def getNetCDFGroupVarData(NCfilename, GroupPath, Variable):
""" ==============================================================
TITLE: getNetCDFGroupVarData
DESCR: for a valid variable on the specified path in a NetCDF file
returns a data vector
ARGS: NCfilename : netcdf4 file path and name
GroupPath : group path
Variable : variable name
RETURN: VarData: vector of variable data
DEPEND: netCDF4.Dataset
=======================================================================
"""
# get rootgroup and group from which to return attributes
if os.path.isfile(NCfilename):
RG = Dataset(NCfilename, 'a')
G = giveListEndGroup(RG,GroupPath)
# retrieve variable data from group
keyVar = G.variables.keys()
print(keyVar)
kvlen = len(keyVar)
var = unicode(Variable)
if kvlen > 0 :
print('variable name: ',var)
V = G.variables[var]
print V.dtype
print V.shape
print V.dimensions
VarData = V[:] #====== Error raised here ==============
else:
print('no keys found')
VarData = None
RG.close()
return VarData
调用此函数时得到的打印输出和错误堆栈为:
^{2}$当我使用其他netcdf实用程序(即panolpy)时,我可以访问数据。 有人知道为什么netcdf4会抛出这个excpetion——或者更糟——它是如何在netcdf文件的float32字段中插入字符串的?在
从回溯来看,问题发生在“_toma”Netcdf4函数中,该函数将数据转换为屏蔽数组。当使用其他实用程序(例如NCDUMP)读取文件时,访问数据没有问题。在
目前,我认为问题的发生是因为我有一个未赋值的'missing'u value'属性。显然,如果没有“missing_value”属性,Netcdf4将默认为一个与该dtype相应的缺失值。在我的实现中,“missing_value”属性是通过wxpyhton网格控件公开以供编辑的。当网格中编辑的属性被写回netcdf文件时,空网格单元返回的要么是None对象,要么是wx.排空环,Netcdf4试图将其插入netcdf文件的float类型中。在
相关问题 更多 >
编程相关推荐