使用NetCDF4从python中的NetCDF文件检索float32时,报告的值错误字符串转换为浮点型

2024-04-26 00:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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字段中插入字符串的?在


Tags: 数据pathnamedatagroupnetcdfvariablerg
1条回答
网友
1楼 · 发布于 2024-04-26 00:34:51

从回溯来看,问题发生在“_toma”Netcdf4函数中,该函数将数据转换为屏蔽数组。当使用其他实用程序(例如NCDUMP)读取文件时,访问数据没有问题。在

目前,我认为问题的发生是因为我有一个未赋值的'missing'u value'属性。显然,如果没有“missing_value”属性,Netcdf4将默认为一个与该dtype相应的缺失值。在我的实现中,“missing_value”属性是通过wxpyhton网格控件公开以供编辑的。当网格中编辑的属性被写回netcdf文件时,空网格单元返回的要么是None对象,要么是wx.排空环,Netcdf4试图将其插入netcdf文件的float类型中。在

相关问题 更多 >

    热门问题