【问题标题】:Problems with h5py - 'Dataset' object has no attribute 'value'h5py 的问题 - “数据集”对象没有属性“值”
【发布时间】:2022-01-07 21:39:53
【问题描述】:

我目前正在尝试从 h5py 文件中读取数据,并在尝试切片和其中的元数据然后输入字典时遇到问题。代码直接取自NSF Neon tutorials,在那里可以找到整个脚本。

我在这方面的功能特别有问题;

  #Extract the reflectance & wavelength datasets
    refl = hdf5_file[sitename]['Reflectance']
    reflData = refl['Reflectance_Data']
    reflRaw = refl['Reflectance_Data'].value ##This is causing - Dataset' object has no attribute 'value'
    
   #Create dictionary containing relevant metadata information
    metadata = {}
    metadata['map info'] = refl['Metadata']['Coordinate_System']['Map_Info'].value ##As above
    metadata['wavelength'] = refl['Metadata']['Spectral_Data']['Wavelength'].value 

this previous question on stack 看来,.value 似乎已被 h5py 的最新版本弃用。 引用该帖子,而不是;

reflRaw = refl['Reflectance_Data'].value

我试过了

  • reflRaw = refl['Reflectance_Data'][:]

    为此,Python 指责我“标量的非法切片参数” 数据空间'

  • reflRaw = refl['Reflectance_Data'][()]

    这只是挂了 30 秒,然后最终显示为空白 matplotlib 绘图

不确定如何在此处继续。这些教程是相对较新的,所以如果 .value 在最近的 h5py 版本中已被弃用,我不确定他们是如何设法让 .value 工作的。

任何帮助表示赞赏

【问题讨论】:

    标签: python numpy dictionary h5py


    【解决方案1】:

    正如您链接的答案所示,较新版本的 h5py 的正确语法是将 .value 替换为 [()]。在您的示例中,这样做对我有用。当您说该函数返回一个空白的 matplotlib 图时,我不确定您的意思是什么,因为它只意味着返回 2 个数组 - 同样,当我运行它时它会返回。

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 2013-09-28
      • 2016-05-11
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多