95 lines
5.0 KiB
Python
95 lines
5.0 KiB
Python
import numpy as np
|
||
|
||
from global_var import global_var_init
|
||
cycle, fs_ecg, fs_ppg, record_name, record_name_csv = global_var_init()
|
||
|
||
from processing import processing
|
||
(signal_dwt , waves_dwt , rpeaks , ecg_signal,
|
||
signal, signal.v, signal.fs, rows_to_extract, t_ecg, t_ppg,
|
||
on_column_list, on_column_list_toArea, on_values, on_values_toArea,
|
||
sp_column_list, sp_values, dn_column_list, dn_values, dp_column_list,
|
||
dp_values, u_column_list, u_column_list_toArea, u_values, u_values_toArea,
|
||
v_column_list, v_values, w_column_list, w_values, a_column_list, a_column_list_toArea,
|
||
a_values, a_values_toArea, b_column_list, b_values, c_column_list, c_values,
|
||
e_column_list, e_values, f_column_list, f_values,
|
||
signal.ppg, signal.vpg, signal.apg, signal.jpg) = processing()
|
||
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#-------------------------------- 创建空值清理函数 ------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
|
||
def ecg_clean_nan():
|
||
|
||
#在绘图中出现索引问题,经排查发现waves_dwt['ECG_P_Onsets']中含有nan,故先滤掉 NaN 值
|
||
|
||
# 处理 waves_dwt['ECG_P_Onsets']
|
||
ecg_p_onsets = waves_dwt['ECG_P_Onsets'] # 获取 ECG_P_Onsets 对应的值
|
||
ecg_p_onsets_cleaned = [x for x in ecg_p_onsets if not np.isnan(x)] # 使用列表推导式过滤掉 NaN 值
|
||
waves_dwt['ECG_P_Onsets'] = ecg_p_onsets_cleaned # 将清理后的结果重新赋值给 waves_dwt
|
||
|
||
# 处理 waves_dwt['ECG_P_Offsets']
|
||
ecg_p_offsets = waves_dwt['ECG_P_Offsets']
|
||
ecg_p_offsets_cleaned = [x for x in ecg_p_offsets if not np.isnan(x)]
|
||
waves_dwt['ECG_P_Offsets'] = ecg_p_offsets_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_T_Onsets']
|
||
ecg_t_onsets = waves_dwt['ECG_T_Onsets']
|
||
ecg_t_onsets_cleaned = [x for x in ecg_t_onsets if not np.isnan(x)]
|
||
waves_dwt['ECG_T_Onsets'] = ecg_t_onsets_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_T_Offsets']
|
||
ecg_t_offsets = waves_dwt['ECG_T_Offsets']
|
||
ecg_t_offsets_cleaned = [x for x in ecg_t_offsets if not np.isnan(x)]
|
||
waves_dwt['ECG_T_Offsets'] = ecg_t_offsets_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_P_Peaks']
|
||
ecg_p_peaks = waves_dwt['ECG_P_Peaks']
|
||
ecg_p_peaks_cleaned = [x for x in ecg_p_peaks if not np.isnan(x)]
|
||
waves_dwt['ECG_P_Peaks'] = ecg_p_peaks_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_Q_Peaks']
|
||
ecg_q_peaks = waves_dwt['ECG_Q_Peaks']
|
||
ecg_q_peaks_cleaned = [x for x in ecg_q_peaks if not np.isnan(x)]
|
||
waves_dwt['ECG_Q_Peaks'] = ecg_q_peaks_cleaned
|
||
|
||
# 处理 rpeaks['ECG_R_Peaks']
|
||
ecg_r_peaks = rpeaks['ECG_R_Peaks']
|
||
ecg_r_peaks_cleaned = [x for x in ecg_r_peaks if not np.isnan(x)]
|
||
rpeaks['ECG_R_Peaks'] = ecg_r_peaks_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_S_Peaks']
|
||
ecg_s_peaks = waves_dwt['ECG_S_Peaks']
|
||
ecg_s_peaks_cleaned = [x for x in ecg_s_peaks if not np.isnan(x)]
|
||
waves_dwt['ECG_S_Peaks'] = ecg_s_peaks_cleaned
|
||
|
||
# 处理 waves_dwt['ECG_T_Peaks']
|
||
ecg_t_peaks = waves_dwt['ECG_T_Peaks']
|
||
ecg_t_peaks_cleaned = [x for x in ecg_t_peaks if not np.isnan(x)]
|
||
waves_dwt['ECG_T_Peaks'] = ecg_t_peaks_cleaned
|
||
|
||
|
||
|
||
return (waves_dwt['ECG_P_Onsets'],waves_dwt['ECG_P_Offsets'],waves_dwt['ECG_T_Onsets'],
|
||
waves_dwt['ECG_T_Offsets'],waves_dwt['ECG_P_Peaks'] ,waves_dwt['ECG_Q_Peaks'],
|
||
rpeaks['ECG_R_Peaks'],waves_dwt['ECG_S_Peaks'],waves_dwt['ECG_T_Peaks'])
|
||
|
||
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#-------------------------------- 调用函数 ----------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
#--------------------------------------------------------------------------------------------------------
|
||
|
||
if __name__ == "__main__":
|
||
|
||
ecg_clean_nan() |