Moffat1D

class astropy.modeling.functional_models.Moffat1D(amplitude=1, x_0=0, gamma=1, alpha=1, **kwargs)[source]

Bases: astropy.modeling.Fittable1DModel

One dimensional Moffat model.

Parameters
amplitudefloat

Amplitude of the model.

x_0float

x position of the maximum of the Moffat model.

gammafloat

Core width of the Moffat model.

alphafloat

Power index of the Moffat model.

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.

See also

Gaussian1D, Box1D

Notes

Model formula:

\[f(x) = A \left(1 + \frac{\left(x - x_{0}\right)^{2}}{\gamma^{2}}\right)^{- \alpha}\]

Examples

import numpy as np
import matplotlib.pyplot as plt

from astropy.modeling.models import Moffat1D

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

for factor in range(1, 4):
    s1.amplitude = factor
    s1.width = 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-Moffat1D-1.png

Attributes Summary

alpha

amplitude

fwhm

Moffat full width at half maximum.

gamma

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

x_0

Methods Summary

evaluate(x, amplitude, x_0, gamma, alpha)

One dimensional Moffat model function

fit_deriv(x, amplitude, x_0, gamma, alpha)

One dimensional Moffat model derivative with respect to parameters

Attributes Documentation

alpha = Parameter('alpha', value=1.0)
amplitude = Parameter('amplitude', value=1.0)
fwhm

Moffat full width at half maximum. Derivation of the formula is available in this notebook by Yoonsoo Bach.

gamma = Parameter('gamma', value=1.0)
input_units
param_names = ('amplitude', 'x_0', 'gamma', 'alpha')
x_0 = Parameter('x_0', value=0.0)

Methods Documentation

static evaluate(x, amplitude, x_0, gamma, alpha)[source]

One dimensional Moffat model function

static fit_deriv(x, amplitude, x_0, gamma, alpha)[source]

One dimensional Moffat model derivative with respect to parameters