astropy:docs

Gaussian2D

class astropy.modeling.functional_models.Gaussian2D[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

Standard deviation of the Gaussian in x before rotating by theta. x_stddev and y_stddev must be specified unless a covariance matrix (cov_matrix) is input.

y_stddev : float

Standard deviation of the Gaussian in y before rotating by theta. x_stddev and y_stddev must be specified unless a covariance matrix (cov_matrix) is input.

theta : float, optional

Rotation angle in radians. The rotation angle increases counterclockwise, from the positive x-axis.

cov_matrix : ndarray, optional

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

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:

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

\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 [R6] for more details about the 2D Gaussian function.

References

[R6](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

Page Contents