美文网首页
医疗相关 EDF 文件查看及读取

医疗相关 EDF 文件查看及读取

作者: 捡个七 | 来源:发表于2018-12-27 18:50 被阅读0次

    EDF,全称是 European Data Format,是一种标准文件格式,用于交换和存储医疗时间序列。其能够存储多通道的数据,允许每个信号拥有不同的采样频率。在内部,它包括标题和一个或多个数据记录。标题包含一些一般信息(患者标识,开始时间......等等)以及每个信号的技术规格(校准,采样率,过滤,......等等),编码为 ASCII 字符。数据记录包含小端 16 位整数的样本。 所以,EDF 也是多导睡眠图(PSG)录音的流行格式。

    软件查看

    常见的读取 EDF 文件的软件有以下几种:

    推荐使用 EDFbrowser,效果如下图所示,还能像视频一样播放。


    Python 读取

    在 Python 中可以使用 pyEDFlib 这个库来读取。可以读取信号的数量,信号的标签,信号的一些头文件等等。

    import pyedflib
    import numpy as np
    
    f = pyedflib.EdfReader("D:/deepsleepnet/data/SC4001E0-PSG.edf")
    n = f.signals_in_file
    print("signal numbers:", n)
    signal_labels = f.getSignalLabels()
    print("Labels:", signal_labels)
    signal_headers = f.getSignalHeaders()
    print("Headers:", signal_headers)
    
    
    ______________________________________
    
    signal numbers: 7
    Labels: ['EEG Fpz-Cz', 'EEG Pz-Oz', 'EOG horizontal', 'Resp oro-nasal', 'EMG submental', 'Temp rectal', 'Event marker']
    Headers: [{'label': 'EEG Fpz-Cz', 'dimension': 'uV', 'sample_rate': 100, 'physical_max': 192.0, 'physical_min': -192.0, 'digital_max': 2047, 'digital_min': -2048, 'prefilter': 'HP:0.5Hz LP:100Hz [enhanced cassette BW]', 'transducer': 'Ag-AgCl electrodes'}, {'label': 'EEG Pz-Oz', 'dimension': 'uV', 'sample_rate': 100, 'physical_max': 196.0, 'physical_min': -197.0, 'digital_max': 2047, 'digital_min': -2048, 'prefilter': 'HP:0.5Hz LP:100Hz [enhanced cassette BW]', 'transducer': 'Ag-AgCl electrodes'}, {'label': 'EOG horizontal', 'dimension': 'uV', 'sample_rate': 100, 'physical_max': 1009.0, 'physical_min': -1009.0, 'digital_max': 2047, 'digital_min': -2048, 'prefilter': 'HP:0.5Hz LP:100Hz [enhanced cassette BW]', 'transducer': 'Ag-AgCl electrodes'}, {'label': 'Resp oro-nasal', 'dimension': '', 'sample_rate': 1, 'physical_max': 2047.0, 'physical_min': -2048.0, 'digital_max': 2047, 'digital_min': -2048, 'prefilter': 'HP:0.03Hz LP:0.9Hz', 'transducer': 'Oral-nasal thermistors'}, {'label': 'EMG submental', 'dimension': 'uV', 'sample_rate': 1, 'physical_max': 5.0, 'physical_min': -5.0, 'digital_max': 2500, 'digital_min': -2500, 'prefilter': 'HP:16Hz Rectification LP:0.7Hz', 'transducer': 'Ag-AgCl electrodes'}, {'label': 'Temp rectal', 'dimension': 'DegC', 'sample_rate': 1, 'physical_max': 40.0, 'physical_min': 34.0, 'digital_max': 2731, 'digital_min': -2849, 'prefilter': '', 'transducer': 'Rectal thermistor'}, {'label': 'Event marker', 'dimension': '', 'sample_rate': 1, 'physical_max': 2048.0, 'physical_min': -2047.0, 'digital_max': 2048, 'digital_min': -2047, 'prefilter': 'Hold during 2 seconds', 'transducer': 'Marker button'}]
    

    GitHub 上还有挺多大神都自造轮子来读取,在谷歌上搜一搜,可以搜到一些。

    参考

    [1]. The Sleep-EDF Database
    [2]. European Data Format

    相关文章

      网友评论

          本文标题:医疗相关 EDF 文件查看及读取

          本文链接:https://www.haomeiwen.com/subject/yncdlqtx.html