即时将C ++仿真数据写入HDF5文件

时间:2018-07-26 14:44:00

标签: c++ hdf5 data-storage on-the-fly

我想我关心的是一个相对简单的问题。

我目前正在进行一个仿真,在给定数量的仿真步骤中,我跟踪一个粒子的时间,位置和方向。

任务是:只需将数据动态地写入h5文件即可。

到目前为止,我使用Jupyter进行了此操作。使用h5py-package,通过

创建预定义结构(列x行)的数据集非常简单
  
    

outfile = h5py.File(“ outfile.h5”,“ w”)

         

dset = outfile.create_dataset(“ dsetname”,(行数,列数))

  

,然后将每个模拟时间步的数据逐行写入数据集,

  
    

dset [time_step] = np.array([t,x,phi])

  

现在,我转到C ++,在那里进行了仿真,并希望以与Python相同的方式存储数据。

但是,从this之类的基本示例中,必须在模拟运行期间将整个数据集存储在一个数组中,然后再将其内容写入h5文件。

这不是很优雅。就像使用Python一样,我想将数据逐行写入HDF5数据集中-而不将大量的数据(有时多达几GB)存储在数组中。

不幸的是,到目前为止,我还没有找到一种方法来实现将与Python一起使用的过程实现为C ++。

有人遇到过类似的问题,可以告诉我如何解决这个问题吗?

谢谢!

最好, 斯文

0 个答案:

没有答案