gpt4 book ai didi

python - h5py : datatype inside an attribute 的复合数据类型

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:10 26 4
gpt4 key购买 nike

我正在使用 Silo使用 HDF5,我无法使用 h5py 访问某些元数据。它吐出一些相当不寻常的 HDF5 结构,将 DATATYPE 放在 DATATYPE 中。以下是 h5dump 的输出摘录:

DATATYPE "sigma_t" H5T_STD_I32LE;
ATTRIBUTE "silo" {
DATATYPE H5T_COMPOUND {
H5T_STRING {
STRSIZE 5;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
} "meshid";
H5T_STRING {
STRSIZE 15;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
} "value0";
H5T_STD_I32LE "ndims";
H5T_STD_I32LE "nvals";
H5T_STD_I32LE "nels";
H5T_IEEE_F32LE "time";
H5T_STD_I32LE "use_specmf";
H5T_STD_I32LE "centering";
H5T_ARRAY { [3] H5T_STD_I32LE } "dims";
H5T_ARRAY { [3] H5T_STD_I32LE } "zones";
H5T_ARRAY { [3] H5T_STD_I32LE } "min_index";
H5T_ARRAY { [3] H5T_STD_I32LE } "max_index";
H5T_ARRAY { [3] H5T_IEEE_F32LE } "align";
}
DATASPACE SCALAR
DATA {
(0): {
"mesh",
"/.silo/#000004",
2,
1,
100,
0,
-1000,
111,
[ 10, 10, 0 ],
[ 9, 9, 0 ],
[ 0, 0, 0 ],
[ 9, 9, 0 ],
[ 0.5, 0.5, 0 ]
}
}
}
ATTRIBUTE "silo_type" {
DATATYPE H5T_STD_I32LE
DATASPACE SCALAR
DATA {
(0): 501
}
}

基本上,f['sigma_t'].attrs['silo'] 返回一个 tuple,其中包含所有格式正确的数据,但没有任何关联标签数据类型。 (我需要知道名称 meshidvalue0 等)有没有办法得到这个?我很茫然。

示例文件和脚本

HDF5 file包含“sigma_t”字段,实际数据存储在/.silo/#000004

脚本:

import h5py
f = h5py.File('xsn.silo', 'r')
print f['sigma_t'].attrs['silo']

结果:

('mesh', '/.silo/#000004', 2, 1, 100, 0.0, -1000, 111, array([10, 10,  0], dtype=int32), array([9, 9, 0], dtype=int32), array([0, 0, 0], dtype=int32), array([9, 9, 0], dtype=int32), array([ 0.5,  0.5,  0. ], dtype=float32))

我还想要的是:

('meshid','value0','ndims', ..., 'align')

这可能吗?

最佳答案

我通过 the h5py Google groups page 得到了开发人员的答复: 这是一个将在 h5py 1.4 中修复的错误。

我最后做的是:

import h5py
f = h5py.File('xsn.silo', 'r')
group = f['sigma_t']
attr_id = h5py.h5a.open(group.id, 'silo')
data = dict(zip(attr_id.dtype.names, group.attrs['silo'],))

关于python - h5py : datatype inside an attribute 的复合数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5969828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com