我試圖使用HDF5來存儲時間序列的EEG數據。這些文件可能非常大,由許多通道組成,我喜歡HDF5文件格式(惰性I/O,動態壓縮,mpi等)的功能。HDF5數據集中事件的鏈接
腦電圖數據的一個常見問題是將數據部分標記爲「有趣」。我正在努力將這些標記存儲在文件中。我看到支持將相同數據集鏈接到其他組等的軟/硬鏈接 - 但我沒有看到鏈接到數據集部分的任何方式。
例如,假設我有一個名爲EEG的數據集,其中包含睡眠數據。比方說,我運行一個算法需要一段時間來處理數據並生成與REM睡眠週期對應的索引。將這些索引範圍存儲在HDF5文件中的最佳方法是什麼?
現在我能想到的最好的方法是創建一個包含三列的數據集 - 第一列是一個字符串幷包含事件標籤(「REM1」),第二列/第三列包含開始/結束索引。我不喜歡這個解決方案的唯一原因是因爲HDF5數據集的大小相當大 - 如果我後來決定一段REM睡眠時間被錯誤識別,並且我需要添加/刪除該事件,則數據集大小需要改變(並刪除數據集/重新創建一個新的大小是不理想的)。由於我可能有很多事件(想象標記眼睛眨眼事件)這一事實使這變得更復雜,這變得更加棘手。
我更想知道HDF5文件中是否有功能,我只是不知道,因爲這似乎是一個很常見的事情,人們會想要做的。
如何使用hyperslabs和區域?或者,您可以將「REM1」作爲屬性,將其數據作爲開始和結束索引。思考? –
Hyperslabs和Regions正是我用來分割文件的東西。我的問題在於能夠將這些hyperslab選擇/區域作爲「鏈接」存儲在文件中。與軟鏈接可以鏈接到另一個組的方式相同,數據集軟鏈接可以簡單地作爲另一個數據集中的hyperslab選項。我考慮使用屬性,但我需要屬性來指示像採樣率,通道標籤等東西。我目前正在使用具有事件名稱,開始/停止索引和有效位的可擴展數據集 - 刪除事件只是設置有效在這個'事件'數據集中輸入從1到0。 – Griffin