logo资料库

HDF5使用说明.pdf

第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
资料共36页,剩余部分请下载后查看
国家卫星气象中心(NSMC) HDF5.0 使用简介 HDF5.0 使用简介
国家卫星气象中心(NSMC) HDF5.0 使用简介 目 录 1、介绍(Introduction).............................................................................................................1 2、HDF5 文件组织(File Organization)..................................................................................1 3、HDF5 应用程序接口(API)......................................................................................................2 4、创建 HDF5 文件(Creating an HDF5 File).........................................................................3 4.1 什么是 HDF5 文件?...........................................................................................................3 4.2 程序例子(Programming Example)................................................................................4 4.2.1 描述(Description)..........................................................................................4 4.2.2 备注(Remarks)..................................................................................................5 4.2.3 文件内容(File Contents)..............................................................................6 4.2.4 DDL 中的文件定义(File Definition in DDL) ............................................7 5、创建数据集(Creating a Dataset).....................................................................................7 5.1 什么是数据集(What is a Dataset)..........................................................................7 5.2 数据类型(Datatypes)..........................................................................................7 5.3 数据集和数据空间(Datasets and Dataspaces) ..............................................9 5.4 数据集创建特性列表(Dataset Creation Property Lists) ..........................9 5.2 程序例子(Programming Example)............................................................................10 5.2.1 描述(Description)........................................................................................10 5.2.2 备注(Remarks)................................................................................................11 5.2.3 文件内容(File Contents)............................................................................12 5.2.4 DDL 中的数据集定义(Dataset Definition in DDL) ................................13 6、创建一个群组(Creating a Group)...................................................................................14 6.1 什么是群组(What is a Group)?..............................................................................14 6.2 程序例子(Programming Example)............................................................................15 6.2.1 描述(Description)........................................................................................15 6.2.2 备注(Remarks)................................................................................................15 6.2.3 文件内容(File Contents)............................................................................16 7、创建属性(Creating an Attribute).................................................................................17
国家卫星气象中心(NSMC) HDF5.0 使用简介 7.1 什么是属性(Attribute)?..........................................................................................17 7.1.1 创建一个属性(Creating an attribute)....................................................17 7.1.2 读/写属性(Reading/Writing an attribute) ............................................18 7.2 编程例子(Programming Example)............................................................................18 7.2.1 描述(Description)........................................................................................18 7.2.2 备注(Remarks)................................................................................................19 7.2.3 文件内容(File Contents)............................................................................21 7.2.4 DDL 中的属性定义(Attribute Definition in DDL) ................................22 8、读出和写入数据集(Reading from and Writing to a Dataset) .................................22 8.1 读出和写入数据集(Reading from and Writing to a Dataset) ........................22 8.2 编程例子(Programming Example)............................................................................23 8.2.1 描述(Description)........................................................................................23 8.2.2 备注(Remarks)................................................................................................24 8.2.3 文件内容(File Contents)............................................................................27 9、复合数据类型(Compound Datatypes)...............................................................................28 9.1 创建复合数据类型(Creating Compound Datatypes) ............................................28 9.2 程序例子(Programming Example)............................................................................29 9.2.1 描述(Description)........................................................................................29 9.2.2 备注(Remarks)................................................................................................29 9.2.3 文件内容(File Contents)............................................................................30
国家卫星气象中心(NSMC) HDF5.0 使用简介 Advanced Topics Property Lists Parallel HDF5 Design Overview 说明: 本教材不包含编译例程所需的软件。 Introductory Topics Introduction HDF5 File Organization Compound Datatypes Parallel Programming The HDF5 API Create an HDF5 File Create Dataset Dataset Read/Write Create Attribute Create Group Create Group - Abs/Rel Create Dataset in Group [ Questions ] [ Answers ] Create/Access File Hyperslab Selection Point Selection Create/Access Dataset References to Objects Write/Read Hyperslabs References to Regions - by Contiguous Hyperslab Utilities: h5ls/h5dump Extendible Datasets Mounting Files Group Iteration High Level APIs Other Tutorial Examples - by Regularly Spaced Data References - by Pattern - by Chunk
国家卫星气象中心(NSMC) HDF5.0 使用简介 1、介绍(INTRODUCTION) 欢迎使用由 HDF 用户支持组提供的 HDF5 使用教材 HDF5 是用于存储科学数据的一种文件格式和库文件。它被设计并实现满足科学数据存 储不断增加和数据处理不断变化的需求,为了充分利用当今计算机系统的能力和特点,克服 HDF4.x 的不足。HDF5 有一个强大和灵活的数据模块,支持管理的文件大于 2 GB(HDF4.x 管理文件的极限),并且还支持并行 I/O。设计时考虑了安全线程并将在不久的将来实现此 功能。为了便于简单了解 HDF5 的数据模式、库函数和工具,请参看存放于 URL 地址 (http://hdf.ncsa.uiuc.edu/HDF5/papers/HDF5_overview/index.htm)里的幻灯片。 本使用教材涵盖了基本的 HDF5 数据对象和文件结构,HDF5 程序模块、创建和修改数 据对象的 API 功能。还将介绍用于存取 HDF5 文件的一些有用的工具。 本教材使用的程序例子以及编译它们的 Makefile 在 ./examples/子目录里。为了使用 Makefile 文件,用户也许不得不编辑和更新编译器和编译器选项,以及发布的 HDF5 的目录 路径。Java 程序例子在./examples/ 目录下的名为 java/子目录里。Java/目录有一个 Makefile 文件和运行 java 程序的脚本文件(shell scripts)。 对于其它 HDF5 程序的程序例子,请参看 References 里的指示标记。 希望这个程序例子和用法说明入门能帮助用户很方便地使用 HDF5。 任何意见和建议直接发给:hdfhelp@ncsa.uiuc.edu. 2、HDF5 文件组织(FILE ORGANIZATION) 一个 HDF5 文件就是一个由两种基本数据对象(groups and datasets)存放多种科学数 据的容器: • • HDF5 group: 包含 0 个或多个 HDF5 对象以及支持元数据(metadata)的一个群组结 构。 HDF5 dataset: 数据元素的一个多维数组以及支持元数据(metadata) 任何 HDF5 的群组或数据集或许都有一个对应的属性列表。HDF5 属性是一个用户自定义的 HDF5 结构,能为 HDF5 对象提供附加信息。 - 1 -
国家卫星气象中心(NSMC) HDF5.0 使用简介 使用群组和数据集时在许多方面类似于使用 UNIX 的目录和文件。HDF5 文件里的对象经常通 过它的绝对路径来引用。 / signifies the root group. /foo signifies a member of the root group called foo. /foo/zoo signifies a member of the group foo, which in turn is a member of the root group. 3、HDF5 应用程序接口(API) HDF5 函数库提供几个应用程序接口(API)。这些 API 提供用于创建、存取、处理 HDF5 文件和对象的例程。 库函数本身是由 C 程序实现的。为了便于 FORTRAN90 和 Java 程序员的工作,HDF5 包装 的外壳函数也已经用这些语言开发出来了。到写此用户教材时,用 C++包装的外壳函数正在 开发中。本教材只涉及 C 和 FORTRAN 的外壳包装函数。 HDF5 库中所有 C 的例程都有一个前缀形式 H5*开始,这里的*是一个或两个大写字母, 表明有关函数操作对象的类型。而 FORTRAN 外壳包装是以子程序由 h5 开始和_f 结束的。API 列表如下: API 描述 H5 库函数:H5 函数的通用目的 H5A 注解(Annotation)接口:属性存取(access)和操作例程 H5D 数据集接口:数据集存取和操作接口 H5E 错误接口:错误处理例程 H5F 文件接口:文件存取例程 H5G 群组接口:群组创建和运行例程 H5I 标识号接口:标识号例程 H5P 特性(Property)列表接口:对象特性列表操作例程 H5R 引用接口:引用例程 H5S 数据大小接口:数据大小定义和存取例程 H5T 数据类型接口:数据类型创建和操作例程 H5Z 压缩接口:压缩例程 - 2 -
国家卫星气象中心(NSMC) HDF5.0 使用简介 4、创建 HDF5 文件(CREATING AN HDF5 FILE) 4.1 什么是 HDF5 文件? HDF5 是一个含有科学数据和支持元数据的二进制文件。HDF5 文件存储对象的基本类型, 即群组和数据集,将在本教材的其它章节讨论。 要创建一个文件,应用程序必须指定一个文件名、文件存取模式、文件创建特性列表、 和文件存取特性列表。 • 文件存取模式(File access mode):: 当创建一个文件时,假如此文件已经存在,文件存取模式就会指定要发生的动作: o H5F_ACC_TRUNC 说明如果此文件已经存在,当前的内容将被删除以便应用程 序可以用新数据重新写此文件。 o H5F_ACC_EXCL 说明如果此文件存在,打开则会失败。 o 如果此文件不存在,则文件的存取参数被忽略。 o 在所有情况下,对于一个成功创建的文件,应用程序都可以对这个文件进行 读写存取。 注意对于打开已经存在的文件有两种不同的存取模式: o H5F_ACC_RDONLY 说明应用程序只有读取而没有写入任何数据的权利。 o H5F_ACC_RDWR 说明应用程序有读写的权利。 更详细的信息请参见《HDF 用户指南》里的 The File Interface (H5F)小节和《HDF5 参考手册》中的 H5F: File Interface 小节。 • 文件创建特性列表(File creation property list): 文件创建特性列表常被用于控制文件的元数据。文件的元数据包含有关用户块的大 小、HDF5 库使用的不同文件数据结构大小等。此教材中,缺省的文件创建特性列表 是 H5P_DEFAULT。 用户块(user-block)是被 HDF5 库忽略的位于文件开始的固定长度的数据块。用户 块可以用于存放任何数据或对应用有用的信息。 更详细的内容请参见《HDF 用户指南》中的 The File Interface (H5F) 小节。 • 文件存取特性列表(File access property list): - 3 -
国家卫星气象中心(NSMC) HDF5.0 使用简介 文件存取特性列表通常被用来控制对文件 I/O 表现采取不同的方法。本教材使用的 缺省文件存取特性列表是 H5P_DEFAULT。 详情见《HDF 用户指南》中的 The File Interface (H5F) 小节。 创建和关闭一个 HDF5 文件的步骤如下: 1. 如果需要,指定文件创建和存取特性列表。 2. 创建文件。 3. 如需要,关闭文件和关闭特性列表 要创建一个 HDF5 文件,调用程序必须包含调用创建和关闭文件。如下例: C: file_id = H5Fcreate (filename, access_mode, create_id, access_id); status = H5Fclose (file_id); FORTRAN: CALL h5fcreate_f (filename, access_mode, file_id, hdferr, & creation_prp=create_id, access_prp=access_id) or CALL h5fcreate_f (filename, access_mode, file_id, hdferr) CALL h5fclose_f (file_id, hdferr) 在 FORTRAN 程序中,文件创建特性列表 creation_prp、和文件存取特性列表 access_prp, 是可选参数;如果使用了缺省值,它们可以被忽略。 4.2 程序例子(Programming Example) 4.2.1 描述(Description) 下面的例子表明如何创建和关闭一个 HDF5 文件。用 C 创建一个名为 file.h5 的文件, 和用 FORTRAN 创建 filef.h5 文件,然后关闭它。 [ C Example ] -- h5_crtfile.c [ FORTRAN Example ] -- fileexample.f90 注意: 要下载一个 tar 文件,包括所有程序例子和一个 Makefile,请转到 References。 - 4 -
分享到:
收藏