1
0
forked from IPKM/nmreval
adjustments to fit to see if fit is at least running, could help with #39

Co-authored-by: Dominik Demuth <dominik.demuth@physik.tu-darmstadt.de>
Reviewed-on: IPKM/nmreval#43
This commit is contained in:
2023-04-08 18:37:07 +00:00
parent ffecc9c873
commit 02f8a3bb31
5 changed files with 30 additions and 15 deletions

View File

@ -58,7 +58,7 @@ class RdBuCMap:
elif val < self.min:
col = QtGui.QColor.fromRgb(*RdBuCMap._rdbu[-1])
else:
col = QtGui.QColor.fromRgb(*(float(self.spline[i](val)) for i in range(3)))
col = QtGui.QColor.fromRgb(*(int(self.spline[i](val)) for i in range(3)))
return col

View File

@ -66,7 +66,6 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
self._block_window_change = False
self.fname = None
self.tim = QtCore.QTimer()
self.settings = QtCore.QSettings('NMREVal', 'settings')
self._init_gui()
@ -887,6 +886,11 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
self.fit_dialog.fit_button.setEnabled(False)
self.management.start_fit(parameter, links, fit_options)
self.status.setText('Fit running...'.format(self.management.fitter.step))
tim = QtCore.QTimer()
tim.setInterval(500)
tim.timeout.connect(lambda: self.status.setText(f'Fit running... ({self.management.fitter.step} evaluations)'))
tim.start(500)
@QtCore.pyqtSlot(dict, int, bool)
def show_fit_preview(self, funcs: dict, num: int, show: bool):
@ -910,6 +914,7 @@ class NMRMainWindow(QtWidgets.QMainWindow, Ui_BaseWindow):
@QtCore.pyqtSlot(list)
def show_fit_results(self, results: list):
self.fit_dialog.fit_button.setEnabled(True)
self.status.setText('')
if results:
res_dialog = QFitResult(results, self.management, parent=self)
res_dialog.add_graphs(self.management.graphs.list())

View File

@ -398,7 +398,7 @@ class UpperManagement(QtCore.QObject):
self.__fit_options = (parameter, links, fit_options)
fitter = FitRoutine()
self.fitter = FitRoutine()
models = {}
fit_limits = fit_options['limits']
fit_mode = fit_options['fit_mode']
@ -442,18 +442,18 @@ class UpperManagement(QtCore.QObject):
lb=model_p['lb'], ub=model_p['ub'],
fun_kwargs=set_params[1])
fitter.add_data(d)
self.fitter.add_data(d)
model_globs = model_p['glob']
if model_globs:
m.set_global_parameter(**model_p['glob'])
for links_i in links:
fitter.set_link_parameter((models[links_i[0]], links_i[1]),
(models[links_i[2]], links_i[3]))
self.fitter.set_link_parameter((models[links_i[0]], links_i[1]),
(models[links_i[2]], links_i[3]))
with busy_cursor():
self.fit_worker = FitWorker(fitter, fit_mode)
self.fit_worker = FitWorker(self.fitter, fit_mode)
self.fit_thread = QtCore.QThread()
self.fit_worker.moveToThread(self.fit_thread)
@ -469,7 +469,7 @@ class UpperManagement(QtCore.QObject):
@QtCore.pyqtSlot(list, bool)
def end_fit(self, result: list, success: bool):
print('FIT FINISHED')
logger.info('FIT FINISHED')
if success:
self.fitFinished.emit(result)
else: