netCDF Python:如何获取变量属性的数据类型?

时间:2013-11-05 04:52:22

标签: python variables attributes netcdf getattr

我正在使用netCDF4 Python包,我知道getattr()可以获取数据集变量属性的值,例如

root = Dataset(file_name,'r')
for var in root.variables.values():
    print 'attrs of this variable:',var.ncattrs()
    for attr in var.ncattrs():
    print '<<attr name>> =', attr
    print '<<attr value>> =',getattr(var,attr)

我可以通过上面的代码成功获取属性的名称/值对。现在我想获取属性的数据类型(int,float等),但我找不到这样的方法/函数,有人知道吗?我知道netCDF C包中有这样的API。

2 个答案:

答案 0 :(得分:2)

nci = netCDF4.Dataset(file_name,'r')
g_attdict = nci.__dict__
for k,v in g_attdict.iteritems():
  print k, type(v)      

示例输出:

comment <type 'unicode'>
mooring_site_desc <type 'unicode'>
breakout_id <type 'numpy.int32'>
ending_julian_day_number <type 'numpy.float64'>
long_name <type 'unicode'>  
...

答案 1 :(得分:1)

如果您print变量,将列出数据类型。要使numpy dtype使用.dtype属性:

for var in root.variables.values():
    print var
    print var.dtype