Skip to the content.

index


Fitting

Qudi provides drop-in objects that can be used in logic and corresponding GUI modules to facilitate implementation of data fitting and fit constraint configuration.

Adding custom fit models

Users can provide custom fit models that loaded at runtime. To this end, you need to provide the models as .py files in one of the following locations:

  qudi-core/src/qudi/util/fit_models
  qudi-iqo-modules/src/qudi/util/fit_models
  <custom-modules>/src/qudi/util/fit_models

Each fit model is implemented as a class that inherits from FitModelBase and needs to have the following minimal functions:


    from qudi.util.fit_models.model import FitModelBase, estimator

    class CustomLinearFit(FitModelBase):
        """
        """
        def __init__(self, **kwargs):
            super().__init__(**kwargs)
            self.set_param_hint('slope', value=1., min=-np.inf, max=np.inf)
    
        @staticmethod
        def _model_function(x, slope):
            return slope* x

        # optional, make a good initial guess for the optimize
        @estimator('default')  # provide different estimators specified by name string
        def estimate(self, data, x):
            y_span = max(data) - min(data)
            x_span = max(x) - min(x)
            estimate = self.make_params()
            estimate['slope'] = y_span/x_span

            return estimate

#Todo: More Documentation

index