def set_fit(self, fit_functions, fit_initial_parameters, fit_optimized_parameters, **kwargs):
# if no pixel was provided the current pixel is updated
if 'pixel' not in kwargs.keys() or kwargs['pixel'] == -1:
px = self._focus[0]
py = self._focus[1]
else:
px = kwargs['pixel'][0]
py = kwargs['pixel'][1]
# clear the old fit data
self._fit_functions[px, py, :] = numpy.zeros(6)
self._fit_initial_parameters[px, py, :, :] = numpy.NAN
self._fit_optimized_parameters[px, py, :, :] = numpy.NAN
# set new fit data
i_parameter = 0
for i_peak in range(len(fit_functions)):
if fit_functions[i_peak] == 1:
self._fit_functions[px, py, i_peak] = 1
self._fit_initial_parameters[px, py, i_peak, :3] = fit_initial_parameters[i_parameter:i_parameter+3]
self._fit_initial_parameters[px, py, i_peak, 3] = 0
self._fit_optimized_parameters[px, py, i_peak, :3] = fit_optimized_parameters[i_parameter:i_parameter+3]
self._fit_optimized_parameters[px, py, i_peak, 3] = 0
i_parameter += 3
elif fit_functions[i_peak] == 2:
self._fit_functions[px, py, i_peak] = 2
self._fit_initial_parameters[px, py, i_peak, :3] = fit_initial_parameters[i_parameter:i_parameter+3]
self._fit_initial_parameters[px, py, i_peak, 3] = 0
self._fit_optimized_parameters[px, py, i_peak, :3] = fit_optimized_parameters[i_parameter:i_parameter+3]
self._fit_optimized_parameters[px, py, i_peak, 3] = 0
i_parameter += 3
elif fit_functions[i_peak] == 3:
self._fit_functions[px, py, i_peak] = 3
self._fit_initial_parameters[px, py, i_peak, :] = fit_initial_parameters[i_parameter:i_parameter+4]
self._fit_optimized_parameters[px, py, i_peak, :] = fit_optimized_parameters[i_parameter:i_parameter+4]
i_parameter += 4
# emit signal
if 'emit' not in kwargs or kwargs['emit']:
self._app.fit_changed.emit(self._id)
评论列表
文章目录