# shift_time = -23 prove sensitivity print(shift_time) ecg_hr = ecg_analysis[(ecg_analysis.utc > ppg_st + shift_time) & (ecg_analysis.utc < ppg_st + shift_time + ppg_chunk_len)] ppg_hr = final_ppg_hr # this dtw is used for modification d, cost_matrix, acc_cost_matrix, path = dtw(ecg_hr.values, ppg_hr.values, dist=norm) vertical_mov = -150 # the x, y should be in the ssame order as dtw function get_link(ecg_hr.values, ppg_hr.values, final_path, vertical_mov, shift_time) # when ecg is at 1st, ppg at 2nd ax.scatter(ecg_hr.utc, ecg_hr.ecg_heart_rate, c='k', marker='.') ax.scatter(ppg_hr.utc, ppg_hr.bpm_raw + vertical_mov, label='PPG Pulse Rate', c='b') plt.show() scatter_vis(ecg_hr, ppg_hr, 0, 'real shift graph') plt.show() dis = design_dis(final_path[0], final_path[1], ecg_hr.ecg_heart_rate.values, ppg_hr.bpm_raw.values) print(dis)
ecg_hr = ecg_analysis[(ecg_analysis.utc > ppg_st + shift_time) & (ecg_analysis.utc < ppg_st + shift_time + ppg_chunk_len)] ecg_hr1 = ecg_analysis[(ecg_analysis.utc > ppg_st + true_shift_time) & ( ecg_analysis.utc < ppg_st + true_shift_time + ppg_chunk_len)] ppg_hr = ppg_analysis[(ppg_analysis.utc > ppg_st) & (ppg_analysis.utc < ppg_st + ppg_chunk_len)] vertical_mov = -150 # the x, y should be in the ssame order as dtw function get_link(ecg_hr.values, ppg_hr.values, final_path, vertical_mov, shift_time) # when ecg is at 1st, ppg at 2nd ax.scatter(ecg_hr.utc, ecg_hr.ecg_heart_rate, c='k', marker='.', label='ecg heart rate') ax.scatter(ppg_hr.utc + shift_time, ppg_hr.bpm_raw + vertical_mov, label='PPG heart rate', c='b') ax.legend(fontsize='30') ax.set_xlabel('Time stamp', fontsize='20') plt.show() scatter_vis(ecg_hr, ppg_hr, shift_time, 'real shift graph') plt.show()
c='k', marker='.', label='ecg heart rate') ax.scatter(ppg_hr.utc + shift_time, ppg_hr.bpm_raw + vertical_mov, label='PPG heart rate', c='b') ax.vlines(steep_point.utc.values + shift_time, 0, 1, transform=ax.get_xaxis_transform(), colors='g') ax.legend(fontsize='30') ax.set_xlabel('Time stamp', fontsize='20') plt.show() vs.scatter_vis(ecg_hr, ppg_hr, shift_time, 'real shift graph', lines=False, final_path=final_path) plt.show() path0_count = pd.DataFrame() path1_count = pd.DataFrame() path0_count, path1_count = vs.get_sing_point(final_path[0], final_path[1])