from PyQt5 import QtWidgets
import gui.core.baselineRemovalMethods as brm
from gui.ui.BaselineRemoval import Ui_Form
from gui.util import Qtickle
from gui.util.Modules import Modules
from libpyhat.spectral_data import SpectralData
[docs]
class BaselineRemoval(Ui_Form, Modules):
[docs]
def setupUi(self, Form):
self.Form = Form
super().setupUi(Form)
Modules.setupUi(self, Form)
self.baselineMethods()
[docs]
def getGuiParams(self):
"""
Overriding Modules' getGuiParams, because I'll need to do a list of
lists
in order to obtain the regressionMethods' parameters
"""
self.qt = Qtickle.Qtickle(self)
s = []
s.append(self.qt.guiSave())
for items in self.alg:
s.append(items.getGuiParams())
return s
[docs]
def setGuiParams(self, dict):
self.qt = Qtickle.Qtickle(self)
self.qt.guiRestore(dict[0])
for i in range(len(dict)):
self.alg[i - 1].setGuiParams(dict[i])
[docs]
def run(self):
Modules.data_count += 1
self.baseline_index = Modules.data_count
Modules.data_count += 1
self.baseline_removed_index = Modules.data_count
method = self.chooseAlgorithmComboBox.currentText()
datakey = self.chooseDataComboBox.currentText()
# return method parameters and parameters that changed
methodParameters, _changed = self.getMethodParams(
self.chooseAlgorithmComboBox.currentIndex()
)
datakey_new = datakey + "-Baseline Removed-" + method + str(_changed)
datakey_baseline = datakey + "-Baseline-" + method + str(_changed)
self.list_amend(self.datakeys, self.baseline_index, datakey_baseline)
self.list_amend(self.datakeys, self.baseline_removed_index, datakey_new)
self.data[datakey_new] = SpectralData(
self.data[datakey].df.copy(deep=True), name=datakey
)
self.data[datakey_new].remove_baseline(
method, segment=True, params=methodParameters
)
self.data[datakey_baseline] = SpectralData(
self.data[datakey_new].df_baseline, name=datakey_baseline
)
[docs]
def hideAll(self):
for a in self.alg:
a.setHidden(True)
[docs]
def getMethodParams(self, index):
return self.alg[index - 1].run()
[docs]
def baselineMethods(self):
self.alg = []
list_forms = [
brm.AirPLS,
brm.ALS,
brm.Dietrich,
brm.FABC,
brm.KK,
brm.Median,
brm.Polyfit,
brm.Rubberband,
brm.WaveletSpline,
brm.MinInterp,
]
for items in list_forms:
self.alg.append(items.Ui_Form())
self.alg[-1].setupUi(self.Form)
self.algorithmLayout.addWidget(self.alg[-1].get_widget())
self.alg[-1].setHidden(True)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = BaselineRemoval()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())