# Analytic Functions (`astropy.analytic_functions`

)¶

Warning

Blackbody functions have been moved to `astropy.modeling.blackbody`

.
This sub-package is deprecated since v2.0 and will be removed from
Astropy in a future version.

## Introduction¶

The `astropy.analytic_functions`

subpackage provides analytic functions that
are commonly used in astronomy. These already understand
`Quantity`

, i.e., they can handle units of input and output
parameters.

In future versions of `astropy`

, many of these might be accessible as
`Model`

.

## Getting Started¶

```
>>> from astropy import units as u
>>> from astropy.analytic_functions import blackbody_lambda, blackbody_nu
```

Calculate blackbody flux for 10000 K at 6000 Angstrom:

```
>>> blackbody_lambda(6000 * u.AA, 10000 * u.K)
<Quantity 15315791.836941158 erg / (Angstrom cm2 s sr)>
>>> blackbody_nu(6000 * u.AA, 10000 * u.K)
<Quantity 0.00018391673686797075 erg / (cm2 Hz s sr)
```

## Using `astropy.analytic_functions`

¶

### Blackbody Radiation¶

Blackbody flux is calculated with Planck law (Rybicki & Lightman 1979):

where the unit of \(B_{\lambda}(T)\) is
\(erg \; s^{-1} cm^{-2} \mathring{A}^{-1} sr^{-1}\), and \(B_{\nu}(T)\) is
\(erg \; s^{-1} cm^{-2} Hz^{-1} sr^{-1}\).
`blackbody_lambda()`

and
`blackbody_nu()`

calculate the
blackbody flux for \(B_{\lambda}(T)\) and \(B_{\nu}(T)\), respectively.

#### Examples¶

```
>>> import numpy as np
>>> import warnings
>>> from astropy import units as u
>>> from astropy.analytic_functions import blackbody_lambda, blackbody_nu
>>> from astropy.utils.exceptions import AstropyDeprecationWarning
```

Calculate blackbody flux for 5000 K at 100 and 10000 Angstrom while suppressing any Numpy warnings:

```
>>> wavelengths = [100, 10000] * u.AA
>>> temperature = 5000 * u.K
>>> with np.errstate(all='ignore'):
... with warnings.catch_warnings():
... warnings.simplefilter('ignore', AstropyDeprecationWarning)
... flux_lam = blackbody_lambda(wavelengths, temperature)
... flux_nu = blackbody_nu(wavelengths, temperature)
>>> flux_lam
Quantity [1.27452545e-108, 7.10190526e+005] erg / (Angstrom cm2 s sr)>
>>> flux_nu
<Quantity [4.25135927e-123, 2.36894060e-005] erg / (cm2 Hz s sr)>
```

Plot a blackbody spectrum for 5000 K:

Note that an array of temperatures can also be given instead of a single
temperature. In this case, the Numpy broadcasting rules apply: for instance, if
the frequency and temperature have the same shape, the output will have this
shape too, while if the frequency is a 2-d array with shape `(n, m)`

and the
temperature is an array with shape `(m,)`

, the output will have a shape `(n, m)`

.

## See Also¶

Rybicki, G. B., & Lightman, A. P. 1979, Radiative Processes in Astrophysics (New York, NY: Wiley)

## Reference/API¶

### astropy.analytic_functions.blackbody Module¶

Functions related to blackbody radiation.

#### Functions¶

`blackbody_nu` (in_x, temperature) |
Deprecated since version 2.0. |

`blackbody_lambda` (in_x, temperature) |
Deprecated since version 2.0. |