对比
HDF5 与 netCDF
HDF5 是用于层级数据的通用容器;netCDF 提供科学数据模型和 API。netCDF-4 以 HDF5 为存储基础,但任意 HDF5 文件不一定能作为 netCDF-4 读取。
应该选择哪种格式?
通用层级结构或 HDF5 工具集成优先时选 HDF5;科学数组需按维度、变量和属性组织时选 netCDF。先确认读写工具支持。
适用于 HDF5
以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据
- 用组、数据集和属性组织复杂数据
- 需要局部读写或数据集级压缩的科学工作流
适用于 netCDF
存储和交换气候、天气与地球科学的数组型数据
- 用维度、变量和属性描述多维数据
- 通过 netCDF 工具进行可移植的科学数据工作流
基本信息
| 项目 | HDF5 | netCDF |
|---|---|---|
| 扩展名 | .h5, .hdf5 | .nc, .nc4, .cdf |
| MIME 类型 | ||
| 常见用途 | 以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据 | 存储和交换气候、天气与地球科学的数组型数据 |
| 打开方式 | 使用支持 HDF5 的可视化或分析软件、或程序库打开。检查组层级、数据集形状与类型、属性和筛选器。不同应用可能定义自己的 HDF5 约定,请同时查阅创建者文档。 | 使用支持 netCDF 的可视化或分析软件或库。检查变量、维度、属性和文件变体,并核对坐标变量、单位、日历、缺失值及读取工具所期待的 CF 约定。 |
| 导出或转换 | 转换为 CSV、Parquet、FITS 等格式前,先确定如何映射层级、数组维度和类型、属性、单位与坐标。目标格式可能无法表达某些结构或元数据;请保留原文件并核对数据。 | 转换为 CSV、HDF5、Zarr 等格式时,确认维度、变量类型、属性、坐标和时间日历是否保留。转换为 classic 模型可能丢失扩展功能;CSV 无法完整表达层级、类型和属性。 |
按用途选择
用组、数据集和属性组织复杂数据
以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据
HDF5需要局部读写或数据集级压缩的科学工作流
以层级结构存储大型科学和技术数据 · 在一个容器中保存多维数组及相关元数据
HDF5用维度、变量和属性描述多维数据
存储和交换气候、天气与地球科学的数组型数据
netCDF通过 netCDF 工具进行可移植的科学数据工作流
存储和交换气候、天气与地球科学的数组型数据
netCDF关键点 1
HDF5 定义组、数据集和属性;netCDF 以科学数据的维度、变量和属性为核心。
进一步了解差异关键点 2
netCDF 包含经典格式和 netCDF-4;后者基于 HDF5,但结构受 netCDF 模型约束。
进一步了解差异进一步了解差异
需要灵活层级或 HDF5 专用工具时优先考虑 HDF5。应用依赖科学数据模型和约定时优先考虑 netCDF。确认具体变体与软件兼容性。
- HDF5 是包含组、数据集和属性的通用层级数据模型;netCDF 围绕维度、变量和属性组织科学数据。
- netCDF 有经典系列和 netCDF-4 格式。netCDF-4 底层使用 HDF5,但并非每种 HDF5 结构都可解释为 netCDF-4。
- 迁移时检查维度、坐标、单位、缺失值、压缩、属性及额外 HDF5 对象。验证完成前保留原文件。
常见问题
所有 HDF5 文件都能作为 netCDF-4 打开吗?
不能。netCDF-4 使用 HDF5 存储,但库要求文件结构符合 netCDF-4 模型。