添加了<体动标注>的重采样
根据规范修改变量名称
This commit is contained in:
@ -344,10 +344,10 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
elif sender == self.ui.pushButton_EP100:
|
||||
result = self.DrawPicByEpoch(*args, **kwargs)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
|
||||
if result is None:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
else:
|
||||
return result
|
||||
|
||||
@ -707,9 +707,9 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
|
||||
self.fig.canvas.draw()
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
# 返回图片以便存到QPixImage
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def DrawPicOverviewWithCutOff(self):
|
||||
try:
|
||||
@ -763,9 +763,9 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
|
||||
self.fig.canvas.draw()
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
# 返回图片以便存到QPixImage
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def DrawPicCorrelate(self, tho_pxx, tho_nxx, abd_pxx, abd_nxx):
|
||||
try:
|
||||
@ -787,9 +787,9 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
|
||||
self.fig.canvas.draw()
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
# 返回图片以便存到QPixImage
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def DrawPicTryAlign(self):
|
||||
try:
|
||||
@ -822,9 +822,9 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
|
||||
self.fig.canvas.draw()
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
# 返回图片以便存到QPixImage
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def DrawPicByEpoch(self, epoch):
|
||||
try:
|
||||
@ -882,9 +882,9 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
|
||||
self.fig.canvas.draw()
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
# 返回图片以便存到QPixImage
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def DrawAlignScatter(self):
|
||||
try:
|
||||
@ -903,10 +903,10 @@ class MainWindow_approximately_align(QMainWindow):
|
||||
ax2.set_title("ABD")
|
||||
self.fig.canvas.draw()
|
||||
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
|
||||
|
||||
|
||||
@ -978,10 +978,10 @@ class Data:
|
||||
df = DataFrame({"pos": [pos], "epoch": [epoch], "ApplyFrequency": [ApplyFrequency]})
|
||||
df.to_csv(Path(Config["Path"]["Save"]), mode="w", header=True, index=False)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.FAILURE_REASON[
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON[
|
||||
"Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
|
||||
def Standardize_0(self):
|
||||
# 仅重采样
|
||||
|
||||
@ -12,6 +12,7 @@ from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg
|
||||
from numpy.fft import fft, fftfreq
|
||||
from overrides import overrides
|
||||
from pandas import read_csv, DataFrame, concat
|
||||
from scipy.signal import resample
|
||||
from yaml import dump, load, FullLoader
|
||||
|
||||
from func.utils.PublicFunc import PublicFunc
|
||||
@ -90,21 +91,21 @@ class SettingWindow(QMainWindow):
|
||||
Config.update({
|
||||
"Path": {
|
||||
"Input_orgBcg": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_LABEL_INPUT_ORGBCG_FILENAME +
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ORGBCG_SYNC +
|
||||
str(Config["InputConfig"]["orgBcgFreq"]) +
|
||||
ConfigParams.ENDSWITH_TXT))),
|
||||
"Input_BCG": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_LABEL_INPUT_BCG_FILENAME +
|
||||
Path(str(self.sampID)) / Path(ConfigParams.BCG_SYNC +
|
||||
str(Config["InputConfig"]["BCGFreq"]) +
|
||||
ConfigParams.ENDSWITH_TXT))),
|
||||
"Save_a": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_LABEL_SAVE_FILENAME_A +
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_A +
|
||||
ConfigParams.ENDSWITH_TXT))),
|
||||
"Save_b": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_LABEL_SAVE_FILENAME_B +
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_B +
|
||||
ConfigParams.ENDSWITH_TXT))),
|
||||
"Save_c": str((Path(self.root_path) / ConfigParams.PUBLIC_PATH_LABEL /
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_LABEL_SAVE_FILENAME_C +
|
||||
Path(str(self.sampID)) / Path(ConfigParams.ARTIFACT_C +
|
||||
ConfigParams.ENDSWITH_CSV)))
|
||||
}
|
||||
})
|
||||
@ -145,14 +146,14 @@ class SettingWindow(QMainWindow):
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ARTIFACT_LABEL_INPUT_ORGBCG_FILENAME +
|
||||
Path(ConfigParams.ORGBCG_SYNC +
|
||||
str(self.ui.spinBox_input_freq_orgBcg.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
self.ui.plainTextEdit_file_path_input_BCG.setPlainText(
|
||||
str((Path(self.root_path) /
|
||||
ConfigParams.PUBLIC_PATH_ORGBCG_ALIGNED /
|
||||
Path(str(self.sampID)) /
|
||||
Path(ConfigParams.ARTIFACT_LABEL_INPUT_BCG_FILENAME +
|
||||
Path(ConfigParams.BCG_SYNC +
|
||||
str(self.ui.spinBox_input_freq_BCG.value()) +
|
||||
ConfigParams.ENDSWITH_TXT))))
|
||||
|
||||
@ -240,7 +241,7 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
self.ax0.grid(True)
|
||||
self.ax0.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
self.ax0.tick_params(axis='x', colors=Constants.PLOT_COLOR_WHITE)
|
||||
self.ax1 = self.fig.add_subplot(self.gs[1], sharex=self.ax0, sharey=self.ax0)
|
||||
self.ax1 = self.fig.add_subplot(self.gs[1], sharex=self.ax0)
|
||||
self.ax1.grid(True)
|
||||
self.ax1.xaxis.set_major_formatter(ConfigParams.FORMATTER)
|
||||
|
||||
@ -344,13 +345,13 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
self.ax0.autoscale(False)
|
||||
self.ax1.autoscale(False)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
self.ax0.autoscale(False)
|
||||
self.ax1.autoscale(False)
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __plot_artifact__(self):
|
||||
if len(self.ax0.patches) != 0:
|
||||
@ -524,9 +525,9 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
self.ui.tableWidget_type_5.setItem(self.ui.tableWidget_type_5.rowCount() - 1, 1, QTableWidgetItem(str(data["startTime"])))
|
||||
self.ui.tableWidget_type_5.setItem(self.ui.tableWidget_type_5.rowCount() - 1, 2, QTableWidgetItem(str(data["endTime"])))
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.ARTIFACT_LABEL_UPDATE_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON["Update_tableWidget_Exception"] + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.UPDATE_FAILURE + Constants.FAILURE_REASON["Update_tableWidget_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.ARTIFACT_LABEL_UPDATE_FINISHED)
|
||||
return Result().success(info=Constants.UPDATE_FINISHED)
|
||||
|
||||
def update_Info(self):
|
||||
try:
|
||||
@ -560,9 +561,9 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
self.ui.spinBox_duration_type_4.setValue(artifact_total_duration[3])
|
||||
self.ui.spinBox_duration_type_5.setValue(artifact_total_duration[4])
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.ARTIFACT_LABEL_UPDATE_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON["Update_Info_Exception"] + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.UPDATE_FAILURE + Constants.FAILURE_REASON["Update_Info_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.ARTIFACT_LABEL_UPDATE_FINISHED)
|
||||
return Result().success(info=Constants.UPDATE_FAILURE)
|
||||
|
||||
def __slot_btn_input__(self):
|
||||
PublicFunc.__disableAllButton__(self, ButtonState)
|
||||
@ -573,7 +574,7 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
self.data = Data()
|
||||
|
||||
# 导入数据
|
||||
PublicFunc.progressbar_update(self, 1, 5, Constants.INPUTTING_DATA, 0)
|
||||
PublicFunc.progressbar_update(self, 1, 6, Constants.INPUTTING_DATA, 0)
|
||||
result = self.data.open_file()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(1/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
@ -583,49 +584,63 @@ class MainWindow_artifact_label(QMainWindow):
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(1/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 重采样
|
||||
PublicFunc.progressbar_update(self, 2, 6, Constants.RESAMPLING_DATA, 0)
|
||||
result = self.data.resample()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(2/6)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.__reset__()
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
# 获取存档
|
||||
PublicFunc.progressbar_update(self, 2, 5, Constants.ARTIFACT_LABEL_LOADING_ARCHIVE, 50)
|
||||
PublicFunc.progressbar_update(self, 3, 6, Constants.LOADING_ARCHIVE, 50)
|
||||
result = self.data.get_archive()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(2/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(3/6)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(2/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(3/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 绘图
|
||||
PublicFunc.progressbar_update(self, 3, 5, Constants.DRAWING_DATA, 60)
|
||||
PublicFunc.progressbar_update(self, 4, 6, Constants.DRAWING_DATA, 60)
|
||||
result = self.__plot__()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(3/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(4/6)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(3/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(4/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 更新表格
|
||||
PublicFunc.progressbar_update(self, 4, 5, Constants.ARTIFACT_LABEL_UPDATING_TABLE, 90)
|
||||
PublicFunc.progressbar_update(self, 5, 6, Constants.UPDATING_TABLEWIDGET, 90)
|
||||
result = self.update_tableWidget()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(4/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(5/6)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(4/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(5/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
# 更新信息
|
||||
PublicFunc.progressbar_update(self, 5, 5, Constants.ARTIFACT_LABEL_UPDATING_INFO, 95)
|
||||
PublicFunc.progressbar_update(self, 6, 6, Constants.UPDATING_INFO, 95)
|
||||
result = self.update_Info()
|
||||
if not result.status:
|
||||
PublicFunc.text_output(self.ui, "(5/5)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.text_output(self.ui, "(6/6)" + result.info, Constants.TIPS_TYPE_ERROR)
|
||||
PublicFunc.msgbox_output(self, result.info, Constants.MSGBOX_TYPE_ERROR)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
return
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(5/5)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.text_output(self.ui, "(6/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
self.__reset__()
|
||||
self.figToolbar.action_Label_Artifact.setEnabled(True)
|
||||
@ -1159,7 +1174,7 @@ class Data:
|
||||
|
||||
def open_file(self):
|
||||
if (not Path(Config["Path"]["Input_orgBcg"]).exists()) or (not Path(Config["Path"]["Input_BCG"]).exists()):
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON["Data_Path_Not_Exist"])
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Path_Not_Exist"])
|
||||
|
||||
try:
|
||||
self.orgBcg = read_csv(Config["Path"]["Input_orgBcg"],
|
||||
@ -1169,18 +1184,35 @@ class Data:
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
header=None).to_numpy().reshape(-1)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON["Read_Data_Exception"] + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Open_Data_Exception"] + "\n" + format_exc())
|
||||
|
||||
# 检查同步后的orgBcg信号和同步后的BCG信号长度是否相同
|
||||
if len(self.orgBcg) != len(self.BCG):
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON["Data_Length_not_Correct"])
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON["Data_Length_not_Correct"])
|
||||
|
||||
return Result().success(info=Constants.INPUT_FINISHED)
|
||||
|
||||
def resample(self):
|
||||
if self.orgBcg is None:
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
if Config["InputConfig"]["orgBcgFreq"] != Config["InputConfig"]["UseFreq"]:
|
||||
self.orgBcg = resample(self.orgBcg,
|
||||
int(len(self.orgBcg) *
|
||||
(Config["InputConfig"]["UseFreq"] / Config["InputConfig"]["orgBcgFreq"])))
|
||||
else:
|
||||
return Result().success(info=Constants.RESAMPLE_NO_NEED)
|
||||
except Exception as e:
|
||||
Result().failure(info=Constants.RESAMPLE_FAILURE +
|
||||
Constants.FAILURE_REASON["Resample_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.RESAMPLE_FINISHED)
|
||||
|
||||
def get_archive(self):
|
||||
if not Path(Config["Path"]["Save_a"]).exists():
|
||||
self.Artifact_a = []
|
||||
return Result().success(info=Constants.ARTIFACT_LABEL_ARCHIVE_NOT_EXIST)
|
||||
return Result().success(info=Constants.ARCHIVE_NOT_EXIST)
|
||||
else:
|
||||
self.Artifact_a = read_csv(Config["Path"]["Save_a"],
|
||||
encoding=ConfigParams.UTF8_ENCODING,
|
||||
@ -1188,7 +1220,7 @@ class Data:
|
||||
try:
|
||||
# 检查体动标签正确性,长度
|
||||
if len(self.Artifact_a) % 4 != 0:
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON[
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON[
|
||||
"Artifact_Format_Not_Correct"])
|
||||
for i in range(0, len(self.Artifact_a), 4):
|
||||
unit_data = self.Artifact_a[i:i + 4]
|
||||
@ -1196,10 +1228,10 @@ class Data:
|
||||
break
|
||||
self.df_Artifact_a.loc[len(self.df_Artifact_a)] = [int(unit_data[j]) for j in range(4)]
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON[
|
||||
return Result().failure(info=Constants.INPUT_FAILURE + Constants.FAILURE_REASON[
|
||||
"Get_Artifact_Format_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.ARTIFACT_LABEL_ARCHIVE_EXIST)
|
||||
return Result().success(info=Constants.ARCHIVE_EXIST)
|
||||
|
||||
def save(self, amount, duration):
|
||||
try:
|
||||
@ -1224,10 +1256,10 @@ class Data:
|
||||
self.df_Artifact_a.to_csv(Path(Config["Path"]["Save_c"]), index=False,
|
||||
encoding=ConfigParams.GBK_ENCODING)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.ARTIFACT_LABEL_FAILURE_REASON[
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON[
|
||||
"Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
|
||||
|
||||
class CustomNavigationToolbar(NavigationToolbar2QT):
|
||||
|
||||
@ -327,7 +327,7 @@ class Data:
|
||||
|
||||
for raw in self.raw.values():
|
||||
if len(raw) == 0:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Data_not_Exist"])
|
||||
|
||||
try:
|
||||
@ -338,10 +338,10 @@ class Data:
|
||||
index=False,
|
||||
encoding="gbk")
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
|
||||
@staticmethod
|
||||
def get_time_to_seconds(time_str):
|
||||
|
||||
@ -241,10 +241,10 @@ class MainWindow_detect_Jpeak(QMainWindow):
|
||||
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __update_config__(self):
|
||||
Config["Filter"]["BandPassLow"] = self.ui.doubleSpinBox_bandPassLow.value()
|
||||
@ -465,15 +465,15 @@ class Data:
|
||||
Path(Config["Path"]["Save"]).parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if self.peak is None:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
chunk.to_csv(Config["Path"]["Save"], mode='a', index=False, header=False)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
|
||||
|
||||
class Model:
|
||||
|
||||
@ -237,10 +237,10 @@ class MainWindow_detect_Rpeak(QMainWindow):
|
||||
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.ax1.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __update_config__(self):
|
||||
Config["Filter"]["BandPassLow"] = self.ui.doubleSpinBox_bandPassLow.value()
|
||||
@ -457,12 +457,12 @@ class Data:
|
||||
|
||||
if self.peak is None:
|
||||
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
chunk.to_csv(Config["Path"]["Save"], mode='a', index=False, header=False)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
@ -390,12 +390,12 @@ class MainWindow_label_check(QMainWindow):
|
||||
self.canvas.draw()
|
||||
self.ax0.autoscale(False)
|
||||
self.ax1.autoscale(False)
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
self.ax0.autoscale(False)
|
||||
self.ax1.autoscale(False)
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __plot_peaks__(self):
|
||||
try:
|
||||
@ -407,10 +407,10 @@ class MainWindow_label_check(QMainWindow):
|
||||
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.ax1.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.DRAW_FAILURE + "\n" + format_exc())
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
def __redraw_peaks__(self):
|
||||
self.point_peak_corrected.remove()
|
||||
@ -433,9 +433,9 @@ class MainWindow_label_check(QMainWindow):
|
||||
for row, value in enumerate(self.data.corrected_peak):
|
||||
item = QTableWidgetItem(str(value).strip())
|
||||
self.ui.tableWidget_peak_corrected.setItem(row, 0, item)
|
||||
return Result().success(info=Constants.UPDATING_FINISHED)
|
||||
return Result().success(info=Constants.UPDATE_FINISHED)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.UPDATING_FAILURE + "\n" + format_exc())
|
||||
return Result().failure(info=Constants.UPDATE_FAILURE + "\n" + format_exc())
|
||||
|
||||
def __update_config__(self):
|
||||
Config["FindPeaks"]["MinInterval"] = self.ui.doubleSpinBox_findpeaks_min_interval.value()
|
||||
@ -1015,15 +1015,15 @@ class Data:
|
||||
Path(Config["Path"]["Save"]).parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if self.corrected_peak is None:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
chunk.to_csv(Config["Path"]["Save"], mode='a', index=False, header=False)
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(info=Constants.SAVING_FINISHED)
|
||||
return Result().success(info=Constants.SAVE_FINISHED)
|
||||
|
||||
|
||||
class CustomNavigationToolbar(NavigationToolbar2QT):
|
||||
|
||||
@ -494,7 +494,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.ax1.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
elif sender == self.ui.pushButton_calculate_correlation and plot_element is not None and plot_element["mode"] == "init":
|
||||
self.gs = gridspec.GridSpec(2, 2, height_ratios=[1, 1], width_ratios=[1, 1])
|
||||
self.fig.subplots_adjust(top=0.88, bottom=0.05, right=0.98, left=0.05, hspace=0.15, wspace=0.15)
|
||||
@ -560,7 +560,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax3.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
elif sender == self.ui.pushButton_correlation_align or (plot_element is not None and plot_element["mode"] == "select"):
|
||||
self.gs = gridspec.GridSpec(1, 1, height_ratios=[1])
|
||||
self.fig.subplots_adjust(top=0.95, bottom=0.05, right=0.98, left=0.05, hspace=0, wspace=0)
|
||||
@ -581,7 +581,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax4.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
elif sender == self.ui.pushButton_view_align:
|
||||
self.gs = gridspec.GridSpec(1, 1, height_ratios=[1])
|
||||
self.fig.subplots_adjust(top=0.95, bottom=0.05, right=0.98, left=0.05, hspace=0, wspace=0)
|
||||
@ -598,10 +598,10 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax4.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __update_info__(self):
|
||||
self.ui.spinBox_BCG_front_JJIV_1.setValue(Config["IV_Coordinate"]["BCG_front_1"])
|
||||
@ -945,7 +945,7 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
else:
|
||||
PublicFunc.text_output(self.ui, "(6/6)" + result.info, Constants.TIPS_TYPE_INFO)
|
||||
|
||||
PublicFunc.msgbox_output(self, Constants.SAVING_FINISHED, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.msgbox_output(self, Constants.SAVE_FINISHED, Constants.TIPS_TYPE_INFO)
|
||||
PublicFunc.finish_operation(self, ButtonState)
|
||||
|
||||
def __update_coordinate__(self):
|
||||
@ -1086,9 +1086,9 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax2.set_ylim(self.ax2_ylime)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def redraw_correlation_align(self, plot_element=None):
|
||||
if plot_element is not None and plot_element["mode"] == "select":
|
||||
@ -1123,9 +1123,9 @@ class MainWindow_precisely_align(QMainWindow):
|
||||
self.ax4.set_ylim(self.ax4_ylime)
|
||||
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
|
||||
return Result().failure(info=Constants.DRAWING_FAILURE)
|
||||
return Result().failure(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def toggle_home(self):
|
||||
if self.ax0 is not None:
|
||||
|
||||
@ -271,10 +271,10 @@ class MainWindow_preprocess(QMainWindow):
|
||||
label=Constants.PREPROCESS_PLOT_LABEL_PROCESSED_DATA)
|
||||
self.ax0.legend(loc=Constants.PLOT_UPPER_RIGHT)
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FINISHED)
|
||||
return Result().success(info=Constants.DRAW_FINISHED)
|
||||
else:
|
||||
self.canvas.draw()
|
||||
return Result().success(info=Constants.DRAWING_FAILURE)
|
||||
return Result().success(info=Constants.DRAW_FAILURE)
|
||||
|
||||
def __update_config__(self):
|
||||
if self.mode == "BCG":
|
||||
@ -478,12 +478,12 @@ class Data:
|
||||
Path(Config["Path"]["Save"]).parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
if self.processed_data is None:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
return Result().failure(info=Constants.SAVE_FAILURE + Constants.FAILURE_REASON["Data_Not_Exist"])
|
||||
|
||||
try:
|
||||
chunk.to_csv(Config["Path"]["Save"], mode='a', index=False, header=False, float_format='%.4f')
|
||||
except Exception as e:
|
||||
return Result().failure(info=Constants.SAVING_FAILURE +
|
||||
return Result().failure(info=Constants.SAVE_FAILURE +
|
||||
Constants.FAILURE_REASON["Save_Exception"] + "\n" + format_exc())
|
||||
|
||||
return Result().success(Constants.SAVING_FINISHED)
|
||||
return Result().success(Constants.SAVE_FINISHED)
|
||||
@ -49,6 +49,9 @@ class ConfigParams:
|
||||
RPEAK_FINAL_CORRECTED: str = "Rpeak_final_corrected_"
|
||||
APPROXIMATELY_ALIGN_INFO: str = "Approximately_Align_Info"
|
||||
PRECISELY_ALIGN_INFO: str = "Precisely_Align_Info"
|
||||
ARTIFACT_A: str = "Artifact_a"
|
||||
ARTIFACT_B: str = "Artifact_b"
|
||||
ARTIFACT_C: str = "Artifact_c"
|
||||
BCG_SYNC: str = "BCG_Sync_"
|
||||
ECG_SYNC: str = "ECG_Sync_"
|
||||
JPEAK_SYNC: str = "Jpeak_Sync_"
|
||||
@ -227,16 +230,13 @@ class ConfigParams:
|
||||
}
|
||||
CUT_PSG_SALABEL_EVENT: list = ["Hypopnea", "Central apnea", "Obstructive apnea", "Mixed apnea"]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 体动标注
|
||||
ARTIFACT_LABEL_CONFIG_FILE_PATH: str = "./config/Config_artifact_label.yaml"
|
||||
ARTIFACT_LABEL_CONFIG_NEW_CONTENT: dict = {
|
||||
"InputConfig": {
|
||||
"orgBcgFreq": 1000,
|
||||
"BCGFreq": 1000
|
||||
"BCGFreq": 1000,
|
||||
"UseFreq": 1000
|
||||
},
|
||||
"CustomAutoplayArgs": {
|
||||
"MoveLength": 15000,
|
||||
@ -244,11 +244,6 @@ class ConfigParams:
|
||||
"MoveSpeed": 1000
|
||||
}
|
||||
}
|
||||
ARTIFACT_LABEL_INPUT_ORGBCG_FILENAME: str = "OrgBCG_Sync_"
|
||||
ARTIFACT_LABEL_INPUT_BCG_FILENAME: str = "BCG_Sync_"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_A: str = "Artifact_a"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_B: str = "Artifact_b"
|
||||
ARTIFACT_LABEL_SAVE_FILENAME_C: str = "Artifact_c"
|
||||
ARTIFACT_LABEL_LABEL_TRANSPARENCY: float = 0.3
|
||||
ARTIFACT_LABEL_ACTION_LABEL_ARTIFACT_SHORTCUT_KEY: str = "Z"
|
||||
|
||||
|
||||
@ -33,16 +33,18 @@ class Constants:
|
||||
ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档"
|
||||
|
||||
DRAWING_DATA: str = "正在绘制图形"
|
||||
DRAWING_FINISHED: str = "绘制完成"
|
||||
DRAWING_FAILURE: str = "绘制失败"
|
||||
DRAW_FINISHED: str = "绘制完成"
|
||||
DRAW_FAILURE: str = "绘制失败"
|
||||
|
||||
UPDATING_TABLEWIDGET_AND_INFO: str = "正在更新表格和信息"
|
||||
UPDATING_FINISHED: str = "更新完成"
|
||||
UPDATING_FAILURE: str = "更新失败"
|
||||
UPDATING_TABLEWIDGET: str = "正在更新表格"
|
||||
UPDATING_INFO: str = "正在更新信息"
|
||||
UPDATE_FINISHED: str = "更新完成"
|
||||
UPDATE_FAILURE: str = "更新失败"
|
||||
|
||||
SAVING_DATA: str = "正在保存数据"
|
||||
SAVING_FINISHED: str = "保存完成"
|
||||
SAVING_FAILURE: str = "保存失败"
|
||||
SAVE_FINISHED: str = "保存完成"
|
||||
SAVE_FAILURE: str = "保存失败"
|
||||
|
||||
OPERATION_FINISHED: str = "操作完成"
|
||||
OPERATION_FAILURE: str = "操作失败"
|
||||
@ -99,6 +101,9 @@ class Constants:
|
||||
"Align_Label_SALabel_Format_not_Correct": "(映射标签时SA Label中的文件格式不正确)",
|
||||
"Filename_Format_not_Correct": "(文件名格式不正确)",
|
||||
"Method_Not_Exist": "(检测方法不存在)",
|
||||
"Data_Length_not_Correct": "(orgBcg和BCG长度不匹配)",
|
||||
"Artifact_Format_Not_Correct": "(体动长度或格式不正确)",
|
||||
"Get_Artifact_Format_Exception": "(获取体动长度或格式异常)",
|
||||
|
||||
"Open_Data_Exception": "(打开数据异常)",
|
||||
"Process_Exception": "(处理异常)",
|
||||
@ -125,6 +130,8 @@ class Constants:
|
||||
"Cut_Data_Exception": "(切割数据异常)",
|
||||
"Align_Label_Exception": "(映射标签异常)",
|
||||
"Get_File_and_Freq_Excepetion": "(检查文件是否存在并获取其数据采样率异常)",
|
||||
"Update_tableWidget_Exception": "(更新表格异常)",
|
||||
"Update_Info_Exception": "(更新信息异常)",
|
||||
|
||||
"res_orgBcg_Not_Exist": "(切割后orgBcg不存在)",
|
||||
"res_BCG_Not_Exist": "(切割后BCG不存在)",
|
||||
@ -208,7 +215,7 @@ class Constants:
|
||||
DETECT_RPEAK_DURATION_MIN: str = "数据时长(分钟):"
|
||||
DETECT_RPEAK_PEAK_AMOUNT: str = "R峰个数:"
|
||||
DETECT_RPEAK_PLOT_LABEL_RRIV: str = "RRIV"
|
||||
DETECT_RPEAK_PLOT_LABEL_ECG: str = "ECG"
|
||||
DETECT_RPEAK_PLOT_LABEL_ECG: str = "ECG_Processed"
|
||||
DETECT_RPEAK_PLOT_LABEL_R_PEAKS: str = "R_Peaks"
|
||||
DETECT_RPEAK_PLOT_LABEL_INTERVAL: str = "Interval"
|
||||
|
||||
@ -299,38 +306,9 @@ class Constants:
|
||||
CUT_PSG_ALIGN_LABEL_FINISHED: str = "映射标签完成"
|
||||
CUT_PSG_ALIGN_LABEL_FAILURE: str = "映射标签失败"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 体动标注
|
||||
ARTIFACT_LABEL_LOADING_ARCHIVE: str = "正在获取历史存档"
|
||||
ARTIFACT_LABEL_ARCHIVE_EXIST: str = "找到历史存档,成功读取"
|
||||
ARTIFACT_LABEL_ARCHIVE_NOT_EXIST: str = "未找到历史存档,创建新存档"
|
||||
|
||||
ARTIFACT_LABEL_UPDATING_TABLE: str = "正在更新表格"
|
||||
ARTIFACT_LABEL_UPDATING_INFO: str = "正在更新信息"
|
||||
ARTIFACT_LABEL_UPDATE_FINISHED: str = "更新完成"
|
||||
ARTIFACT_LABEL_UPDATE_FAILURE: str = "更新失败"
|
||||
|
||||
ARTIFACT_LABEL_FAILURE_REASON: str = {
|
||||
"Data_Path_Not_Exist": "(数据路径不存在)",
|
||||
"Read_Data_Exception": "(读取数据异常)",
|
||||
"File_not_Exist": "(需要处理的文件不存在)",
|
||||
"Data_Length_not_Correct": "(orgBcg和BCG长度不匹配)",
|
||||
"Artifact_Format_Not_Correct": "(体动长度或格式不正确)",
|
||||
"Get_Artifact_Format_Exception": "(获取体动长度或格式异常)",
|
||||
"Update_tableWidget_Exception": "(更新表格异常)",
|
||||
"Update_Info_Exception": "(更新信息异常)",
|
||||
"Save_Data_not_Exist": "(需要保存的数据不存在)",
|
||||
"Save_Exception": "(保存异常)"
|
||||
}
|
||||
|
||||
ARTIFACT_LABEL_PLOT_LABEL_ORGBCG_SYNC: str = "orgBcg_sync"
|
||||
ARTIFACT_LABEL_PLOT_LABEL_BCG_SYNC: str = "BCG_sync"
|
||||
ARTIFACT_LABEL_PLOT_LABEL_ORGBCG_SYNC: str = "OrgBCG_Sync"
|
||||
ARTIFACT_LABEL_PLOT_LABEL_BCG_SYNC: str = "BCG_Sync"
|
||||
ARTIFACT_LABEL_PREV_MOVE: str = "向前移动"
|
||||
ARTIFACT_LABEL_NEXT_MOVE: str = "向后移动"
|
||||
ARTIFACT_LABEL_PAUSE: str = "暂停移动"
|
||||
|
||||
Reference in New Issue
Block a user