landsat thermal imaging

[This article was first published on Dan Kelley Blog/R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.


The tirs1 band of landsat-8 imagery (see [1]) is a near-thermal band, from which a quantity called “brightness temperature’’ may be inferred.

As explained in [2], the brightness temperature in Kelvin is computed with where and are stored in the image metadata, and , where again and are stored in the metadata. In this last expression, is the image value, which when read with the oce package must be multiplied by a scale factor for the formulae to work.


Note in the code that the SST is computed in Celcius, and inserted into the data object before plotting.

l <- read.landsat("LC80080292014065LGN00", band="tirs1")
tirs1 <- l[["tirs1"]]
ML <- [email protected]$header$radiance_mult_band_10
AL <- [email protected]$header$radiance_add_band_10
K1 <- [email protected]$header$k1_constant_band_10
K2 <- [email protected]$header$k2_constant_band_10
d <- tirs1 * (2^16 - 1)            # convert from range 0 to 1
Llambda <- ML * d + AL
dd <- K2 / log(K1 / Llambda + 1)
SST <- dd - 273.15                 # convert Kelvin to Celcius
[email protected]$SST <- SST
plot(l, band="SST", col=oceColorsJet)


The figure below shows the results. This image is from winter, so the land (Nova Scotia) is colder than the ocean.

The high land is especially cold, as those familiar with the topography can tell at a glance. Homogenous blue patches indicate frozen lakes.

Generally, the ocean temperature hovers around freezing (i.e. -2C). The anomalously cold patches in the Bay of Fundy are probably a signature of ice. Some of the orange colour suggests temperatures a much as 1C below freezing. Whether this indicates a difficulty in the algorithm or the interpretation is a matter for Landsat experts.

The beautiful swirls south of Nova Scotia are typical of these coastal waters.



  1. Landsat bands are explained at

  2. The conversion to brightness temperature is described at

  3. Source code: 2014-07-01-landsat.R.

To leave a comment for the author, please follow the link and comment on their blog: Dan Kelley Blog/R. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)