solarwindpy.fitfunctions.lines.Line

class Line(xobs, yobs, **kwargs)[source]

Bases: FitFunction

Linear fit function for straight line relationships.

Fits data to the form: y = m*x + b

__init__(xobs, yobs, **kwargs)[source]

Initialize fit function with observed data.

Parameters:
  • xobs (array-like) – Observed x values (independent variable). Shape must match yobs.

  • yobs (array-like) – Observed y values (dependent variable). Shape must match xobs.

  • **kwargs – The description is missing.

Notes

The fitting procedure uses scipy.optimize.least_squares with robust loss functions (Huber by default) to handle outliers. The initial parameter guess is provided by the p0 property, which must be implemented by subclasses.

All subclasses inherit this documentation automatically through the docstring-inheritance metaclass.

Examples

>>> import numpy as np
>>> from solarwindpy.fitfunctions import Gaussian
>>> x = np.linspace(-5, 5, 100)
>>> y = 3 * np.exp(-0.5 * x**2) + np.random.normal(0, 0.1, 100)
>>> fit = Gaussian(x, y, xmin=-3, xmax=3)
>>> fit.make_fit()
>>> print(f"Fitted mu: {fit.popt['mu']:.3f}")

See also

make_fit

Execute the fitting procedure

popt

Access optimized parameters

rsq

Calculate coefficient of determination

property function

Get the function that`curve_fit` fits.

The function is set at instantiation. It doesn’t make sense to change it unless you redefine the entire FitFunction, so there is no new kwarg.

property p0

Calculate the initial guess for the line parameters.

If this fails, return curve_fit()’s default value None.

Returns:

p0 – The initial guesses as [m, b].

Return type:

list

property TeX_function

Function written in LaTeX.

property x_intercept

Calculate the x-intercept of the fitted line.

Returns:

The x value where the line crosses y=0.

Return type:

float

property TeX_info
property argnames

The names of the actual function arguments pulled by getfullargspec.

build_TeX_info()
build_plotter()
property chisq_dof

Chisq per degree of freedom \(\chi^2_\nu\).

If None, not calculated by make_fit_old. If np.nan, fit failed.

property combined_popt_psigma

Convenience to extract all versions of the optimized parameters.

property dof

Degrees of freedom in the fit.

property fit_bounds

Bounds used when running the fit.

property fit_result
property initial_guess_info
property logger
make_fit(return_exception=False, **kwargs)

Fit the function with the independent xobs and dependent yobs.

Uses least_squares and returns the OptimizeResult object, but treats weights as in curve_fit.

Parameters:
  • return_exception (bool) – If True, return exceptions from fitting routine, instead of raising. This is useful when looping through many fits and wanting to identify failed fits after the fact.

  • **kwargs – The description is missing.

property nobs

The total number of observations used in the fit.

property observations
property pcov

Returns a copy so that the matrix isn’t accidentally edited.

property plotter
property popt

Optimized fit parameters.

property psigma
property psigma_relative
residuals(pct=False)

Calculate the fit residuals.

If pct, normalize by fit yvalues.

Parameters:

pct – The description is missing.

property rsq

Coefficient of determination.

Source: <en.wikipedia.org/wiki/Coefficient_of_determination#Definitions>

set_fit_obs(xobs_raw, yobs_raw, weights_raw, xmin=None, xmax=None, xoutside=None, ymin=None, ymax=None, youtside=None, wmin=None, wmax=None, logx=False, logy=False)

Set the observed values we’ll actually use in the fit.

By applying limits to xobs_raw and yobs_raw and checking for finite values.

All boundaries are inclusive <= or >=.

If logy, then make selection of wmin and wmax based on \(w/(y \ln(10))\).

Parameters:
  • xobs_raw – The description is missing.

  • yobs_raw – The description is missing.

  • weights_raw – The description is missing.

  • xmin – The description is missing.

  • xmax – The description is missing.

  • xoutside – The description is missing.

  • ymin – The description is missing.

  • ymax – The description is missing.

  • youtside – The description is missing.

  • wmin – The description is missing.

  • wmax – The description is missing.

  • logx – The description is missing.

  • logy – The description is missing.

property sufficient_data

Ensure that we can fit the data before doing any computations.