Gaussian1D

class astropy.modeling.functional_models.Gaussian1D(amplitude=1, mean=0, stddev=1, **kwargs)[source] [edit on github]

Bases: astropy.modeling.functional_models.BaseGaussian1D

One dimensional Gaussian model.

Parameters:

amplitude : float

Amplitude of the Gaussian.

mean : float

Mean of the Gaussian.

stddev : float

Standard deviation of the Gaussian.

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) = A e^{- \frac{\left(x - x_{0}\right)^{2}}{2 \sigma^{2}}}\]

Examples

>>> from astropy.modeling import models
>>> def tie_center(model):
...         mean = 50 * model.stddev
...         return mean
>>> tied_parameters = {'mean': tie_center}

Specify that ‘mean’ is a tied parameter in one of two ways:

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                             tied=tied_parameters)

or

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.mean.tied
False
>>> g1.mean.tied = tie_center
>>> g1.mean.tied
<function tie_center at 0x...>

Fixed parameters:

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3,
...                        fixed={'stddev': True})
>>> g1.stddev.fixed
True

or

>>> g1 = models.Gaussian1D(amplitude=10, mean=5, stddev=.3)
>>> g1.stddev.fixed
False
>>> g1.stddev.fixed = True
>>> g1.stddev.fixed
True
import numpy as np
import matplotlib.pyplot as plt

from astropy.modeling.models import Gaussian1D

plt.figure()
s1 = Gaussian1D()
r = np.arange(-5, 5, .01)

for factor in range(1, 4):
    s1.amplitude = factor
    plt.plot(r, s1(r), color=str(0.25 * factor), lw=2)

plt.axis([-5, 5, -1, 4])
plt.show()

(png, svg, pdf)

../_images/astropy-modeling-functional_models-Gaussian1D-1.png

Attributes Summary

input_units
param_names

Methods Summary

evaluate(x, amplitude, mean, stddev) Gaussian1D model function.
fit_deriv(x, amplitude, mean, stddev) Gaussian1D model function derivatives.

Attributes Documentation

input_units
param_names = (‘amplitude’, ‘mean’, ‘stddev’)

Methods Documentation

static evaluate(x, amplitude, mean, stddev)[source] [edit on github]

Gaussian1D model function.

static fit_deriv(x, amplitude, mean, stddev)[source] [edit on github]

Gaussian1D model function derivatives.