路径可定义,混合型改成灰色

This commit is contained in:
mmmistgun 2022-03-30 15:27:44 +08:00
parent 0c6a41e668
commit 6e67c277fc
4 changed files with 41 additions and 8 deletions

View File

@ -7,6 +7,7 @@
@email:2021022362@m.scnu.edu.cn
@time:2022/03/28
"""
from pathlib import Path
from utils.Quality_Relabel import Quality_Relabel
# start-----一般不用修改------
@ -14,6 +15,11 @@ from utils.Quality_Relabel import Quality_Relabel
frequency = 100
# 心晓数据采样率
bcg_frequency = 1000
PSG_Data_Path = Path("Data/PSG/")
PSG_Label_Path = Path("Data/PSG_label/")
BCG_Data_Path = Path("Data/BCG/")
BCG_Label_Path = Path("Data/BCG_label/")
all_path = [PSG_Data_Path, PSG_Label_Path, BCG_Data_Path, BCG_Label_Path]
# end-----一般不用修改------
# 要遍历的事件
@ -32,7 +38,7 @@ start_bcg_index = 0
shifting = 0
if __name__ == '__main__':
qualityRelabel = Quality_Relabel(sampNo=sampNo, frequency=frequency, bcg_frequency=bcg_frequency,
qualityRelabel = Quality_Relabel(all_path=all_path, sampNo=sampNo, frequency=frequency, bcg_frequency=bcg_frequency,
focus_event_list=focus_event_list)
qualityRelabel.show_all_event(start_bcg_index=start_bcg_index,

View File

@ -24,11 +24,32 @@ Quality_Relabel 主目录
## 上色规则
| 事件代码 | 事件 | 颜色 |
| :------: | :------------: | :--: |
| 0 | 背景 | 蓝色 |
| 1 | 低通气 | 粉色 |
| 2 | 中枢性呼吸暂停 | 橙色 |
| 3 | 阻塞型呼吸暂停 | 红色 |
| 4 | 混合型呼吸暂停 | 灰色 |
| 5 | 血氧饱和度下降 | 绿色 |
## 注意事项
![](graph/note.png)
<img src="graph/note.png" style="zoom: 80%;" />
## 偏移量计算
当心晓有一段事件不可用时,需要手动填入偏移量
<img src="graph/calc.png" style="zoom: 80%;" />
## 程序流程框图

BIN
graph/calc.png Normal file

Binary file not shown.

After

(image error) Size: 250 KiB

View File

@ -66,7 +66,7 @@ class Quality_Relabel:
color_cycle = ["blue", "pink", "orange", "red", "grey", "green"]
assert len(color_cycle) == len(base_event) + 1, "基础事件数量与颜色数量不一致"
def __init__(self, sampNo: int, frequency: int = 100, bcg_frequency: int = 1000,
def __init__(self, all_path: List, sampNo: int, frequency: int = 100, bcg_frequency: int = 1000,
channel_list: List[str] = ['Effort Tho', 'Effort Abd', 'SpO2', 'Flow Patient', 'Flow Patient'],
focus_event_list: List[str] = ["Obstructive apnea"]):
"""
@ -77,6 +77,7 @@ class Quality_Relabel:
:param channel_list: 显示的通道
:param focus_event_list: 关注暂停事件
"""
self.PSG_Data_Path, self.PSG_Label_Path, self.BCG_Data_Path, self.BCG_Label_Path = all_path
self.sampNo = sampNo
self.channel_list = channel_list
self.focus_event_list = focus_event_list
@ -112,8 +113,8 @@ class Quality_Relabel:
print(f"常见通道名:{self.channel_list}")
def read_data(self, frequency: int = 100, bcg_frequency: int = 1000):
bcg_path = Path(f"Data/BCG/{self.sampNo}samp.npy")
ecg_path = Path(f"Data/ECG/A{str(self.sampNo).rjust(7, '0')}.edf")
bcg_path = self.BCG_Data_Path / f"{self.sampNo}samp.npy"
ecg_path = self.PSG_Data_Path / f"A{str(self.sampNo).rjust(7, '0')}.edf"
if not bcg_path.exists():
logging.error(f"{bcg_path} 不存在!")
@ -178,8 +179,8 @@ class Quality_Relabel:
self.signal_select['xin_xiao_respire'] = signal2
def read_event(self):
bcg_label_path = Path(f"Data/BCG_label/{self.sampNo}_label_all.csv")
ecg_label_path = Path(f"Data/ECG_label/export{self.sampNo}.csv")
bcg_label_path = self.BCG_Label_Path / f"{self.sampNo}_label_all.csv"
ecg_label_path = self.PSG_Label_Path / f"export{self.sampNo}.csv"
if not bcg_label_path.exists():
logging.error(f"{bcg_label_path} 不存在!")
@ -391,5 +392,10 @@ class Quality_Relabel:
if __name__ == '__main__':
prepareData = Quality_Relabel(670)
PSG_Data_Path = "../Data/PSG/"
PSG_Label_Path = "../Data/PSG_label/"
BCG_Data_Path = "../Data/BCG/"
BCG_Label_Path = "../Data/BCG_label/"
all_path = [PSG_Data_Path, PSG_Label_Path, BCG_Data_Path, BCG_Label_Path]
prepareData = Quality_Relabel(all_path, 670)
prepareData.show_all_event()