【问题标题】:reading HDF4 file with python - more than one dataset with same name使用 python 读取 HDF4 文件 - 多个同名数据集
【发布时间】:2015-10-09 04:13:05
【问题描述】:

我有一个需要用 python 读取的 HDF4 文件。为此,我使用pyhdf。在大多数情况下,我很乐意使用SD 类打开文件:

import pyhdf.SD  as SD
hdf = SD.SD(hdfFile)

然后继续

v1 = hdf.select('Data set 1')
v2 = hdf.select('Data set 2')

但是,我在 HDF 文件中有多个组,并且一些变量出现在多个具有相同名称的组中:

Group 1 我有Data set 3Group 2 我有Data set 3 所以我的select 命令只会选择一个然后我猜(我不知道是哪一个?)。

有没有一种简单的方法可以从Group 1 中选择(读取)Data set 3,然后从Group 2 中选择(读取)?

我查看了VVS 模块。我找到了一个示例脚本,它将遍历所有组和子组等并找到所有变量(数据集)。但是我现在知道如何将这些变量连接到父级,以便我知道它们属于哪个组。

【问题讨论】:

    标签: python hdf


    【解决方案1】:

    我认为 pyhdf 可能不是这个特定任务的最佳选择。你看过PyNIO吗?

    来自HDF section of their documentation

    PyNIO 具有理解 HDF Vgroup 的只读能力。当遇到属于 Vgroup 的变量时,PyNIO 会在变量名称的末尾附加一个双下划线和组号。这确保了变量将具有唯一的名称,相对于属于其他 Vgroup 的变量。它还为变量提供了两个附加属性:hdf_group,其值为组的 HDF 字符串名称,以及 hdf_group_id,其值与附加在变量名末尾的组号相同。

    【讨论】:

    • 感谢 PyNIO 的链接,我会看看。乍一看,它看起来很有希望。
    • 我很想知道进展如何。我已经将 PyNIO 广泛用于 HDF-EOS 文件,但从未使用过普通的 HDF4。我假设变量名称会相似。这是读取文件的示例代码:stackoverflow.com/questions/27255869/…,然后打印 file_handle.variables 将向您展示您必须使用的内容。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 2020-02-04
    • 2018-05-15
    • 2023-02-24
    相关资源
    最近更新 更多