BlackBody1D

class synphot.blackbody.BlackBody1D(temperature=<Quantity 5000. K>, bolometric_flux=<Quantity 1. erg / (cm2 s)>, **kwargs)[source]

Bases: astropy.modeling.Fittable1DModel

One dimensional blackbody model.

Parameters
temperatureQuantity

Blackbody temperature.

bolometric_fluxQuantity

The bolometric flux of the blackbody (i.e., the integral over the spectral axis).

Notes

Model formula:

\[f(x) = \pi B_{\nu} f_{\text{bolometric}} / (\sigma T^{4})\]

Examples

>>> from astropy import units as u
>>> from synphot.blackbody import BlackBody1D
>>> bb = BlackBody1D()
>>> bb(6000 * u.AA)  
<Quantity 1.3585381201978953e-15 erg / (cm2 Hz s)>
import numpy as np
import matplotlib.pyplot as plt
from astropy import units as u
from astropy.visualization import quantity_support
from synphot.blackbody import BlackBody1D
from synphot.units import FLAM

bb = BlackBody1D(temperature=5778*u.K)
wav = np.arange(1000, 110000) * u.AA
flux = bb(wav).to(FLAM, u.spectral_density(wav))

with quantity_support():
    plt.figure()
    plt.semilogx(wav, flux)
    plt.axvline(bb.lambda_max.to_value(u.AA), ls='--')
    plt.show()

(Source code, png, hires.png, pdf)

../_images/synphot-blackbody-BlackBody1D-1.png

Attributes Summary

bolometric_flux

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).

input_units_equivalencies

lambda_max

Peak wavelength when the curve is expressed as power density.

param_names

temperature

Methods Summary

evaluate(x, temperature, bolometric_flux)

Evaluate the model.

Attributes Documentation

bolometric_flux = Parameter('bolometric_flux', value=1.0, unit=erg / (cm2 s), bounds=(0, None))
input_units
input_units_equivalencies = {'x': [(Unit("m"), Unit("Hz"), <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("J"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("J"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("1 / m"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("1 / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("J"), Unit("1 / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("1 / m"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("m"), Unit("rad / m"), <function spectral.<locals>.<lambda>>), (Unit("Hz"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>), (Unit("J"), Unit("rad / m"), <function spectral.<locals>.<lambda>>, <function spectral.<locals>.<lambda>>)]}
lambda_max

Peak wavelength when the curve is expressed as power density.

param_names = ('temperature', 'bolometric_flux')
temperature = Parameter('temperature', value=5000.0, unit=K, bounds=(0, None))

Methods Documentation

evaluate(x, temperature, bolometric_flux)[source]

Evaluate the model.

Parameters
xfloat, ndarray, or Quantity

Frequency at which to compute the blackbody. If no units are given, this defaults to Hz.

temperaturefloat, ndarray, or Quantity

Temperature of the blackbody. If no units are given, this defaults to Kelvin.

bolometric_fluxfloat, ndarray, or Quantity

Desired integral for the blackbody.

Returns
ynumber or ndarray

Blackbody spectrum. The units are determined from the units of bolometric_flux.