Gaussian2D

class astropy.modeling.functional_models.Gaussian2D(amplitude=1, x_mean=0, y_mean=0, x_stddev=None, y_stddev=None, theta=None, cov_matrix=None, **kwargs)[source] [edit on github]

Bases: astropy.modeling.Fittable2DModel

Two dimensional Gaussian model.

Parameters:

amplitude : float

Amplitude of the Gaussian.

x_mean : float

Mean of the Gaussian in x.

y_mean : float

Mean of the Gaussian in y.

x_stddev : float or None

Standard deviation of the Gaussian in x before rotating by theta. Must be None if a covariance matrix (cov_matrix) is provided. If no cov_matrix is given, None means the default value (1).

y_stddev : float or None

Standard deviation of the Gaussian in y before rotating by theta. Must be None if a covariance matrix (cov_matrix) is provided. If no cov_matrix is given, None means the default value (1).

theta : float, optional

Rotation angle in radians. The rotation angle increases counterclockwise. Must be None if a covariance matrix (cov_matrix) is provided. If no cov_matrix is given, None means the default value (0).

cov_matrix : ndarray, optional

A 2x2 covariance matrix. If specified, overrides the x_stddev, y_stddev, and theta defaults.

Other Parameters:
 

fixed : a dict

A dictionary {parameter_name: boolean} of parameters to not be varied during fitting. True means the parameter is held fixed. Alternatively the fixed property of a parameter may be used.

tied : dict

A dictionary {parameter_name: callable} of parameters which are linked to some other parameter. The dictionary values are callables providing the linking relationship. Alternatively the tied property of a parameter may be used.

bounds : dict

A dictionary {parameter_name: boolean} of lower and upper bounds of parameters. Keys are parameter names. Values are a list of length 2 giving the desired range for the parameter. Alternatively the min and max properties of a parameter may be used.

eqcons : list

A list of functions of length n such that eqcons[j](x0,*args) == 0.0 in a successfully optimized problem.

ineqcons : list

A list of functions of length n such that ieqcons[j](x0,*args) >= 0.0 is a successfully optimized problem.

Notes

Model formula:

\[f(x, y) = A e^{-a\left(x - x_{0}\right)^{2} -b\left(x - x_{0}\right) \left(y - y_{0}\right) -c\left(y - y_{0}\right)^{2}}\]

Using the following definitions:

\[a = \left(\frac{\cos^{2}{\left (\theta \right )}}{2 \sigma_{x}^{2}} + \frac{\sin^{2}{\left (\theta \right )}}{2 \sigma_{y}^{2}}\right)\]\[b = \left(\frac{\sin{\left (2 \theta \right )}}{2 \sigma_{x}^{2}} - \frac{\sin{\left (2 \theta \right )}}{2 \sigma_{y}^{2}}\right)\]\[c = \left(\frac{\sin^{2}{\left (\theta \right )}}{2 \sigma_{x}^{2}} + \frac{\cos^{2}{\left (\theta \right )}}{2 \sigma_{y}^{2}}\right)\]
If using a cov_matrix, the model is of the form:
\[f(x, y) = A e^{-0.5 \left(\vec{x} - \vec{x}_{0}\right)^{T} \Sigma^{-1} \left(\vec{x} - \vec{x}_{0}\right)}\]

where \(\vec{x} = [x, y]\), \(\vec{x}_{0} = [x_{0}, y_{0}]\), and \(\Sigma\) is the covariance matrix:

\[\begin{split}\Sigma = \left(\begin{array}{ccc} \sigma_x^2 & \rho \sigma_x \sigma_y \\ \rho \sigma_x \sigma_y & \sigma_y^2 \end{array}\right)\end{split}\]

\(\rho\) is the correlation between x and y, which should be between -1 and +1. Positive correlation corresponds to a theta in the range 0 to 90 degrees. Negative correlation corresponds to a theta in the range of 0 to -90 degrees.

See [R13] for more details about the 2D Gaussian function.

References

[R13](1, 2) http://en.wikipedia.org/wiki/Gaussian_function

Attributes Summary

amplitude
param_names
theta
x_mean
x_stddev
y_mean
y_stddev

Methods Summary

evaluate(x, y, amplitude, x_mean, y_mean, ...) Two dimensional Gaussian function
fit_deriv(x, y, amplitude, x_mean, y_mean, ...) Two dimensional Gaussian function derivative with respect to parameters

Attributes Documentation

amplitude
param_names = ('amplitude', 'x_mean', 'y_mean', 'x_stddev', 'y_stddev', 'theta')
theta
x_mean
x_stddev
y_mean
y_stddev

Methods Documentation

static evaluate(x, y, amplitude, x_mean, y_mean, x_stddev, y_stddev, theta)[source] [edit on github]

Two dimensional Gaussian function

static fit_deriv(x, y, amplitude, x_mean, y_mean, x_stddev, y_stddev, theta)[source] [edit on github]

Two dimensional Gaussian function derivative with respect to parameters