colour.colorimetry.planck_law#

colour.colorimetry.planck_law(wavelength: ArrayLike, temperature: ArrayLike, c1: float = CONSTANT_C1, c2: float = CONSTANT_C2, n: float = CONSTANT_N) NDArrayFloat[source]#

Return the spectral radiance of a blackbody as a function of wavelength at thermodynamic temperature \(T[K]\) in a medium having index of refraction \(n\).

Parameters:
  • wavelength (ArrayLike) – Wavelength in meters.

  • temperature (ArrayLike) – Temperature \(T[K]\) in kelvin degrees.

  • c1 (float) – The official value of \(c1\) is provided by the Committee on Data for Science and Technology (CODATA) and is \(c1=3,741771x10.16\ W/m_2\) (Mohr and Taylor, 2000).

  • c2 (float) – Since \(T\) is measured on the International Temperature Scale, the value of \(c2\) used in colorimetry should follow that adopted in the current International Temperature Scale (ITS-90) (Preston-Thomas, 1990; Mielenz et aI., 1991), namely \(c2=1,4388x10.2\ m/K\).

  • n (float) – Medium index of refraction. For dry air at 15C and 101 325 Pa, containing 0,03 percent by volume of carbon dioxide, it is approximately 1,00028 throughout the visible region although CIE 15:2004 recommends using \(n=1\).

Returns:

Radiance in watts per steradian per square metre (\(W/sr/m^2\)).

Return type:

numpy.ndarray

Warning

The colour.colorimetry.planck_law() definition behaviour with n-dimensional arrays is unusual: The wavelength and temperature parameters are first raveled using numpy.ravel(). Then, they are broadcasted together by transposing the temperature parameter. Finally, and for convenience, the return value is squeezed using numpy.squeeze().

Notes

  • The following implementation is expressed in terms of wavelength.

  • The SI unit of radiance is watts per steradian per square metre (\(W/sr/m^2\)).

References

[CIET14804e]

Examples

>>> planck_law(500 * 1e-9, 5500)  
20472701909806.5...
>>> planck_law(500 * 1e-9, [5000, 5500, 6000])  
array([  1.2106064...e+13,   2.0472701...e+13,   3.1754431...e+13])