HDF5:创建 1 个维度属性
HDF5 : create 1 dimension attribute
我能够创建非常复杂的具有属性的 hdf5 文件。我正在使用 hdf5 的低 api 来管理我的数据集,并使用 hdf5 lite api 来管理属性。
问题是 hdf5 lite 似乎为所有内容创建数组。低api.
好像也一样
示例:
在数据集中创建一个简单的整数属性:
int data = 42;
H5LTset_attribute_int(my_hdf5_file, "/", "my_attribute", &data, 1);
这个简单的属性存储为一维整数数组。我不想使用数组。我想要一个简单的本机类型。是的,一切正常,但例如我正在与 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);
我能够创建非常复杂的具有属性的 hdf5 文件。我正在使用 hdf5 的低 api 来管理我的数据集,并使用 hdf5 lite api 来管理属性。
问题是 hdf5 lite 似乎为所有内容创建数组。低api.
好像也一样示例:
在数据集中创建一个简单的整数属性:
int data = 42;
H5LTset_attribute_int(my_hdf5_file, "/", "my_attribute", &data, 1);
这个简单的属性存储为一维整数数组。我不想使用数组。我想要一个简单的本机类型。是的,一切正常,但例如我正在与 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);