读取/写入 EDF+/BDF+ 文件的库
项目描述
内容
</nav>什么是 pyEDFlib
pyEDFlib 是一个基于 EDFlib 读/写 EDF+/BDF+ 文件的 python 库。
EDF 意为欧洲数据格式,最早发表于Kemp1992。2003 年,名为 EDF+ 的文件协议的改进版本已经发布,可以在Kemp2003中找到。
EDF/EDF+ 格式以 16 位保存所有数据。BioSemi公司推出了一个以 24 位保存所有数据的版本。
EDF/EDF+/BDF/BDF+ 格式的定义可以在edfplus.info下找到。
这个 Python 工具箱是Christopher Lee-Messer工具箱的一个分支, 使用了Teunis van Beelen 的EDFlib。EDFlib 能够读取和写入 EDF/EDF+/BDF/BDF+ 文件。
文档
文档可在http://pyedflib.readthedocs.org在线获得。
安装
pyEDFlib 可以与Python >=3.5 一起使用。这取决于Numpy包。要使用来自 git 的最新源代码,您必须下载源代码。您需要一个 C 编译器和最新版本的Cython。然后转到源目录并键入:
python setup.py build python setup.py install
可以通过以下方式安装二进制轮子(如果可用,请使用 pip3):
pip install pyEDFlib
Anaconda Python 发行版的用户可以直接从 conda-forge 渠道获取预构建的 Windows、Intel Linux 或 macOS/OSX 二进制文件。这可以通过以下方式完成:
conda install -c conda-forge pyedflib
最新的开发版本可以在 GitHub 上的 https://github.com/holgern/pyedflib上找到。
最新版本,包括适用于 Linux、macOS 和 Windows 的源代码和二进制包,可从Python 包索引下载。您可以在Releases Page找到源版本。
高级接口
pyEDFlib 包含一个高级接口,用于轻松访问读取和写入 edf 文件。此外,还可以在那里找到匿名、删除或重命名频道的功能。
from pyedflib import highlevel
# write an edf file
signals = np.random.rand(5, 256*300)*200 # 5 minutes of random signal
channel_names = ['ch1', 'ch2', 'ch3', 'ch4', 'ch5']
signal_headers = highlevel.make_signal_headers(channel_names, sample_frequency=256)
header = highlevel.make_header(patientname='patient_x', gender='Female')
highlevel.write_edf('edf_file.edf', signals, signal_headers, header)
# read an edf file
signals, signal_headers, header = highlevel.read_edf('edf_file.edf', ch_names=['ch1', 'ch2'])
print(signal_headers[0]['sample_frequency']) # prints 256
# drop a channel from the file or anonymize edf
highlevel.drop_channels('edf_file.edf', to_drop=['ch2', 'ch4'])
highlevel.anonymize_edf('edf_file.edf', new_file='anonymized.edf'
to_remove=['patientname', 'birthdate'],
new_values=['anonymized', ''])
# check if the two files have the same content
highlevel.compare_edf('edf_file.edf', 'anonymized.edf')
# change polarity of certain channels
highlevel.change_polarity('file.edf', channels=[1,3])
# rename channels within a file
highlevel.rename_channels('file.edf', mapping={'C3-M1':'C3'})
执照
pyEDFlib 是在 BSD 2 条款许可下发布的免费开源软件。
可以通过 Zenodo 引用版本。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。