# Sersic1D#

class astropy.modeling.functional_models.Sersic1D(amplitude=1, r_eff=1, n=4, **kwargs)[source]#

One dimensional Sersic surface brightness profile.

Parameters:
amplitudefloat

Surface brightness at r_eff.

r_efffloat

nfloat

Sersic index controlling the shape of the profile. Particular values of n are equivalent to the following profiles:

• n=4 : de Vaucouleurs $$r^{1/4}$$ profile

• n=1 : Exponential profile

• n=0.5 : Gaussian profile

Other Parameters:
fixeddict, 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

Model formula:

$I(r) = I_{e} \exp\left\{ -b_{n} \left[\left(\frac{r}{r_{e}}\right)^{(1/n)} -1\right]\right\}$

where $$I_{e}$$ is the amplitude and $$r_{e}$$ is reff.

The constant $$b_{n}$$ is defined such that $$r_{e}$$ contains half the total luminosity. It can be solved for numerically from the following equation:

$\Gamma(2n) = 2\gamma (2n, b_{n})$

where $$\Gamma(a)$$ is the gamma function and $$\gamma(a, x)$$ is the lower incomplete gamma function.

References

Examples

import numpy as np
from astropy.modeling.models import Sersic1D
import matplotlib.pyplot as plt

plt.figure()
plt.subplot(111, xscale='log', yscale='log')
s1 = Sersic1D(amplitude=1, r_eff=5)
r = np.arange(0, 100, 0.01)

for n in range(1, 10):
s1.n = n
plt.plot(r, s1(r))

plt.axis([1e-1, 30, 1e-2, 1e3])
plt.ylabel('log Surface Brightness')
plt.text(0.25, 1.5, 'n=1')
plt.text(0.25, 300, 'n=10')
plt.xticks([])
plt.yticks([])
plt.show()


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). n param_names Names of the parameters that describe models of this type. r_eff

Methods Summary

 evaluate(r, amplitude, r_eff, n) One dimensional Sersic profile function.

Attributes Documentation

amplitude = Parameter('amplitude', value=1.0)#
input_units#
n = Parameter('n', value=4.0)#
param_names = ('amplitude', 'r_eff', 'n')#

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.

r_eff = Parameter('r_eff', value=1.0)#

Methods Documentation

classmethod evaluate(r, amplitude, r_eff, n)[source]#

One dimensional Sersic profile function.