def startFitModel(self): if not utils.checkInputRasters(self.inputs): QMessageBox.warning(self.plugin, self.tr("Missed input data"), self.tr("Initial or final raster is not set. Please specify input data and try again") ) return if not utils.checkFactors(self.inputs): QMessageBox.warning(self.plugin, self.tr("Missed input data"), self.tr("Factors rasters is not set. Please specify them and try again") ) return if not utils.checkChangeMap(self.inputs): QMessageBox.warning(self.plugin, self.tr("Missed input data"), self.tr("Change map raster is not set. Please create it try again") ) return self.settings.setValue("ui/LR/neighborhood", self.spnNeighbourhood.value()) self.plugin.logMessage(self.tr("Init LR model")) model = LR(ns=self.spnNeighbourhood.value()) self.inputs["model"] = model model.setMaxIter(self.spnMaxIterations.value()) model.setState(self.inputs["initial"]) model.setFactors(self.inputs["factors"].values()) model.setOutput(self.inputs["changeMap"]) model.setMode(self.inputs["samplingMode"],) model.setSamples(self.plugin.spnSamplesCount.value()) self.plugin.logMessage(self.tr("Set training data")) model.moveToThread(self.plugin.workThread) self.plugin.workThread.started.connect(model.startTrain) self.plugin.setProgressRange("Train LR model", 0) model.finished.connect(self.__trainFinished) model.errorReport.connect(self.plugin.logErrorReport) model.finished.connect(self.plugin.workThread.quit) self.plugin.workThread.start()