HDF5
简介
HDF5 可以用来存储异构数据对象,包括图片,表,图,甚至 PDF 和 Excel. HDF5 中的数据存储在不同组(Group)中,类似于 Linux 文件树结构。HDF5 数据集 (Datasets) 存储原始数据和元数据 (Metadata) 包括数据类型,维度,属性与性质。
- 数据类型 (Datatypes)
- 预定义数据类型 (pre-defined datatypes)
分为标准数据类型和本地数据类型。前者在任何平台上相同,eg.H5T_IEEE_F32BE
(32 bit float Big Endian);后者在不同机器上不同 - 延伸数据类型 (Derived Datatypes)
由预定义数据类型组合而来。
- 数据空间 (Dataspace)
命名规则
H5A Attribute Interface
H5D Dataset Interface
H5F File Interface
类型
为保障跨平台可用,HDF5 内定义三种类型用来操作文件。
hid_t
作为对象句柄。hsize_t
用作维度。herr_t
接收返回状态。
例子
- 读
#include "hdf5.h"
#include "stdlib.h"
#include "stdio.h"
int main(){
hid_t file_id;
herr_t status;
file_id = H5Fopen("result.hdf5", H5F_ACC_RDWR, H5P_DEFAULT);
// get data set info
hid_t dataset_id = H5Dopen2(file_id, "/result", H5P_DEFAULT);
// get data space info
hid_t space_id =