【问题标题】:netCDF Python: How to get the data type of an attribute of a variable?netCDF Python:如何获取变量属性的数据类型?
【发布时间】:2013-11-15 22:05:59
【问题描述】:

我使用的是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。

【问题讨论】:

  • 没有python的type()函数帮助吗?

标签: python variables attributes netcdf getattr


【解决方案1】:
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'>  
...

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我的问题是关于变量属性的数据类型,而不是变量的数据类型。
    • 在这种情况下,我不确定我是否理解您的问题。对于 netCDF 文件,我通常处理的属性都是字符串。
    • 我也有这个问题。使用 python NetCDF4 API。似乎没有这种能力,尽管 Java NetCDF4 有。
    • @ashish-nitin-patil 是正确的。确实如此。查看新答案。
    猜你喜欢
    • 2014-09-12
    • 2021-06-04
    • 2016-04-03
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多