# 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]

Two dimensional Gaussian model.

Parameters
amplitude

Amplitude (peak value) of the Gaussian.

x_mean

Mean of the Gaussian in x.

y_mean

Mean of the Gaussian in y.

x_stddevfloat or Quantity 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_stddevfloat or Quantity 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).

thetafloat or Quantity, optional.

The rotation angle as an angular quantity (Quantity or Angle) or a value in radians (as a float). 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_matrixndarray, optional

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

Other Parameters
fixeda dict, optional

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.

tieddict, optional

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.

boundsdict, optional

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

eqconslist, optional

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

ineqconslist, optional

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

Notes

Either all or none of input x, y, [x,y]_mean and [x,y]_stddev must be provided consistently with compatible units or as unitless numbers.

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:

\begin{align}\begin{aligned}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)\end{aligned}\end{align}
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  for more details about the 2D Gaussian function.

References

1

https://en.wikipedia.org/wiki/Gaussian_function

Attributes Summary

 amplitude input_units This property is used to indicate what units or sets of units the evaluate method expects, and returns a dictionary mapping inputs to units (or None if any units are accepted). param_names Names of the parameters that describe models of this type. theta x_fwhm Gaussian full width at half maximum in X. x_mean x_stddev y_fwhm Gaussian full width at half maximum in Y. 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 = Parameter('amplitude', value=1.0)
input_units
param_names = ('amplitude', 'x_mean', 'y_mean', 'x_stddev', 'y_stddev', 'theta')

Names of the parameters that describe models of this type.

The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

When defining a custom model class the value of this attribute is automatically set by the Parameter attributes defined in the class body.

theta = Parameter('theta', value=0.0)
x_fwhm

Gaussian full width at half maximum in X.

x_mean = Parameter('x_mean', value=0.0)
x_stddev = Parameter('x_stddev', value=1.0)
y_fwhm

Gaussian full width at half maximum in Y.

y_mean = Parameter('y_mean', value=0.0)
y_stddev = Parameter('y_stddev', value=1.0)

Methods Documentation

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

Two dimensional Gaussian function

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

Two dimensional Gaussian function derivative with respect to parameters