HDF5:创建一维属性

Posted

技术标签:

【中文标题】HDF5:创建一维属性【英文标题】:HDF5 : create 1 dimension attribute 【发布时间】:2015-05-14 11:54:54 【问题描述】:

我能够创建带有属性的非常复杂的 hdf5 文件。我正在使用 hdf5 的低 api 来管理我的数据集并使用 hdf5 lite api 来管理属性。

问题是 hdf5 lite 似乎为所有内容创建数组。低 api 好像也一样。

例子:

在数据集中创建一个简单的整数属性:

int data = 42;
H5LTset_attribute_int(my_hdf5_file, "/", "my_attribute", &data, 1);

这个简单的属性存储为一维整数数组。我不想使用数组。我想要一个简单的原生类型。是的,一切正常,但例如我正在与 python 中的另一个程序通信,它似乎能够存储简单的整数而不是属性数组。

hdf5可以不使用数组存储整数属性吗?

【问题讨论】:

【参考方案1】:

是的,但您也必须使用低级 API:

hid_t dspace = H5Screate(H5S_SCALAR);
hid_t attr = H5Acreate(my_hdf5_file, "my_attribute", H5T_NATIVE_INT, dspace, H5P_DEFAULT, H5P_DEFAULT);
herr_t status = H5Awrite(attr, H5T_NATIVE_INT, &data);
H5Aclose(attr);
H5Sclose(dspace);

【讨论】:

以上是关于HDF5:创建一维属性的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HDF5 文件中读取属性?

C/C++ HDF5 读取字符串属性

使用 HDF5 C++ api 设置数据集的属性

如何使用 Python 和 h5py 读取 HDF5 属性(元数据)

如何在 Matlab 中的 HDF5 属性字符串中放置换行符

使用 Java 从 HDF5 文件中的 NetCDF 字符数组变量中检索一维数组