fbpx
维基百科

HDF

层级数据格式(Hierarchical Data Format:HDF)是设计用来存储和组织大量数据的一组文件格式(HDF4HDF5)。它最初开发于美国国家超级计算应用中心,现在由非营利社团HDF Group支持,其任务是确保HDF5技术的持续开发和存储在HDF中数据的持续可访问性。

Hierarchical Data Format
HDF Group的logo
扩展名.hdf, .h4, .hdf4, .he2, .h5, .hdf5, .he5
魔術數字\211HDF\r\n\032\n
开发者The HDF Group
最新版本
5 1.14.1[1]
2023年5月10日,​4個月前​(2023-05-10
格式类型科学数据格式
免费格式?
网站www.hdfgroup.org/solutions/hdf5

伴随着这个目标,HDF库和相关工具可在自由的类BSD许可证下获得用于一般使用。HDF被很多商业和非商业软件平台所支持,包括JavaMATLABScilabOctaveMathematicaIDLPythonRFortranJulia。可免费获得的HDF发行中包括了库,命令行实用程序,测试套件源代码,Java接口,和基于Java的HDF查看器(HDFView)[2]

当前版本是HDF5,在设计和API上与主要的遗留版本HDF4有显著区别。

历史 编辑

在1987年由美国国家超级计算应用中心(NCSA)的图形基础任务攻坚组(GFTF)着手建立一种架构无关的软件库和文件格式,致力于满足在NCSA当时使用的多种不同计算平台之间移动科学数据的需要。额外的目标还包括有效的存储和访问大对象的能力,在一个容器内存储不同类型的众多对象的能力,增长格式来容纳新类型的对象和对象元数据的能力,用C和Fortran二者的程序访问存储数据的能力。最初称为AEHOO(全包容层级面向对象格式),新软件和文件格式最终叫做层级数据格式(HDF)。HDF的设计组合了来自很多不同格式的想法,包括TIFFCGMFITSMacintosh PICT英语PICT格式。这个计划在1990年和1992年收到了美国国家科学基金会(NSF)的至关重要的拨款。大约1990年代早期美国国家航空航天局(NASA)研究了用在地球观测系统(EOS)计划中的15种不同文件格式。在两年评述过程之后,HDF被选择为EOS数据和信息系统的标准格式。[3]

1996年美国能源部劳伦斯利弗摩尔洛斯阿拉莫斯桑迪亚国家实验室与NCSA抽调人员成立了数据建模和格式(DMF)小组,研究满足高级模拟和计算规划(ASC)需要的并行I/O能力的文件格式。在NASA的额外支持下,三实验室与NCSA联合开发了第一版的HDF5并于1998年发行。在2003年,R&D杂志[4]评选HDF5为“2002年一百个技术上最重要的新产品之一”。[3]

HDF4 编辑

HDF4是这个格式的较老版本,它支持可增殖的不同数据模型,包括了多维阵列、光栅图像和表格。每种都定义了特定的聚集数据类型,并提供一个API用来读取、写入、组织数据和元数据。HDF开发者和用户可以增加新数据模型。

HDF是自描述的,允许应用程序解释文件的结构和内容而不需要外部信息。一个HDF文件可以持有混合的有关联的对象,它们可以作为一个群组或作为个别对象来访问。用户可以建立自己的叫做“vgroups”的群组结构。

HDF4格式有很多限制[5][6]。它缺乏清晰的对象模型,这导致持难于持续支持和改进。支持多种不同的接口风格(图像、表格、阵列)导致了复杂的API。对元数据的支持依赖于使用的是哪个接口;SD(科学数据集)对象支持任意命名属性,而其他类型只支持预定义的元数据。可能最重要的是,使用32-bit位有符号整数寻址限制了HDF4文件大小极大为2GB,这在很多现代科学应用中是不可接受的。它仍被HDF Group活跃支持着,可见于其支持页面][7]

HDF5 编辑

 
HDF结构举例

HDF5格式被设计解决HDF4库的某些限制,并致力于满足现代系统和应用的当前和预期要求。

HDF5简化了文件结构,只包含两种主要的对象类型:

  • 数据集,它是同质类型的多维阵列
  • 群组,它是持有数据集和其他群组的容器结构。

这真正产生了层级的、类似文件系统的数据格式。事实上,在HDF5文件中的资源可以使用类似POSIX语法的“/路径/至/资源”来访问。元数据以用户定义形式存储,命名特性附加到群组和数据集之上。表示图形和表格的更复杂存储API,可以接着使用数据集、群组和特性来建造起来。

除了这些在文件格式上的进步,HDF5包括了改进的类型系统,和表示在数据集区域上选择的数据空间对象。API是面向对象的,有关于数据集、群组、特性、类型、数据空间和属性列表。

最新版的NetCDF版本4基于了HDF5。

由于它使用了B树来索引表格对象,HDF5有效工作于时间序列数据,比如股价序列,网络监控数据,和3D气象数据。大批量的数据直接进入阵列(表格对象),它可以比SQL数据库的行存储更快访问,而非阵列数据可获得B树访问。HDF5数据存储机制比SQL星模式英语Star schema更简单和快速。

批评 编辑

对HDF5的批评来源于它的单体设计和冗长规定。

  • HDF5不强制使用UTF-8,所以客户应用可能在多数位置上都预期ASCII码。
  • 在文件中的数据集数据不能释放,除非使用外部工具(h5repack)生成文件复本[8]

接口 编辑

官方支持的API 编辑

  • C
  • C++
  • CLI - .Net
  • FortranFortran 90
  • HDF5 Lite (H5LT) – 轻量级C接口
  • HDF5 Image (H5IM) – 图像和光栅的C接口
  • HDF5 Table (H5TB) – 表格的C接口
  • HDF5 Packet Table (H5PT) – 处理“包”数据的C和C++接口,高速访问
  • HDF5 Dimension Scale (H5DS) – 允许向HDF5增加维度缩放
  • Java

第三方绑定 编辑

  • CGNS,使用HDF5作为主存储。
  • hdf5-cffi[9]
  • D语言,提供到C API的绑定[10],有着高层h5py风格的包装器正在开发。
  • Dymola[11],使用叫做科学数据格式(SDF)的实现支持HDF5导出,自从Dymola 2016 FD01发行。
  • ErlangElixirLFE英语LFE (programming language)语言,可以使用BEAM语言绑定[12]
  • GNU数据语言
  • Go语言,通过gonum[13]的hdf5包[14]
  • HDFql[15],使用户能用C、C++、Java、Python、C#、Fortran和R语言通过高层语言(类似SQL)管理HDF5文件。
  • Huygens软件[16],自从版本3.5使用HDF5作为主存储。
  • IDL
  • IGOR Pro[17],提供对HDF5文件的完全支持[18]
  • JHDF5库[19],是一个可替代的Java绑定,采用了与官方HDF5 Java绑定不同的方式,一些用户觉得更简单。
  • jHDF库[20],一个纯Java实现,提供了对HDF5文件的只读访问。
  • JSON,通过hdf5-json[21]
  • Julia语言,通过HDF5包[22]提供HDF5支持。
  • LabVIEW,可以通过第三方库获得HDF支持,比如h5labview[23]和lvhdf5[24]
  • Lua,通过lua-hdf5[25]库。
  • MATLABScilabOctave,在新近发行中使用HDF5作为主存储格式。
  • Mathematica HDF Import and Export[26],提供HDF和HDF5数据的直接分析。
  • Perl语言[27]
  • Python语言,通过h5py[28](对HDF5抽象的高层和低层访问二者)和通过PyTables[29](带有高级索引和类似数据库查询能力的高层接口)支持HDF5。通过Python-HDF4[30]和/或PyHDF[31]对于Python 2和Python 3二者支持HDF4。流行的数据操纵包pandas可以通过PyTables导入和导出HDF5。
  • R语言,通过rhdf5[32]和hdf5r[33]包提供支持。
  • Rust语言,通过第三方库获得HDF支持,比如hdf库[34]

工具 编辑

  • Apache Spark HDF5 Connector[35],用于Apache Spark的HDF5连接器
  • Apache Drill HDF5 Plugin[36],用于Apache Drill的HDF5插件,允许在HDF5文件集上执行SQL查询
  • HDF Product Designer[37],可互操作的HDF5数据产品建立GUI工具
  • HDF Explorer[38],可读取HDF、HDF5和netCDF的数据可视化程序
  • HDFView[39],基于Java的HDF文件的浏览器和编辑器
  • ViTables[40],用Python写的HDF5和PyTables文件的浏览器和编辑器
  • Panoply[41],基于Java的netCDF、HDF和GRIB数据查看器

参见 编辑

  • 通用数据格式 (CDF)
  • FITS,用于天文学的数据格式
  • GRIB (GRIdded Binary),用于气象学的数据格式
  • NetCDF,Netcdf Java库使用纯Java读取HDF5、HDF4、HDF-EOS和其他格式
  • Protocol Buffers,Google的数据交换格式

引用 编辑

  1. ^ HDF5 version 1.12.2 released on 2022-04-19. [27 Apr 2022]. 
  2. ^ Java-based HDF Viewer (HDFView). [2019-06-05]. (原始内容于2016-08-11). 
  3. ^ 3.0 3.1 HDF Group History. [2019-06-08]. (原始内容于2019-06-08). 
  4. ^ R&D杂志(页面存档备份,存于互联网档案馆
  5. ^ . [2019-06-05]. (原始内容存档于2009-03-30). 
  6. ^ . [2019-06-05]. (原始内容存档于2016-04-19). 
  7. ^ 支持页面 (页面存档备份,存于互联网档案馆
  8. ^ Rossant, Cyrille. Moving away from HDF5. cyrille.rossant.net. [21 April 2016]. (原始内容于2016-01-08). 
  9. ^ Common Lisp库hdf5-cffi (页面存档备份,存于互联网档案馆
  10. ^ 到C API的绑定 (页面存档备份,存于互联网档案馆
  11. ^ Dymola (页面存档备份,存于互联网档案馆
  12. ^ BEAM语言绑定 (页面存档备份,存于互联网档案馆
  13. ^ gonum (页面存档备份,存于互联网档案馆
  14. ^ hdf5 (页面存档备份,存于互联网档案馆
  15. ^ HDFql(页面存档备份,存于互联网档案馆
  16. ^ Huygens软件 (页面存档备份,存于互联网档案馆
  17. ^ IGOR Pro (页面存档备份,存于互联网档案馆
  18. ^ Igor Pro includes extensive support for reading and writing HDF5 files through an included HDF5 package (页面存档备份,存于互联网档案馆).
  19. ^ JHDF5库 (页面存档备份,存于互联网档案馆
  20. ^ jHDF库(页面存档备份,存于互联网档案馆
  21. ^ hdf5-json(页面存档备份,存于互联网档案馆
  22. ^ HDF5 (页面存档备份,存于互联网档案馆
  23. ^ h5labview (页面存档备份,存于互联网档案馆
  24. ^ lvhdf5 (页面存档备份,存于互联网档案馆
  25. ^ lua-hdf5(页面存档备份,存于互联网档案馆
  26. ^ HDF Import and Export (页面存档备份,存于互联网档案馆)Mathematica documentation
  27. ^ PDL::IO::HDF5. [2019-06-05]. (原始内容于2019-06-05). 
  28. ^ h5py (页面存档备份,存于互联网档案馆
  29. ^ PyTables (页面存档备份,存于互联网档案馆
  30. ^ Python-HDF4 (页面存档备份,存于互联网档案馆
  31. ^ PyHDF (页面存档备份,存于互联网档案馆
  32. ^ rhdf5(页面存档备份,存于互联网档案馆
  33. ^ hdf5r(页面存档备份,存于互联网档案馆
  34. ^ hdf5 (页面存档备份,存于互联网档案馆
  35. ^
  36. ^ Apache Drill HDF5 Plugin
  37. ^ HDF Product Designer (页面存档备份,存于互联网档案馆
  38. ^ HDF Explorer(页面存档备份,存于互联网档案馆
  39. ^ HDFView (页面存档备份,存于互联网档案馆
  40. ^ ViTables (页面存档备份,存于互联网档案馆
  41. ^ Panoply

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。

外部链接 编辑

层级数据格式, hierarchical, data, format, 是设计用来存储和组织大量数据的一组文件格式, 它最初开发于美国国家超级计算应用中心, 现在由非营利社团, group支持, 其任务是确保5技术的持续开发和存储在中数据的持续可访问性, hierarchical, data, format, group的logo扩展名, hdf4, hdf5, he5魔術數字, n开发者the, group最新版本5, 2023年5月10日, 4個月前, 2023, 格式类型科学数据格式免费格式, 是网站www,. 层级数据格式 Hierarchical Data Format HDF 是设计用来存储和组织大量数据的一组文件格式 HDF4 HDF5 它最初开发于美国国家超级计算应用中心 现在由非营利社团HDF Group支持 其任务是确保HDF5技术的持续开发和存储在HDF中数据的持续可访问性 Hierarchical Data FormatHDF Group的logo扩展名 hdf h4 hdf4 he2 h5 hdf5 he5魔術數字 211HDF r n 032 n开发者The HDF Group最新版本5 1 14 1 1 2023年5月10日 4個月前 2023 05 10 格式类型科学数据格式免费格式 是网站www wbr hdfgroup wbr org wbr solutions wbr hdf5伴随着这个目标 HDF库和相关工具可在自由的类BSD许可证下获得用于一般使用 HDF被很多商业和非商业软件平台所支持 包括Java MATLAB Scilab Octave Mathematica IDL Python R Fortran和Julia 可免费获得的HDF发行中包括了库 命令行实用程序 测试套件源代码 Java接口 和基于Java的HDF查看器 HDFView 2 当前版本是HDF5 在设计和API上与主要的遗留版本HDF4有显著区别 目录 1 历史 2 HDF4 3 HDF5 3 1 批评 4 接口 4 1 官方支持的API 4 2 第三方绑定 5 工具 6 参见 7 引用 8 外部链接历史 编辑在1987年由美国国家超级计算应用中心 NCSA 的图形基础任务攻坚组 GFTF 着手建立一种架构无关的软件库和文件格式 致力于满足在NCSA当时使用的多种不同计算平台之间移动科学数据的需要 额外的目标还包括有效的存储和访问大对象的能力 在一个容器内存储不同类型的众多对象的能力 增长格式来容纳新类型的对象和对象元数据的能力 用C和Fortran二者的程序访问存储数据的能力 最初称为AEHOO 全包容层级面向对象格式 新软件和文件格式最终叫做层级数据格式 HDF HDF的设计组合了来自很多不同格式的想法 包括TIFF CGM FITS和Macintosh PICT 英语 PICT 格式 这个计划在1990年和1992年收到了美国国家科学基金会 NSF 的至关重要的拨款 大约1990年代早期美国国家航空航天局 NASA 研究了用在地球观测系统 EOS 计划中的15种不同文件格式 在两年评述过程之后 HDF被选择为EOS数据和信息系统的标准格式 3 1996年美国能源部的劳伦斯利弗摩尔 洛斯阿拉莫斯和桑迪亚国家实验室与NCSA抽调人员成立了数据建模和格式 DMF 小组 研究满足高级模拟和计算规划 ASC 需要的并行I O能力的文件格式 在NASA的额外支持下 三实验室与NCSA联合开发了第一版的HDF5并于1998年发行 在2003年 R amp D杂志 4 评选HDF5为 2002年一百个技术上最重要的新产品之一 3 HDF4 编辑HDF4是这个格式的较老版本 它支持可增殖的不同数据模型 包括了多维阵列 光栅图像和表格 每种都定义了特定的聚集数据类型 并提供一个API用来读取 写入 组织数据和元数据 HDF开发者和用户可以增加新数据模型 HDF是自描述的 允许应用程序解释文件的结构和内容而不需要外部信息 一个HDF文件可以持有混合的有关联的对象 它们可以作为一个群组或作为个别对象来访问 用户可以建立自己的叫做 vgroups 的群组结构 HDF4格式有很多限制 5 6 它缺乏清晰的对象模型 这导致持难于持续支持和改进 支持多种不同的接口风格 图像 表格 阵列 导致了复杂的API 对元数据的支持依赖于使用的是哪个接口 SD 科学数据集 对象支持任意命名属性 而其他类型只支持预定义的元数据 可能最重要的是 使用32 bit位有符号整数寻址限制了HDF4文件大小极大为2GB 这在很多现代科学应用中是不可接受的 它仍被HDF Group活跃支持着 可见于其支持页面 7 HDF5 编辑 nbsp HDF结构举例HDF5格式被设计解决HDF4库的某些限制 并致力于满足现代系统和应用的当前和预期要求 HDF5简化了文件结构 只包含两种主要的对象类型 数据集 它是同质类型的多维阵列 群组 它是持有数据集和其他群组的容器结构 这真正产生了层级的 类似文件系统的数据格式 事实上 在HDF5文件中的资源可以使用类似POSIX语法的 路径 至 资源 来访问 元数据以用户定义形式存储 命名特性附加到群组和数据集之上 表示图形和表格的更复杂存储API 可以接着使用数据集 群组和特性来建造起来 除了这些在文件格式上的进步 HDF5包括了改进的类型系统 和表示在数据集区域上选择的数据空间对象 API是面向对象的 有关于数据集 群组 特性 类型 数据空间和属性列表 最新版的NetCDF版本4基于了HDF5 由于它使用了B树来索引表格对象 HDF5有效工作于时间序列数据 比如股价序列 网络监控数据 和3D气象数据 大批量的数据直接进入阵列 表格对象 它可以比SQL数据库的行存储更快访问 而非阵列数据可获得B树访问 HDF5数据存储机制比SQL星模式 英语 Star schema 更简单和快速 批评 编辑 对HDF5的批评来源于它的单体设计和冗长规定 HDF5不强制使用UTF 8 所以客户应用可能在多数位置上都预期ASCII码 在文件中的数据集数据不能释放 除非使用外部工具 h5repack 生成文件复本 8 接口 编辑官方支持的API 编辑 C C CLI Net Fortran Fortran 90 HDF5 Lite H5LT 轻量级C接口 HDF5 Image H5IM 图像和光栅的C接口 HDF5 Table H5TB 表格的C接口 HDF5 Packet Table H5PT 处理 包 数据的C和C 接口 高速访问 HDF5 Dimension Scale H5DS 允许向HDF5增加维度缩放 Java 第三方绑定 编辑 CGNS 使用HDF5作为主存储 hdf5 cffi 9 D语言 提供到C API的绑定 10 有着高层h5py风格的包装器正在开发 Dymola 11 使用叫做科学数据格式 SDF 的实现支持HDF5导出 自从Dymola 2016 FD01发行 Erlang Elixir和LFE 英语 LFE programming language 语言 可以使用BEAM语言绑定 12 GNU数据语言 Go语言 通过gonum 13 的hdf5包 14 HDFql 15 使用户能用C C Java Python C Fortran和R语言通过高层语言 类似SQL 管理HDF5文件 Huygens软件 16 自从版本3 5使用HDF5作为主存储 IDL IGOR Pro 17 提供对HDF5文件的完全支持 18 JHDF5库 19 是一个可替代的Java绑定 采用了与官方HDF5 Java绑定不同的方式 一些用户觉得更简单 jHDF库 20 一个纯Java实现 提供了对HDF5文件的只读访问 JSON 通过hdf5 json 21 Julia语言 通过HDF5包 22 提供HDF5支持 LabVIEW 可以通过第三方库获得HDF支持 比如h5labview 23 和lvhdf5 24 Lua 通过lua hdf5 25 库 MATLAB Scilab或Octave 在新近发行中使用HDF5作为主存储格式 Mathematica HDF Import and Export 26 提供HDF和HDF5数据的直接分析 Perl语言 27 Python语言 通过h5py 28 对HDF5抽象的高层和低层访问二者 和通过PyTables 29 带有高级索引和类似数据库查询能力的高层接口 支持HDF5 通过Python HDF4 30 和 或PyHDF 31 对于Python 2和Python 3二者支持HDF4 流行的数据操纵包pandas可以通过PyTables导入和导出HDF5 R语言 通过rhdf5 32 和hdf5r 33 包提供支持 Rust语言 通过第三方库获得HDF支持 比如hdf库 34 工具 编辑Apache Spark HDF5 Connector 35 用于Apache Spark的HDF5连接器 Apache Drill HDF5 Plugin 36 用于Apache Drill的HDF5插件 允许在HDF5文件集上执行SQL查询 HDF Product Designer 37 可互操作的HDF5数据产品建立GUI工具 HDF Explorer 38 可读取HDF HDF5和netCDF的数据可视化程序 HDFView 39 基于Java的HDF文件的浏览器和编辑器 ViTables 40 用Python写的HDF5和PyTables文件的浏览器和编辑器 Panoply 41 基于Java的netCDF HDF和GRIB数据查看器参见 编辑通用数据格式 CDF FITS 用于天文学的数据格式 GRIB GRIdded Binary 用于气象学的数据格式 NetCDF Netcdf Java库使用纯Java读取HDF5 HDF4 HDF EOS和其他格式 Protocol Buffers Google的数据交换格式引用 编辑 HDF5 version 1 12 2 released on 2022 04 19 27 Apr 2022 Java based HDF Viewer HDFView 2019 06 05 原始内容存档于2016 08 11 3 0 3 1 HDF Group History 2019 06 08 原始内容存档于2019 06 08 R amp D杂志 页面存档备份 存于互联网档案馆 How is HDF5 different from HDF4 2019 06 05 原始内容存档于2009 03 30 Are there limitations to HDF4 files 2019 06 05 原始内容存档于2016 04 19 支持页面 页面存档备份 存于互联网档案馆 Rossant Cyrille Moving away from HDF5 cyrille rossant net 21 April 2016 原始内容存档于2016 01 08 Common Lisp库hdf5 cffi 页面存档备份 存于互联网档案馆 到C API的绑定 页面存档备份 存于互联网档案馆 Dymola 页面存档备份 存于互联网档案馆 BEAM语言绑定 页面存档备份 存于互联网档案馆 gonum 页面存档备份 存于互联网档案馆 hdf5 页面存档备份 存于互联网档案馆 HDFql 页面存档备份 存于互联网档案馆 Huygens软件 页面存档备份 存于互联网档案馆 IGOR Pro 页面存档备份 存于互联网档案馆 Igor Pro includes extensive support for reading and writing HDF5 files through an included HDF5 package 页面存档备份 存于互联网档案馆 JHDF5库 页面存档备份 存于互联网档案馆 jHDF库 页面存档备份 存于互联网档案馆 hdf5 json 页面存档备份 存于互联网档案馆 HDF5 页面存档备份 存于互联网档案馆 h5labview 页面存档备份 存于互联网档案馆 lvhdf5 页面存档备份 存于互联网档案馆 lua hdf5 页面存档备份 存于互联网档案馆 HDF Import and Export 页面存档备份 存于互联网档案馆 Mathematica documentation PDL IO HDF5 2019 06 05 原始内容存档于2019 06 05 h5py 页面存档备份 存于互联网档案馆 PyTables 页面存档备份 存于互联网档案馆 Python HDF4 页面存档备份 存于互联网档案馆 PyHDF 页面存档备份 存于互联网档案馆 rhdf5 页面存档备份 存于互联网档案馆 hdf5r 页面存档备份 存于互联网档案馆 hdf5 页面存档备份 存于互联网档案馆 Apache Spark HDF5 Connector Apache Drill HDF5 Plugin HDF Product Designer 页面存档备份 存于互联网档案馆 HDF Explorer 页面存档备份 存于互联网档案馆 HDFView 页面存档备份 存于互联网档案馆 ViTables 页面存档备份 存于互联网档案馆 Panoply 本條目部分或全部内容出自以GFDL授權發佈的 自由線上電腦詞典 FOLDOC 外部链接 编辑官方网站 nbsp What is HDF5 页面存档备份 存于互联网档案馆 HDF EOS Tools and Information Center 页面存档备份 存于互联网档案馆 Open Navigation Surface 页面存档备份 存于互联网档案馆 HDF5使用简介 取自 https zh wikipedia org w index php title HDF amp oldid 79121211, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。