我试图使用HDF5来存储时间序列的EEG数据。这些文件可能非常大,由许多通道组成,我喜欢HDF5文件格式(惰性I/O,动态压缩,mpi等)的功能。HDF5数据集中事件的链接
脑电图数据的一个常见问题是将数据部分标记为“有趣”。我正在努力将这些标记存储在文件中。我看到支持将相同数据集链接到其他组等的软/硬链接 - 但我没有看到链接到数据集部分的任何方式。
例如,假设我有一个名为EEG的数据集,其中包含睡眠数据。比方说,我运行一个算法需要一段时间来处理数据并生成与REM睡眠周期对应的索引。将这些索引范围存储在HDF5文件中的最佳方法是什么?
现在我能想到的最好的方法是创建一个包含三列的数据集 - 第一列是一个字符串并包含事件标签(“REM1”),第二列/第三列包含开始/结束索引。我不喜欢这个解决方案的唯一原因是因为HDF5数据集的大小相当大 - 如果我后来决定一段REM睡眠时间被错误识别,并且我需要添加/删除该事件,则数据集大小需要改变(并删除数据集/重新创建一个新的大小是不理想的)。由于我可能有很多事件(想象标记眼睛眨眼事件)这一事实使这变得更复杂,这变得更加棘手。
我更想知道HDF5文件中是否有功能,我只是不知道,因为这似乎是一个很常见的事情,人们会想要做的。
如何使用hyperslabs和区域?或者,您可以将“REM1”作为属性,将其数据作为开始和结束索引。思考? –
Hyperslabs和Regions正是我用来分割文件的东西。我的问题在于能够将这些hyperslab选择/区域作为“链接”存储在文件中。与软链接可以链接到另一个组的方式相同,数据集软链接可以简单地作为另一个数据集中的hyperslab选项。我考虑使用属性,但我需要属性来指示像采样率,通道标签等东西。我目前正在使用具有事件名称,开始/停止索引和有效位的可扩展数据集 - 删除事件只是设置有效在这个'事件'数据集中输入从1到0。 – Griffin