前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >医疗相关 EDF 文件查看及读取

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

作者头像
caoqi95
发布2019-03-28 11:50:58
4.1K0
发布2019-03-28 11:50:58
举报
文章被收录于专栏:caoqi95的记录日志

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

软件查看

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

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

Python 读取

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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.12.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 软件查看
  • Python 读取
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档