The resources that I've checked out seem to say thermal radiation only occurs in the infrared and visible spectrum. For example my heat transfer textbook and the Wikipedia page on emissivity.

In my mind thermal radiation is just energy emitted as a result of internal collisions from temperature. So, since temperature can range from 0K to huge numbers, I would think you would have a similar range of emitted energies. So then thermal radiation could occur throughout the whole of the electromagnetic spectrum.

  • 3
    $\begingroup$ In addition to the existing answers, it is good to point out that although the energy of longwave (microwave) radiation emitted by the Earth (or moon, or Sun) is negligible compared to the energy emitted at higher frequencies, it is still a measurable quantity that can and does provide unique information for applications including weather and climate measurements. As Floris' answer illustrates, energy drops off far more rapidly at the high-end of the spectrum, so the opposite is not true; no IR measurements of deep space or UV of Earth. $\endgroup$
    – gerrit
    Dec 9, 2016 at 18:14
  • 1
    $\begingroup$ The lead of the Wikipedia article on emissivity is misleading. The authors do not mean to say thermal radiation is exclusively visible or infrared, but that both are included; it is pointed out because some sources contrast visible to thermal radiation (for example, many Earth remote sensing terminologies do so), even though essentially all of the visible radiation we see is also thermal in origin. $\endgroup$
    – gerrit
    Dec 9, 2016 at 18:17
  • 1
    $\begingroup$ Those frequencies are visible because they're the frequency of thermal radiation emitted by the sun. $\endgroup$
    – user253751
    Dec 10, 2016 at 3:22

4 Answers 4


You are correct. Thermal radiation can have any frequency at all; it depends on the temperature of the radiating body. However, most bodies in the universe have temperatures that make them emit most of their radiation in the visible or infrared part of the spectrum.

If the body in question is a "black body" (one that absorbs all electromagnetic radiation falling onto it) and it is thermal equilibrium with its environment, then it emits "black body radiation". The correct spectrum of black body radiation was first calculated by Planck. It shows that a black body radiates at all frequencies, but with a peak at frequency that depends on the temperature. The sun, for example, with a temperature of $5800\:\mathrm{K}$ peaks in the yellow to green part of the visible spectrum. However, its measurable radiation extends well into the IR and UV part of the spectrum.

Very hot stars will shine more strongly in the UV, and even into the Xray part of the spectrum.

Another example of black body radiation is the Cosmic Microwave Background. With a temperature of $2.75\:\mathrm{K}$ the CMB peaks in the microwave part of the spectrum, at $160\:\mathrm{GHz}$.

  • 24
    $\begingroup$ An interesting terrestrial example: you have to wear sunscreen or similar UV protection while melting platinum. Platinum's melting point is hot enough that it outputs a decent enough fraction of its radiation in the UV region that it can give you a sunburn! $\endgroup$
    – Cort Ammon
    Dec 9, 2016 at 15:18
  • 4
    $\begingroup$ The tungsten filament of an ordinary light bulb produces enough UV to be potentially harmful. The glass envelope filters out the UV. However, one can purchase incandescent bulbs having quartz envelopes. In this case there is often a second glass envelope. An incandescent calibration source I once used required full body coverage including gloves and face screen to guard against UV exposure. $\endgroup$
    – garyp
    Dec 9, 2016 at 18:19
  • 2
    $\begingroup$ @CortAmmon Moreover, there's no ozone layer between you and the platinum. So it's even worse than the Sun. $\endgroup$
    – gerrit
    Dec 9, 2016 at 18:25
  • 3
    $\begingroup$ @CortAmmon Identical concerns apply to anyone who does any electrical arc welding, particularly in respect of protecting their eyes. $\endgroup$
    – Calchas
    Dec 10, 2016 at 16:53

At the temperatures we normally encounter (where solids and liquids exist), the thermal radiation has high-energy brightness limits set by Planck's Law and the Stefan-Boltzmann law. To get significant UV (higher than visible light frequencies) from a solid material, it has to be as hot as the tungsten filament in a halogen light bulb, or the gasses of the photosphere of the sun. Or, hotter.

The Earth's atmosphere is not transparent to high UV energies (the so-called "vacuum ultraviolet" region), so Earthlings find little thermal radiation of any sort above the range of visible light and near-visible UV. Many objects emit lower-energy radiation, of course (far-infrared to millimeter wave to microwave to radio frequency), but it only dominates at very low temperatures. A common heating "radiator" transfers more heat by air convection than by radiation.


If by "thermal radiation" you mean "black body radiation emitted by a warm body", then the equation that describes what you are asking about is the Planck Law, which gives the radiance as a function of wavelength $\lambda$ for a black body radiator at a particular temperature $T$:

$$B(\lambda, T) = \frac{2hc^2}{\lambda^5}\frac{1}{e^{\frac{hc}{\lambda k_B T}}-1}$$

Radiance has units of $\rm{W~sr^{-1} m^{-2} m^{-1}}$ - energy per unit angle, per unit area, per meter (because it's a function of wavelength). The shape of this distribution shifts towards the UV as temperature increases: the location of the peak is given by Wien's Displacement Law:


Where $b$ is Wien's displacement constant, equal to 2.8977729(17)×10$^{−3}$ m K. This shows that the peak will shift to shorter wavelengths as the temperature increases.*

I made a little Python program that plots Planck's Law for a number of different temperatures; by using a log scale, you can see that there is "some" energy at all wavelengths, but the curves drop off steeply:

enter image description here

If you repeat this plot with linear Y axis, it looks like this:

enter image description here

As you can see, at sufficiently high temperatures (hotter than the surface of the sun) the peak of the radiation will be in the UV (that is, below 400 nm).

Finally here is a linear plot of the curves (scaled to their respective maximum value) for some more extreme temperatures - 2041 K (melting platinum), 5777 K (sun), 10,000 K (a very hot sun), 210,000 K and 1,000,000 K (values suggested by Keith McLary)

enter image description here

As before - the shapes of the curves is unchanged, but the peak moves left (and the total power goes up as $T^4$.)

You can create curves like this yourself with a program like this (slightly updated code in light of Gert's suggestion):

from scipy.constants import codata
import numpy as np
import matplotlib.pyplot as plt

D = codata.physical_constants

h = D['Planck constant'][0]
k = D['Boltzmann constant'][0]
c = D['speed of light in vacuum'][0]

def planck(T, l):
    # calculate the Planck Law for a specific temperature and an array of wavelengths
    p = c*h/(k*l*T)
    result = np.zeros(np.shape(l))+1e-99
    # prevent over/underflow - compute only when p is "not too big"
    calcMe = np.where(p<700)
    result[calcMe] = (h*c*c)/(np.power(l[calcMe], 5.0) * (np.exp(p[calcMe])-1))        
    return result

# define a range of temperatures
Tbody=np.arange(2000, 12000, 2000)

# compute over a range of wavelengths - from deep UV to mm
Lvec = np.logspace(1, 6, 500)*1e-9  # wavelengths: 1 nm - 1 mm

plot1 = plt.figure()
ax = plot1.add_subplot(111)

# compute Planck function for each temperature and plot:
for ti,T in enumerate(Tbody):
    r = planck(T, Lvec)
    ax.plot(Lvec*1e9, planck(T, Lvec),label='T=%d'%T)

# create axes and labels
plotAs = 'linear' # set to 'log' for log plot
ax.set_xlabel('lambda (nm)')  
ax.set_ylabel('radiance (W/sr/m^3)')
ax.set_title('Black body spectrum')
ylim = (1e-8, 2.5e14) # for clarity of log plot limit lower value

# arrow drawn at different height depending on whether this is log or linear plot
arrowHeight = 1e-4
if plotAs == 'linear':
    arrowHeight = 5e13

ax.plot([400, 400], ylim, color='black')
# arrow pointing away from the line
ax.annotate('', xy=(1400, arrowHeight), xytext=(400, arrowHeight), arrowprops = dict(facecolor='black', shrink = 0.05))
# text belongs to an invisible arrow...
ax.annotate('visible and IR', xy=(1400, arrowHeight), xytext=(1400, arrowHeight), arrowprops = dict(facecolor='white', edgecolor='white'))
ax.set_yscale(plotAs) # linear or logarithmic

* It's obvious to see why this is so: the only place in the equation where $T$ appears, it appears as $\lambda T$ so if you increase T the entire shape of the curve will shift; and the peak will be at the same value of $\lambda T$. It follows that $\lambda \propto \frac{1}{T}$

  • $\begingroup$ Good answer, but as a code review comment, your code could be orders of magnitude faster by using vectorisation. Perfect for illustration but in its current form may not be suitable for someone to copy-paste into production code in a situation where speed matters. $\endgroup$
    – gerrit
    Dec 9, 2016 at 18:28
  • 2
    $\begingroup$ @gerrit - thank you for the comment. As I am sure you are aware, "clear" trumps "fast", especially in examples like this - the vectorized code can obscure things, especially for people who are not too conversant in Python; and optimization of code should happen "as and when the circumstances demand". I would certainly not expect someone to copy this code (ANY code I write on this site) and use it in a (speed) critical situation. But sometimes an explicit disclaimer is good. $\endgroup$
    – Floris
    Dec 9, 2016 at 18:55
  • 2
    $\begingroup$ @Floris For what it's worth, I am a member of the general audience here, and I find vectorized code much more clear. To me, it is quicker to look at some vector notation and understand that an operation is being applied across all of its elements, than to mentally parse each line of a loop. Maybe not for an intro CS student asking questions on StackOverflow, but most physics students, I think, are taught to program in a vectorized way, and many "scientific" programming languages are strongly vectorized in their nature. $\endgroup$
    – user97626
    Dec 9, 2016 at 19:16
  • 1
    $\begingroup$ Alright - you win @gerrit - with the support from jphollowed. I have vectorized the inner loop (the one that computes the Planck curve for a single wavelength). It is indeed about 10x faster. I used the opportunity to clean a few other things up. Thanks for the suggestion. $\endgroup$
    – Floris
    Dec 9, 2016 at 19:36
  • 1
    $\begingroup$ I agree that sometimes vectorisation makes it clearer and sometimes less clear (in particular with multi-dimensional vectors, singular dimensions, and broadcasting). Either way, it is tangential to the main message of this answer (this is Physics SE, after all, not Stack Overflow or Code Review) $\endgroup$
    – gerrit
    Dec 9, 2016 at 20:28

Yes, radiation at any frequency can be thermal. The gas between galaxies in clusters, for example, is so hot it radiates thermal x-rays (tens of millions of Kelvin). The sun, too, emits thermal x-rays, though I don't know what combination of it is from shear brightness (ie the sun is so bright that the the black-body like spectrum of the photosphere adds up to a non-trivial number of x-rays), and the extremely hot corona (around 1 million Kelvin).

Likewise, welders are doing nothing but heating metal to temperatures between 5,000 to 20,000 Kelvins (MIG welding temperatures, TIG welding temperatures), and if they don't wear protection they get a tan or sunburn from the UV light the hot metal gives off (see the plots in @Floris's plot, and look through internet search results for "welding tan").


Not the answer you're looking for? Browse other questions tagged or ask your own question.