如何在hdf5中存储模拟数据?
how to store simulation data in hdf5?
我想创建一个存储模拟数据的 HDF5 文件。数据由快照流组成,它们具有相同(或非常相似)的格式,但模拟时间不同。这个想法是,在读取文件后,可以在给定的模拟时间间隔内搜索快照。
这在 HDF5 中如何实现?
显然,每个快照都必须使用 H5::Group
,这显然必须具有不同的名称(比如 'snapshot1'、'snapshot2' 等)。我可以在文件中添加 snapshot_name:time
table 以便快速搜索吗?
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): ...
我想创建一个存储模拟数据的 HDF5 文件。数据由快照流组成,它们具有相同(或非常相似)的格式,但模拟时间不同。这个想法是,在读取文件后,可以在给定的模拟时间间隔内搜索快照。
这在 HDF5 中如何实现?
显然,每个快照都必须使用 H5::Group
,这显然必须具有不同的名称(比如 'snapshot1'、'snapshot2' 等)。我可以在文件中添加 snapshot_name:time
table 以便快速搜索吗?
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): ...