目录


1. HDF5 是什么

HDF5(Hierarchical Data Format v5)是一个二进制科学数据容器,核心能力是把“数据 + 元数据 + 组织结构 + 高性能 I/O 策略”放进一个文件里。

1.1 你会从 HDF5 得到什么


2. 与 SAC / miniSEED 的区别

维度 SAC miniSEED HDF5
主要定位 分析与可视化友好(单道/单分量常见) 台网采集/归档/交换标准(连续流强) 科学数据容器(自定义 schema,训练与批处理强)
组织方式 海量小文件 + header 波形分片 + 生态配套(StationXML) 少量大文件 + 内部层级/表
元数据 固定 header 字段 元数据常外置 自由扩展 attributes / meta 表
训练 I/O 打开文件多,元数据开销大 同上(但连续流场景强) 按索引随机读快,适合 X[N,3,T]
适合场景 震相处理、研究常用工具链 台网数据分发、实时流 深度学习、批量实验、可追溯数据产品

2.1 为什么使用 HDF5

当你做 SWS(例如标签 $ (\phi,\Delta t) $)或任何窗口化学习任务时,训练访问常是:

SAC/miniSEED 的痛点是“文件系统元数据开销”:打开/关闭/遍历海量小文件非常慢。
HDF5 的优势是“数组式访问”:按索引切片读写,吞吐更稳定。


3. 核心对象模型:Group / Dataset / Attribute

3.1 Group(组)

3.2 Dataset(数据集)

3.3 Attribute(属性)

3.4 推荐的元数据分层策略


4. 地球物理数据集:两种 schema

选择 schema 的关键:“可读性”还是“训练吞吐”?

4.1 Schema A:层级树(直观、友好)

适合:数据量中等、以研究分析与手工检查为主

优点:

缺点:


5. 性能核心:Chunk / Compression / Cache

一句话:HDF5 是否快,主要取决于 chunk 是否匹配访问模式

5.1 Chunk(分块)决定切片读取成本

5.2 Compression(压缩)不一定慢

对波形这种相关性强的数据,压缩后磁盘读取量降低,常常整体更快。
但前提是:chunk 不能太大,且访问模式不要让同一 chunk 反复解压。

5.3 Cache(chunk cache)决定“是否重复解压”

如果 chunk 大于 cache,或访问模式跨很多 chunk,会造成:

5.4 地球物理训练数据的经验 chunk 配方

访问模式 1:以样本为单位随机读 X[i,:,:]

访问模式 2:以时间片段读 X[i,:,t0:t1]


6. 并行与数据规模:sharding、VDS、Parallel HDF5

6.1 推荐路线:sharding(分片)优先

当数据上到几十 GB / 上百 GB:

6.2 VDS:把多个 shard 映射成一个“虚拟大数据集”

优点:

6.3 Parallel HDF5:HPC/MPI 场景的正统方案

适合:

工程侧常见折中:


7. 地球物理工程实践:从 SAC/miniSEED 到 HDF5

下面是一条适合 SWS / 三分量窗段学习的典型流水线:

  1. 扫描目录与索引构建
  1. 读取三分量并统一通道顺序
  1. 预处理固化(建议全写入 attributes / meta)
  1. 切窗与样本化
  1. 写入 HDF5(扁平大数组 + meta 表)
转载请注明出处