HDF格式可以被看成一本带目录的多章节书。HDF文件作为“数据书”,每一章包含不同类型的数据元素。HDF文件用“数据目录”列出数据元素。

一个HDF 文件应包括一个文件头,一个或多个描述符块,若干个数据元素。

数据头是用来确定一个文件是否为HDF文件,描述符块存有数据描述符的序号。一个数据描述符和数据元素一起组成了数据对象。数据对象是HDF 的基本结构。

文件头:

文件头占用文件的前4个字节,它由4个ASCII码形式的控制字符组成,每个字符占用一个字节。第一个控制字符是‘N’,第二个是‘C’, 第三个是‘S’,第四为‘A’,即(^N^C^S^A).

数据对象:

一个数据对象是由一个数据描述符和一个数据元素组成。数据描述符包含了数据元素的类型、位置、尺度等信息。数据元素是实际的数据资料。HDF 这种数据组织方式可以实现HDF 数据的自我描述。

(1) 数据描述符

所有的数据描述符都为12个字节长,它包含4个区域:标识符(占16-bit),参照数(16-bit),数据偏移量(32-bit),数据长度(32-bit)。

标识符:

数据标识符(tag)是用来确定数据元素区数据类型的。它是16位无符号整型值(1~65535),如果没有与其相对应的数据元素,则tag为DFTGA_NULL(或0)。下面为tag的值的说明:

1~32767——HDF 结构专用

32768~64999——可由用户定义

65000~65535——HDF 规格扩展使用

参照数:

对于HDF 文件中的每个标记符,都有唯一的一个参照数与其相对应。参照数是一个16—bit无符号整型数,在数据对象中一般是不可变的。标记符和参照数相结合确定唯一的数据对象。

数据偏移量和长度:

数据偏移量是指从文件开始位置到数据元素的起始位置所包含的字节数。长度是指整个数据元素区占用字节数。数据偏移量和长度均为32-bit 无符号整型数。

(2) 数据元素

数据元素是数据对象中的裸数据部分。

(3) 在HDF 文件中将数据对象分组

在HDF 文件中通常将含有相关数据的数据对象分为一组。这些数据对象组称为数据集。HDF 用户采用应用界面来处理这些数据集。例如:一套8-bit的图像数据集一般有3个数据对象:一组对象用来描述数据集的成员,一组对象是图像数据,另一组对象则用来描述图像的尺度大小。一个数据对象可以同时属于多个数据集,例如包含在一个栅格图像中的调色板对象,如果它的标识号和参照值也同时包含在另一个数据集描述符中,那么则可以被另一个栅格图像调用。

python的代码读写实现:

#-*- coding: utf-8 -*-

importh5pyimportnumpy as np#HDF5的写入:

imgData = np.zeros((2,4))

f= h5py.File('HDF5_FILE.h5','w') #创建一个h5文件,文件指针是f

f['data'] = imgData #将数据写入文件的主键data下面

f['labels'] = np.array([1,2,3,4,5]) #将数据写入文件的主键labels下面

f.close() #关闭文件

#HDF5的读取:

f = h5py.File('HDF5_FILE.h5','r') #打开h5文件#可以查看所有的主键

for key inf.keys():print(f[key].name)print(f[key].shape)print(f[key].value)

python 桌面应用 h5_hdf 5文件格式及python中利用h5py模块读写h5文件相关推荐

  1. python怎么打开h5文件_python中利用h5py模块读取h5文件中的主键方法

    如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF5_FILE.h5 ...

  2. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  3. python 【1】h5py模块读取*.h5文件

    本文只是简单读取示例,非函数详细讲解. 格式使用起来较简单,为键值对形式. import h5py h5f = h5py.File("C:\\aaa.h5", "r&qu ...

  4. python导入excel文件-python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  5. Python使用openpyxl模块读写excel文件

    Python使用openpyxl模块读写excel文件 openpyxl是一个用于写入和读取xlsx格式的excel文件的Python模块. excel2010后的后缀名为xlsx,不再是xls,使用 ...

  6. 利用python中的csv库读写csv文件

    利用python中的csv库读写csv文件 python读写csv文件就我知道的方法有:1)利用csv库,2)利用读写txt文件的方式处理,3)利用numpy或pandas库处理 在这篇博客中,博主就 ...

  7. python中docx模块的使用_python使用docx模块读写docx文件的方法与docx模块常用方法详解...

    一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

  8. python中translate的用法_如何在python中利用translate模块实现一个翻译功能

    如何在python中利用translate模块实现一个翻译功能 发布时间:2020-12-18 14:16:00 来源:亿速云 阅读:86 这期内容当中小编将会给大家带来有关如何在python中利用t ...

  9. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  10. python使用docx模块读写docx文件的方法与docx模块常用方法

    一,docx模块 python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象 ...

最新文章

  1. php函数的严格类型,严格模式
  2. .NET Core开发日志——RequestDelegate
  3. caffe不支持relu6_国产AI框架再进化!百度Paddle Lite发布:率先支持华为NPU在线编译,全新架构更多硬件支持...
  4. UkrGuru.SqlJson——你的SQL Server和.NET 5之间的链接
  5. java 数组计算隐藏电话号码
  6. 【万里征程——Windows App开发】如何使用粘贴板
  7. 使用git小乌龟拉取,更新,上传资料文档
  8. 【计算机网络微课堂】1.3 三种交换方式:电路交换、分组交换和报文交换
  9. 导入oracle 904,江湖救急..ora-904怎么处理?
  10. 蓝桥杯练习题 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
  11. 2021-2027中国家具拉手市场现状及未来发展趋势
  12. 教师综合素质5--地理名胜
  13. gta5结局杀老崔我哭了_GTA5:每个主角都在故事里得到了自己想要的东西,但崔佛却是白给...
  14. 2017C语言程序设计预备作业
  15. matlab寻峰代码,寻峰的函数!! - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
  16. 计算机的存储器(详解)
  17. 分子动力学模拟gro格式转换为 car
  18. 求超大文件上传方案( Web )
  19. python replace函数 成功 失败_解决python replace函数替换无效问题
  20. 广域网技术——SR-MPLS技术基础理论讲解

热门文章

  1. Nginx动静分离经典配置
  2. 缠中说禅:三个买点和三个卖点(修改版)
  3. 计算机图形表示的原理
  4. [走过的路]联想时光——人艰不拆(店员篇+推销员篇)
  5. Task.Yield()和Task.CompletedTask有什么不同
  6. 俄罗斯方块游戏开发教程1:整体流程
  7. 谷歌大中华区总裁李开复离职
  8. 【黑客帝国数字雨】学习总结
  9. 高德地图根据输入地址查询轨迹路线以及获取到所有的路线上的经纬度点
  10. Js 把html字符串显示,js Html结构转字符串形式显示代码