astropy.units.brightness_temperature(frequency, beam_area=None)[source]

Defines the conversion between Jy/sr and “brightness temperature”, \(T_B\), in Kelvins. The brightness temperature is a unit very commonly used in radio astronomy. See, e.g., “Tools of Radio Astronomy” (Wilson 2009) eqn 8.16 and eqn 8.19 (these pages are available on google books).

\(T_B \equiv S_\nu / \left(2 k \nu^2 / c^2 \right)\)

If the input is in Jy/beam or Jy (assuming it came from a single beam), the beam area is essential for this computation: the brightness temperature is inversely proportional to the beam area.


The observed spectral equivalent Unit (e.g., frequency or wavelength). The variable is named ‘frequency’ because it is more commonly used in radio astronomy. BACKWARD COMPATIBILITY NOTE: previous versions of the brightness temperature equivalency used the keyword disp, which is no longer supported.

beam_areaQuantity [‘solid angle’]

Beam area in angular units, i.e. steradian equivalent


Arecibo C-band beam:

>>> import numpy as np
>>> from astropy import units as u
>>> beam_sigma = 50*u.arcsec
>>> beam_area = 2*np.pi*(beam_sigma)**2
>>> freq = 5*u.GHz
>>> equiv = u.brightness_temperature(freq)
>>> (1*u.Jy/beam_area).to(u.K, equivalencies=equiv)  
<Quantity 3.526295144567176 K>

VLA synthetic beam:

>>> bmaj = 15*u.arcsec
>>> bmin = 15*u.arcsec
>>> fwhm_to_sigma = 1./(8*np.log(2))**0.5
>>> beam_area = 2.*np.pi*(bmaj*bmin*fwhm_to_sigma**2)
>>> freq = 5*u.GHz
>>> equiv = u.brightness_temperature(freq)
>>> (u.Jy/beam_area).to(u.K, equivalencies=equiv)  
<Quantity 217.2658703625732 K>

Any generic surface brightness:

>>> surf_brightness = 1e6*u.MJy/
>>>, equivalencies=u.brightness_temperature(500*u.GHz)) 
<Quantity 130.1931904778803 K>