如何在hdf5中存储模拟数据?

时间:2015-07-01 15:56:47

标签: c++ hdf5

我想创建一个存储模拟数据的HDF5文件。数据由快照流组成,这些快照具有相同(或非常相似)的格式,但模拟时间不同。我们的想法是,在读取文件后,可以在给定的模拟时间间隔内搜索快照。

如何在HDF5中实现这一目标?

显然,必须为每个快照使用H5::Group,这显然必须具有不同的名称(例如'snapshot1','snapshot2'等)。我可以在文件中添加snapshot_name:time表格以便快速搜索吗?

1 个答案:

答案 0 :(得分:1)

HDF5是自描述数据格式,这意味着如何向每个组添加信息的最佳方式是添加属性。

HDF5 "result.h5" {
GROUP "/" {
   GROUP "Timestep_0" {
      ATTRIBUTE "Time" {
         DATATYPE  H5T_IEEE_F64LE
         DATASPACE  SCALAR
         DATA {
         (0): 0
         }
      }
      DATASET "Temperature" {
         DATATYPE  H5T_IEEE_F32LE
         DATASPACE  SIMPLE { ( 128, 128 ) / ( 128, 128 ) }
         DATA {
         (0,0): ...