读写hdf5文件编程用户指南


-
本教材涵盖基本的hdf5数据对象和文件结构,HDF5程序模块、创建和修改数据对象的API功能,还介绍用于存取hdf5文件的一些有用工具
NNc国家卫星气象中心(NSMC) HDF50使用简介 7.⊥什么是属性( Attribute)? 1创建一个属性( Creating an attribute) .17 7.1.2读/写属性( Reading/ Writing an attribute) 7.2编程例了( Programming Example) 7.2.1描述( Description) …18 7.2.2备注( Remark) 7.2.3文件内容( File contents) 7.2.4DDL中的属性定义( Attribute definition in ddl) 8、读出和写入数据集( Reading from and Writing to a Dataset) 1读出和写入数据集( Reading from and writing to a dataset) 8.2编程例子( Programming examp1e) +++++ 23 8.2.1描述( Description) 8.2.2备注( Remarks) 24 8.2.3文件内容( File contents) 27 9、复合数据关型( Compound Datatypes) 9.1创建复合数据类型( Creating Compound Datatypes) 9.2程序例子( Programming Example) 9.2.1描述( Description)… 29 9.2.2备注( Remarks)…. 2.3文件内容( File contents NNc国家卫星气象中心(NSMC) HDF50使用简介 说明:本教材不包含编译例程所需的软件。 Introduction Property Lists Design overview HDFS File Organization Compound Datatypes Parallel programming The hdF5 API Hyperslab Selection Create/Access File Create an hdfs fille Point selection Create/Access dataset Other Create dataset References to Objects Write/Read Hyperslabs Tutorial Examples Dataset Read/write References to Regions -by Contiguous Hyperslab Utilities: hsIs/h5dump Create Attribute Extendible Datasets by regularly spaced Data References Create Group Mounting Files by pattern Create Group- Abs/Rel Group iteration by Chunk Create Dataset in Group NNc国家卫星气象中心(NSMC) HDF50使用简介 1、介绍( INTRODUCTI0N) 欢迎使用由HDF用户支持组提供的IDF5使用教材 HDF5是用于存储科学数据的一种文件格式和库文件。它被设计并实现满足科学数据存 储不断増加和数据处理不断变化的需求,为了充分利用当今计算机系的能力和特点,克服 HDFA.ⅹ的不起。HDF5有一个强大和灵活的数据模块,支持管理的文件大于2GB(HDF1.x 管理文件的极限),并且还支持并行I0。设计时考虑了安全线程并将在不久的将来实现此 功能。为了便于简单了解HDF5的数据模式、库函数和工具,请参看存放于URL地址 (http://hdf.ncsa.uiuc.edu/lidi5/papErS/iDr5overview/index.htm)里的幻灯片 本使用教材涵盖了基本的HDF5数据对象和文件结构,HDF5程序模块、创建和修改数 据对象的API功能。还将介绍用于存取HDF5文件的一些有用的T具。 木孜材使用的程序例了以及编译它们的 Makefile在/ examples了目录里。为了使用 Makefile文件,用户也许不得不编辑和更新编译器和缃译器选项,以及发布的围DF5的目录 路径。Java程序例子在./ examples/目录下的名为java/子目录里。Java/目录有一个 Makefile文件和运行Java程序的脚本文件( shell scripts) 对于其它HF5程序的程序例子,请参看 References甲的指示标记。 希望这个程序例子和用法说明入门能帮助用户很方使地使用HDF5 任何意见和建议直接发给: haihe lpe@ncsa.uiuc.ecu 2、HDF5文件组织( FILE ORGANLZATION) 个DF5文件航是一个由两种基本数据对象( groups and datasets)有放多种科学数 据的容器 HDF5 group:包含0个或多个HD5对象以及支持元数据( metadata)的个群组结 构 HIDF5 dataset:数据元素的一个多维数组以及支持元数据( metadata) 仟何HDF5的群组或数据集或许都有一个对应的属性列表。HDF5属性是一个用户自定义的 HDF5结构,能为HF5对象提供附加信息。 NNc国家卫星气象中心(NSMC) HDF50使用简介 使用样组和数据集时在许多方面类似」使用UNIX的」录和文件。HDF5文件里的对象经常通 过它的绝对路径来引用。 signifies the root group /foo signifies a. member of t he 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的例程都有一个前缀形式H*开始,这里的米是个或两个大写字母, 表明有关函数操作对象的类型。而 OUTrAN外壳包装是以子程序由h5开始和f结束的。API 列表如下: API措述 H5库函数:H5函数的通用目的 H5A注解( Aumotalion接口:属性存取aceN)操作例程 HD数据集接口:数据集存取和操作接口 HSE错误接口:错误处理例程 H5F文件接口:文件存取例程 H5G|群组接口:群组创建和运行例程 H5I标识号接口:标识号例稈 H5P特性( Propcrty)列表接口:对象特性列表操作例程 I5R引用接口:引用例程 Hs数据大小接口:数据大小定义和存取例程 HST数据类型接口:数据类型创建和操作例程 H5Z爪缩接口:压缩例程 NsNc国家卫星气象中心(NSMC) HDF50使用简介 4、创建ⅢDF5文件( CREATING AN HDE5FIlE) 4.1什么是HDF5文件? HDF5是一个含冇科学数据和支持元数据的二进制文件。DF5文件存储对象的基木类型, 即群组和数据集,将在本教材的其它章节讨论。 要创建一个文件,应用程序必须指定一个文件名、文件存取模式、文件创延特性列袤、 和文件存取特性列表。 文件存取模式( File access mode): 当创建一个文件时,假如此文件凵经存在,文件存取模式就会指定要发生的动作: H5 F ACC TRUNC说明如果此文件已经存在,当前的内容将被删除以便应用程 序可以用新数据重新写此文件 H5 F ACC EXCI.说明如果此文件存在,打开则会失败。 o如果此文件不存在,则文件的存取参数被忽略 o在所有情况下,对于一个成功创建的文件,应用程序都可以对这个文件进行 读写存取。 注意对丁打开已经仔在的文件有两种不同的存取模式: I5 F ACC RDONLY说明应用程序只有读取而没有写入任何数据约权利。 H5 F ACC RDWR说明应用程序有读写权利。 更详细的信息请参见《HDF用户指南》里的 The file interface(H5F)小节和《HDF5 参考手册》中的H5F:Fi1 e Inter race小节 ·文件创建特性列衣( File creation property list): 文件创建特性列表常被用于控制文件旳元数据。文件的元数据包含有关用户块的大 小、HF5库使用的不冋文件数据结构大小等。此教材中,缺省的文件创建特性列表 是H5 P DEFAULT。 用户块(user- block)是被DF5库忽略的位于文件开始的定长度的数据块。用户 块可以用于存放任何数据或对应用有用的信息。 更详细的内容请参见《ID用户指南》中的 The file interface(I5)小节。 文什存取特性列表( File access property list): NNc国家卫星气象中心(NSMC) HDF50使用简介 文件存取特性列表道常被用来控制对文件I/0表呆取不同的方法。本教材使用的 缺省文件存取特性列表是H5 P DEFAUL 详情见《IDF用户指南》中的 The file interface(5F)小节 创建和关闭一个HDF5文件的步骤如下: 1.如耒需要,指定文件创建和冇取特性列表。 创建文件 如需要,关闭文件和关闭特性列表 要创建一个HDF5文件,调用程序必须包含调用创建和关闭文件。如下例 file id=H5Fcreate (filename, access mode, create id, access id) status H5Fclose (f 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 pIp 是可选参数;如果使用了缺省值,它们可以被忽略。 42程序例子( Programming Example) 4.2,.1描述( Description) 下面的例子表明如何创建和关闭一个Im5文件。用C创建一个名为file.h5的文件 和用 FORTRAN创建 filef.h5文件,然后关闭它。 [C Example]--h5-_crtfilec FORTRAN Example]--fileexample. f9o 注意:要下载个tar文件,包括所有程序例了和个 Makefile,请转到 References 4 NNc国家卫星气象中心(NSMC) HDF50使用简介 4.2.2备注(R emarks 对C:头文仁hd5.h包括定义和声明,使用HDF5库的任何程序必须扣它包括进来 对 FORTRAN:模块HDF5包含定义和声明,仟何使用HDF5厍的程序必须用它 H5 Fcreate/ hafcreate f创建一个HF5文件和返回文件标号 C. hid t H5Fcreate (const char sname, uns i gned access mode, hid t creation prp, hid t access prp) h5fcreate f (name, access mode, file id, hdferr, creation prp access prp name CHARACTER(LEN=x) access flag INTEGER ( Valid values: H5F ACC RDWR F, H5F ACC RDONLY F H5F ACC TRUNC F. H5F ACC EXCL F H5F ACC DEBUG F) file id INTEGER (HID T) hafer INTEGER ( Valid values: 0 Un success and -1 ol failure) creation prp INTEGER(HID T), OPTIONAL (Default value: II5P DEFAULT F) access prp INTEGER(HID T), OPTIONAL (Default value: H5P DEFAULT F) o name参数指定要创建的文件名。 o存取模式参数指明文件模式。假如文件已经存在,I5 F ACC TRUNC (H5 F ACC TRUNC F in Fortran)将截取一个文件。 o creation p参数说冂文件创建列表。对于C语言,用H5 P DEFAULT表示 使用了缺省的文件创健列衣。这个选项在 FORTRAN中是可选的;假如没有此 项,缺省的文件创建列表H5 P DEFAULT F,就被使用。 o access prp参数说明文件存特性列表。对于C语言,用I5 P DEFAULT表 明缺省文件创建特性列表被使用。此项在 FORTRAN中是可选的;如果被忽略, 缺省釣文件创建特性列表H5 D DEFAULT F,就被使用。 3对亍C,如果成功则返回文件标识号,否则返回个负数。对丁 FORTRAN 文件标识号是通过 filc id的参数甲返回的。如果调用成功, honor返回 个0(零)值。否则在将返可一个-1值。 当一个文件个再被程序存取,H5 Fclose/h5 fclose f必须被调用来释放被这个文件 使用的资源。这个调用是强制性的 herr t H5Fclose (hid t file id) NNc国家卫星气象中心(NSMC) HDF50使用简介 FORTRAN h5fclose f(file id, hdferr) 当一个文件被创建时,根下群组( roct group)就被自动创建。每个文件都有一个 根下群组,群组的路径名通常都是“/” 4.2.3文件内容( File contents) HDF开发组已经开发出了检查HDF5文件内容的工具。本教材牛使用的工具是HD5 dumper、h5dm,可以把文件内容显示成可读的形式。根据HDF5DDL语法,h5dump的输 出形式是有格式的ASC∏码。在 DDL in bnf for hde5中使用 Backus-Naur格式定义了语法。 查看文件内容,键入命令 h5dump <filename> 图4使用一个直接图表来表示文件 file. h5( filef h5)的内容。本教材中的直接图表用 椭园表示HDF5的群组,用长方形表示数据集。箭头表示内容的包含方向 Fig.4.1fie.h5(fi/lefh5)文件的内容 roup 图42是文件 file. h5的文本描述,与h5dump生成的一样。HDF5文件调用了含有 个群组的fleh5的文件,或调用根下的群组 Fig. 4.2 fi/e h5 in DDl HDF5file h5 GROUP

-
2017-11-13
多维hdf5文件的读取和写_course
2016-07-23我有一个8892x8x1016的hdf文件,我想把它读出来并保存为8x1016x8892的hdf5文件,我是用c语言写的哈!!大家有做这方面的嘛?给点建议。我才刚开始接触,属于小白
1.2MB
HDF5数据使用指南
2018-11-08本书介绍说明了hdf5数据对象和文件结构,HDF5程序模块、创建和修改数据对象的API功能,还介绍用于存取hdf5文件的一些有用工具
958KB
读取HDF5格式文件Demo
2017-12-20纯C++实现的,读取Hadoop HDF5格式文件的歌曲属性信息
Python h5py 读取HDF5文件的问题_course
2016-03-16运行结果: ``` >>> E:\PracticeData\SMAP_L2_SM_P_00865_D_20150331T171859_R12170_002.h5 False <HDF5 file "SMAP_L2_SM_P_00865_D_20150331T171859_R12170_002.h5" (mode r)> >>> ``` 。
-
下载
CS83785单节锂电池内置升压2x10W双声道D类音频功放IC.pdf
CS83785单节锂电池内置升压2x10W双声道D类音频功放IC.pdf
-
学院
MySQL 事务和锁
MySQL 事务和锁
-
学院
零基础极简以太坊智能合约开发环境搭建并开发部署
零基础极简以太坊智能合约开发环境搭建并开发部署
-
下载
KSC dataset KSC.mat
KSC dataset KSC.mat
-
学院
MySQL 查询与高级查询(多表、嵌套和正则表达式)
MySQL 查询与高级查询(多表、嵌套和正则表达式)
-
博客
数据分析有关概念研究
数据分析有关概念研究
-
学院
PPT大神之路高清教程
PPT大神之路高清教程
-
博客
安装JDK
安装JDK
-
下载
生产者-消费者问题的模拟实现.doc
生产者-消费者问题的模拟实现.doc
-
学院
华为1+X——网络系统建设与运维(高级)
华为1+X——网络系统建设与运维(高级)
-
博客
严重: 启动过滤器异常 java.lang.AbstractMethodError
严重: 启动过滤器异常 java.lang.AbstractMethodError
-
学院
《文件和目录操作命令》<Linux核心命令系列Series> <2.>
《文件和目录操作命令》<Linux核心命令系列Series> <2.>
-
博客
LeetCode每日一题,GO语言写法-20210303
LeetCode每日一题,GO语言写法-20210303
-
下载
重庆理工大学《电工电子技术》两套期末考试试卷.pdf
重庆理工大学《电工电子技术》两套期末考试试卷.pdf
-
下载
重庆理工大学《概率论与数理统计》两套期末考试试卷(含答案).pdf
重庆理工大学《概率论与数理统计》两套期末考试试卷(含答案).pdf
-
学院
MMM 集群部署实现 MySQL 高可用和读写分离
MMM 集群部署实现 MySQL 高可用和读写分离
-
下载
JESD224A-Flash Storage-Flash存储标准
JESD224A-Flash Storage-Flash存储标准
-
博客
基于java的SSM框架的流浪猫救助网站的设计与实现
基于java的SSM框架的流浪猫救助网站的设计与实现
-
学院
MySQL 四类管理日志(详解及高阶配置)
MySQL 四类管理日志(详解及高阶配置)
-
学院
QT编程思想【C++,基于QT 6】
QT编程思想【C++,基于QT 6】
-
博客
基于java的SSM框架理财管理系统的设计与实现
基于java的SSM框架理财管理系统的设计与实现
-
下载
unity简单的2D飞机大战游戏
unity简单的2D飞机大战游戏
-
博客
深度学习——负采样
深度学习——负采样
-
学院
投标方法论
投标方法论
-
学院
Unity RUST 逆向安全开发
Unity RUST 逆向安全开发
-
学院
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
-
学院
VMware vSphere ESXi 7 精讲/VCSA/VSAN
VMware vSphere ESXi 7 精讲/VCSA/VSAN
-
下载
湘少版三年级下册英语第二次月考试卷.pdf
湘少版三年级下册英语第二次月考试卷.pdf
-
学院
2021年软考系统规划与管理师-下午历年真题解析视频课程
2021年软考系统规划与管理师-下午历年真题解析视频课程
-
学院
vue3从0到1-超详细
vue3从0到1-超详细