Source code for gui.core.SplitDataset

import numpy as np
from PyQt5 import QtWidgets

from gui.ui.SplitDataset import Ui_Form
from gui.util.Modules import Modules
from libpyhat.spectral_data import SpectralData


[docs] class SplitDataset(Ui_Form, Modules):
[docs] def setupUi(self, Form): super().setupUi(Form) Modules.setupUi(self, Form)
[docs] def get_widget(self): return self.formGroupBox
[docs] def connectWidgets(self, setup=False): try: self.setComboBox(self.chooseDataComboBox, self.datakeys) self.setComboBox(self.splitOnUniqueValuesOfComboBox, self.get_choices()) except: pass if setup is False: self.chooseDataComboBox.currentIndexChanged.connect( self.update_split_choices )
[docs] def update_split_choices(self): choices = self.get_choices() if choices is not None: self.setComboBox(self.splitOnUniqueValuesOfComboBox, self.get_choices())
[docs] def update_datakeys(self, setup=False): datakey = self.chooseDataComboBox.currentText() spect_label = self.data[datakey].spect_label colname = self.splitOnUniqueValuesOfComboBox.currentText() vars_level0 = self.data[datakey].df.columns.get_level_values(0) vars_level1 = self.data[datakey].df.columns.get_level_values(1) vars_level1 = list(vars_level1[vars_level0 != spect_label]) vars_level0 = list(vars_level0[vars_level0 != spect_label]) colname = (vars_level0[vars_level1.index(colname)], colname) coldata = np.array([str(i) for i in self.data[datakey].df[colname]]) unique_values = np.unique(coldata) for i in unique_values: new_datakey = datakey + " - " + str(i) if new_datakey not in self.datakeys: Modules.data_count += 1 self.list_amend(self.datakeys, Modules.data_count, new_datakey) if setup is False: self.data[new_datakey] = SpectralData( self.data[datakey].df.iloc[coldata == i], name=new_datakey )
[docs] def run(self): self.update_datakeys(setup=False)
[docs] def get_choices(self): try: self.vars_level0 = self.data[ self.chooseDataComboBox.currentText() ].df.columns.get_level_values(0) self.vars_level1 = self.data[ self.chooseDataComboBox.currentText() ].df.columns.get_level_values(1) self.vars_level1 = list( self.vars_level1[ (self.vars_level0 != "wvl") & (self.vars_level0 != "masked") ] ) self.vars_level0 = list( self.vars_level0[ (self.vars_level0 != "wvl") & (self.vars_level0 != "masked") ] ) colnamechoices = self.vars_level1 return colnamechoices except: try: colnamechoices = self.data[ self.chooseDataComboBox.currentText() ].columns.values colnamechoices = [ i for i in colnamechoices if "Unnamed" not in i ] # remove unnamed # columns from choices return colnamechoices except: pass
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = SplitDataset() ui.setupUi(Form) Form.show() sys.exit(app.exec_())