c - HDF5 : create 1 dimension attribute

标签 c hdf5

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

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

例子:

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

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

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

是否可以不使用数组来存储带有 hdf5 的整数属性?

最佳答案

是的,但您还必须使用低级 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);

关于c - HDF5 : create 1 dimension attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29007860/

相关文章:

c - 动态结构

java - 在 JVM 之上运行/解释 C?

Python 内存错误 : The processed data set does not fit into 32-bit process address space

c - 给定代码中逻辑错误在哪里?

c - 意外的 scanf 行为

c - 在结构中放置#define

python - TensorFlow - tf.data.Dataset 读取大型 HDF5 文件

c++ - 使用 HDF5 C++ 编写动态大小的复合类型数据集

python - 如何提高HDF5读取数据的性能?

java - 在 Java 流中读取 HDF5