astropy.units.thermodynamic_temperature(frequency, T_cmb=None)[source]

Defines the conversion between Jy/sr and “thermodynamic temperature”, \(T_{CMB}\), in Kelvins. The thermodynamic temperature is a unit very commonly used in cosmology. See eqn 8 in [1]

\(K_{CMB} \equiv I_\nu / \left(2 k \nu^2 / c^2 f(\nu) \right)\)

with \(f(\nu) = \frac{ x^2 e^x}{(e^x - 1 )^2}\) where \(x = h \nu / k T\)

frequency : Quantity with spectral units

The observed spectral equivalent Unit (e.g., frequency or wavelength)

T_cmb : Quantity with temperature units or None

The CMB temperature at z=0. If None, the default cosmology will be used to get this temperature.


For broad band receivers, this conversion do not hold as it highly depends on the frequency


[1]Planck 2013 results. IX. HFI spectral response


Planck HFI 143 GHz:

>>> from astropy import units as u
>>> from astropy.cosmology import Planck15
>>> freq = 143 * u.GHz
>>> equiv = u.thermodynamic_temperature(freq, Planck15.Tcmb0)
>>> (1. * u.mK).to(u.MJy /, equivalencies=equiv)  
<Quantity 0.37993172 MJy / sr>