HDF5 学习总结1

目录

一 HDF5简介

1.1 HDF5背景

1.2   抽象数据模型

1.2.1 File

1.2.2  Group

1.2.3 Dataset

1.2.4. Dataspace

1.2.5. Datatype

1.2.6. Attribute

1.2.7. Property List


一 HDF5简介

1.1 HDF5背景

HDF5:(Hierarchical Data Format)是由美国伊利诺伊大学厄巴纳-香槟分校 UIUC (University of Illinois at Urbana-Champaign) 开发,是一种常见的跨平台数据储存文件,可以存储不同类型的图像和数码数据,并且可以在不同类型的机器上传输,同时还有统一处理这种文件格式的函数库。

层次结构数据格式(HDF)实现了一个用于管理和存储数据的模型。该模型包括一个抽象数据模型和一个抽象存储模型(数据格式),以及用于实现抽象模型并将存储模型映射到不同的存储机制的库。HDF5库为抽象模型的具体实现提供了一个编程接口。该库还实现了一个数据传输模型,即数据从一个存储表示到另一个存储表示的有效移动。下图说明了模型和实现之间的关系。

抽象数据模型是数据、数据类型和数据组织的概念性模型。抽象数据模型独立于存储介质或编程环境。存储模型是抽象数据模型的对象的标准表示。HDF5文件格式规范定义了存储模型。

抽象数据模型是数据、数据类型和数据组织的概念性模型。抽象数据模型独立于存储介质或编程环境。存储模型是抽象数据模型的对象的标准表示。HDF5文件格式规范定义了存储模型。

该库是该编程模型的具体实现。该库将HDF5api导出为其接口。除了实现抽象数据模型的对象外,该库管理从一个存储表单到另一个存储表单的数据传输。数据传输示例包括从磁盘读取到内存和从内存写到磁盘。

存储数据是存储模型的具体实现。存储模型映射到多个存储机制,包括单个磁盘文件、多个文件(文件族)和内存表示。

HDF5库是一个C模块,它实现了编程模型和抽象数据模型。HDF5库调用操作系统或其他存储管理软件(例如,MPI/IO库)来存储和检索持久性数据。HDF5库还可以链接到其他软件,如过滤器进行压缩。HDF5库链接到一个可以用C、C、++、Fortran或Java编写的应用程序。该应用程序实现了特定于问题的算法和数据结构,并调用HDF5库来存储和检索数据。下图显示了这些模块的依赖关系。

重要的是要意识到,每个软件组件都使用适合于该组件的模型和数据结构来管理数据。当数据在层之间传递时(在存储或检索期间)时,它将从一种表示转换为另一种表示。下图显示了在不同层中使用的一些数据结构。应用程序程序使用表示问题的数据结构,以及算法,包括变量、表、数组和网格以及其他数据结构。根据其设计和功能,一个应用程序可能有相当多的不同类型的数据结构和不同的数量和大小的对象。

HDF5库实现了HDF5抽象数据模型的对象。其中一些对象包括组、数据集和属性。应用程序程序将应用程序数据结构映射到HDF5对象的层次结构。每个应用程序都将创建一个最适合其目的的映射。HDF5抽象数据模型的对象被映射到HDF5存储模型的对象,并存储在一个存储介质中。存储的对象包括头块、自由列表、数据块、b-树和其他对象。每个组或数据集都被存储为一个或多个标头和数据块。有关这些对象是如何组织的更多信息,请参阅HDF5文件格式规范。HDF5库还可以使用其他库和模块,如压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值