使用 python 读取 HDF4 文件 - 多个同名数据集

red*_*ger 5 python hdf

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

import pyhdf.SD  as SD
hdf = SD.SD(hdfFile)
Run Code Online (Sandbox Code Playgroud)

然后继续

v1 = hdf.select('Data set 1')
v2 = hdf.select('Data set 2')
Run Code Online (Sandbox Code Playgroud)

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

In Group 1I haveData set 3和 in Group 2I haveData set 3所以我的select命令只会选择其中一个我猜(我不知道是哪一个?)。

有没有一种简单的方法来选择(阅读)Data set 3fromGroup 1和 from Group 2

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

Hea*_* QC 0

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

来自其文档的 HDF 部分

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