Пример #1
0
 def __init__(self, datastore=None, plin='konverter', parent=None):
     super(BASE_TAB_KONVERTER, self).__init__(parent)
     self.setupUi(self)
     self.datastore = datastore
     self.plin = plin
     self.model = SiroviFrameModel(tocke=self.datastore.get_tocke(self.plin),
                                   frejm=self.datastore.tabData[self.plin].get_frejm(),
                                   start=self.datastore.tabData[self.plin].get_startIndeks())
     ### postavljanje tablica ###
     self.konverterRezultatView = pomocni.TablicaKonverterRezultati()
     self.konverterRezultatView.set_mjerna_jedinica(self.datastore.get_izabranaMjernaJedinica())
     self.konverterRezultatView.set_tocke(self.datastore.tabData['konverter'].get_tocke())
     self.konverterRezultatView.set_data(self.generiraj_nan_frejm_rezultata_konvertera())
     self.layoutKonverterRezultati.addWidget(self.konverterRezultatView)
     self.layoutKonverterRezultati.addStretch(-1)
     self.tablicaKonverter = pomocni.TablicaKonverterParametri()
     self.tablicaKonverter.set_values([np.NaN, np.NaN, np.NaN, np.NaN])
     self.layoutKonverterParametri.addWidget(self.tablicaKonverter)
     self.layoutKonverterParametri.addStretch(-1)
     self.tablicaKriterija = pomocni.TablicaKonverterKriterij()
     self.layoutKonverterKriterij.addWidget(self.tablicaKriterija)
     self.layoutKonverterKriterij.addStretch(-1)
Пример #2
0
class TabKonverter(BASE_TAB_KONVERTER, FORM_TAB_KONVERTER):
    def __init__(self, datastore=None, plin='konverter', parent=None):
        super(BASE_TAB_KONVERTER, self).__init__(parent)
        self.setupUi(self)
        self.datastore = datastore
        self.plin = plin
        self.model = SiroviFrameModel(tocke=self.datastore.get_tocke(self.plin),
                                      frejm=self.datastore.tabData[self.plin].get_frejm(),
                                      start=self.datastore.tabData[self.plin].get_startIndeks())
        ### postavljanje tablica ###
        self.konverterRezultatView = pomocni.TablicaKonverterRezultati()
        self.konverterRezultatView.set_mjerna_jedinica(self.datastore.get_izabranaMjernaJedinica())
        self.konverterRezultatView.set_tocke(self.datastore.tabData['konverter'].get_tocke())
        self.konverterRezultatView.set_data(self.generiraj_nan_frejm_rezultata_konvertera())
        self.layoutKonverterRezultati.addWidget(self.konverterRezultatView)
        self.layoutKonverterRezultati.addStretch(-1)
        self.tablicaKonverter = pomocni.TablicaKonverterParametri()
        self.tablicaKonverter.set_values([np.NaN, np.NaN, np.NaN, np.NaN])
        self.layoutKonverterParametri.addWidget(self.tablicaKonverter)
        self.layoutKonverterParametri.addStretch(-1)
        self.tablicaKriterija = pomocni.TablicaKonverterKriterij()
        self.layoutKonverterKriterij.addWidget(self.tablicaKriterija)
        self.layoutKonverterKriterij.addStretch(-1)

    def get_model(self):
        return self.model

    def set_model(self, x):
        self.model = x

    def generiraj_nan_frejm_rezultata_konvertera(self):
        """
        metoda generira datafrejm sa 4 stupca i 6 redaka radi inicijalnog prikaza
        tablice rezultata umjeravanja. Sve vrijednosti tog datafrejma su np.NaN
        """
        tocke = self.model.get_tocke()
        indeks = [str(tocka) for tocka in tocke]
        frejm = pd.DataFrame(
            columns=['c, R, NOx', 'c, R, NO2', 'c, NO', 'c, NOx'],
            index=indeks)
        return frejm

    def konverter_request_recalculate(self):
        """emit zahtjeva za ponovnim racunanjem rezultata"""
        self.emit(QtCore.SIGNAL('konverter_request_recalculate'))

    def update_rezultat(self, ulaz):
        """update gui elemenata za prikaz rezultata sa novim podacima
        x je mapa:
        {'rezultat':frejm sa podacima,
         'efikasnost':lista efikasnosti konvertera,
         'ec_kriterij':nested lista podataka za prikaz kriterija prihvatljivosti}"""
        jedinica = self.datastore.get_izabranaMjernaJedinica()
        tocke = self.model.get_tocke()
        x = copy.deepcopy(ulaz)
        frejm = x['rezultat']
        eff = x['efikasnost']
        krit = x['ec_kriterij']
        krit[3] = str(round(krit[3], 1)) #round i adapt rezultat u string
        efikasnost = [str(round(i, 1)) for i in eff]
        self.konverterRezultatView.set_mjerna_jedinica(jedinica)
        self.konverterRezultatView.set_tocke(tocke)
        self.konverterRezultatView.set_data(frejm)
        self.tablicaKonverter.set_values(efikasnost)
        self.tablicaKriterija.set_values(krit)