Fit Models#

Fit models for curve fitting functionality.

This module provides common fit functions and parameter management for curve fitting in the mdaviz application.

class mdaviz.fit_models.ErrorFunctionFit[source]#

Error function fit model.

_error_function(x: numpy.ndarray, amplitude: float, center: float, sigma: float, offset: float) numpy.ndarray[source]#

Error function (erf) with scaling and offset.

Parameters: - x: X values - amplitude: Amplitude scaling factor - center: Center position (shift) - sigma: Width parameter - offset: Vertical offset

Returns: - Y values of error function

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for error function fit.

class mdaviz.fit_models.ExponentialFit[source]#

Exponential fit model.

_exponential_function(x: numpy.ndarray, amplitude: float, decay: float, offset: float) numpy.ndarray[source]#

Exponential function.

Parameters: - x: X values - amplitude: Initial amplitude - decay: Decay constant - offset: Vertical offset

Returns: - Y values of exponential function

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for exponential fit.

class mdaviz.fit_models.FitModel(name: str, function: Callable, parameters: list[str])[source]#

Base class for fit models.

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial parameter guesses.

Parameters: - x_data: X values - y_data: Y values

Returns: - Dictionary of parameter names and default values

fit(x_data: numpy.ndarray, y_data: numpy.ndarray, initial_guess: dict[str, float] | None = None, bounds: dict[str, tuple[float, float]] | None = None) FitResult[source]#

Perform fit and return results.

Parameters: - x_data: X values for fitting - y_data: Y values for fitting - initial_guess: Initial parameter guesses - bounds: Parameter bounds (min, max) for each parameter

Returns: - FitResult object with fit parameters and quality metrics

class mdaviz.fit_models.FitResult(parameters: dict[str, float], uncertainties: dict[str, float], r_squared: float, chi_squared: float, reduced_chi_squared: float, fit_curve: numpy.ndarray, x_fit: numpy.ndarray)[source]#

Container for fit results.

class mdaviz.fit_models.GaussianFit[source]#

Gaussian fit model.

_gaussian_function(x: numpy.ndarray, amplitude: float, center: float, sigma: float, offset: float) numpy.ndarray[source]#

Gaussian function.

Parameters: - x: X values - amplitude: Peak amplitude - center: Center position - sigma: Standard deviation - offset: Vertical offset

Returns: - Y values of Gaussian function

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for Gaussian fit.

class mdaviz.fit_models.LinearFit[source]#

Linear fit model.

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for linear fit.

_linear_function(x: numpy.ndarray, slope: float, intercept: float) numpy.ndarray[source]#

Linear function.

Parameters: - x: X values - slope: Slope of the line - intercept: Y-intercept

Returns: - Y values of linear function

class mdaviz.fit_models.LorentzianFit[source]#

Lorentzian fit model.

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for Lorentzian fit.

_lorentzian_function(x: numpy.ndarray, amplitude: float, center: float, gamma: float, offset: float) numpy.ndarray[source]#

Lorentzian function.

Parameters: - x: X values - amplitude: Peak amplitude - center: Center position - gamma: Half-width at half-maximum - offset: Vertical offset

Returns: - Y values of Lorentzian function

class mdaviz.fit_models.PolynomialFit(degree: int = 2)[source]#

Polynomial fit model.

_get_default_initial_guess(x_data: numpy.ndarray, y_data: numpy.ndarray) dict[str, float][source]#

Get default initial guesses for polynomial fit.

_polynomial_function(x: numpy.ndarray, *coefficients: float) numpy.ndarray[source]#

Polynomial function.

Parameters: - x: X values - coefficients: Polynomial coefficients (highest degree first)

Returns: - Y values of polynomial function

mdaviz.fit_models.get_available_models() dict[str, FitModel][source]#

Get dictionary of available fit models.

Returns: - Dictionary mapping model names to FitModel instances