Home/Blog/Land Surface Temperature
Tutorial · ArcGIS Pro · Remote Sensing

How to Map Land Surface Temperature (LST) from Landsat 8 in ArcGIS Pro

Land Surface Temperature (LST) is a common deliverable in coastal, urban-heat, and climate research, and a common source of error. Skip a radiance correction or use the wrong emissivity, and the map can be off by several degrees — the kind of mistake a Scopus reviewer will catch.

This guide sets out the full, defensible workflow I use with PhD scholars, from raw Landsat 8 bands to a publication-grade LST map in ArcGIS Pro. Every formula and raster-calculator expression is included.

New to this? Grab the free 20-page companion PDF with every expression and troubleshooting note: LST Mapping Tutorial (ArcGIS Pro) — free PDF.

What you will need

  • ArcGIS Pro (any recent version).
  • A Landsat 8/9 Collection 2 Level-1 scene: Band 10 (TIRS) for the thermal signal, and Bands 4 and 5 (Red and NIR) for NDVI.
  • The scene MTL.txt metadata file, which holds the rescaling constants and thermal constants.

Download these free from the USGS EarthExplorer.

If you only need the end product, Collection 2 Level-2 already ships a Surface Temperature band (ST_B10). Compute LST yourself from Level-1 when you need a documented, defensible method you can describe and justify in a manuscript.

The LST workflow

The workflow has six computational steps, taking the raw bands to temperature in degrees Celsius. Run each step in the Raster Calculator and keep the intermediate rasters.

1. Top-of-atmosphere (TOA) spectral radiance

Convert the thermal band (Band 10) digital numbers (DN) to spectral radiance using the rescaling constants from the MTL file.

$$ L_\lambda = M_L \times Q_{cal} + A_L \tag{1} $$

In equation (1), \(L_\lambda\) is the TOA spectral radiance, \(M_L\) is RADIANCE_MULT_BAND_10, \(A_L\) is RADIANCE_ADD_BAND_10, and \(Q_{cal}\) is the Band 10 DN.

Raster Calculator:

("Band10" * RADIANCE_MULT_BAND_10) + RADIANCE_ADD_BAND_10

2. Brightness temperature (BT) in Celsius

Convert the radiance raster to at-sensor brightness temperature, then to Celsius.

$$ BT = \frac{K_2}{\ln\!\left(\dfrac{K_1}{L_\lambda} + 1\right)} - 273.15 \tag{2} $$

Here \(K_1\) is K1_CONSTANT_BAND_10 and \(K_2\) is K2_CONSTANT_BAND_10, both from the MTL file. Subtracting 273.15 converts Kelvin to degrees Celsius.

Raster Calculator:

(K2_CONSTANT_BAND_10 / Ln((K1_CONSTANT_BAND_10 / "Radiance") + 1)) - 273.15

3. NDVI computed from reflectance

Form NDVI from reflectance, not from raw DN. Convert Bands 4 and 5 with the per-band reflectance constants from the MTL file, then take the ratio. The additive reflectance offset does not cancel in the NDVI ratio, so NDVI from raw DN differs from NDVI from reflectance — and a careful reviewer can question the shortcut.

Per-band TOA reflectance is REFLECTANCE_MULT_BAND_x × DN + REFLECTANCE_ADD_BAND_x. A sun-elevation correction (dividing by the sine of SUN_ELEVATION) improves absolute reflectance but cancels in the NDVI ratio, so it is optional for NDVI alone.

$$ NDVI = \frac{NIR - Red}{NIR + Red} \tag{3} $$

Raster Calculator (Band 5 reflectance, then NDVI):

// Band5_ref
("Band5" * REFLECTANCE_MULT_BAND_5) + REFLECTANCE_ADD_BAND_5
// Band4_ref
("Band4" * REFLECTANCE_MULT_BAND_4) + REFLECTANCE_ADD_BAND_4
// NDVI
(Float("Band5_ref") - Float("Band4_ref")) / (Float("Band5_ref") + Float("Band4_ref"))

4. Proportion of vegetation (Pv)

$$ P_v = \left(\frac{NDVI - NDVI_{min}}{NDVI_{max} - NDVI_{min}}\right)^{2} \tag{4} $$

Read \(NDVI_{min}\) and \(NDVI_{max}\) from the NDVI layer histogram (Symbology, then Statistics). Mask water and cloud pixels first, or they distort the minimum and maximum.

5. Land surface emissivity (ε)

A widely used and defensible estimate relates emissivity to the proportion of vegetation (Sobrino et al., 2004; Avdan and Jovanovska, 2016).

$$ \varepsilon = 0.004 \times P_v + 0.986 \tag{5} $$

6. Land surface temperature

$$ LST = \frac{BT}{1 + \left(\dfrac{\lambda\, BT}{\rho}\right)\ln(\varepsilon)} \tag{6} $$

Here \(\lambda\) is the effective wavelength of Band 10, approximately 10.895 µm (10.8 µm is also used in the literature), and \(\rho = hc/\sigma \approx 1.438 \times 10^{-2}\) m·K, where \(h\) is the Planck constant, \(c\) is the speed of light, and \(\sigma\) is the Boltzmann constant.

Keep \(\lambda\) and \(\rho\) in the same length unit so the ratio \(\lambda/\rho\) is expressed in inverse Kelvin. In micrometres, \(\lambda = 10.895\) µm and \(\rho = 1.438 \times 10^{4}\) µm·K, giving \(\lambda/\rho \approx 7.58 \times 10^{-4}\) K⁻¹. A frequent error is to write 10.8 µm as 0.00108 m: 10.8 µm is \(1.08 \times 10^{-5}\) m, not \(1.08 \times 10^{-3}\) m.

Raster Calculator (units consistent in micrometres):

"BT" / (1 + (10.895 * "BT" / 14380) * Ln("Emissivity"))

Make it publication-grade

A correct raster is not a finished figure. For a journal:

  • Classify with a sensible stretch, for example equal interval with 10 to 15 classes.
  • Use a perceptually uniform colour ramp; avoid the rainbow ramp, which distorts perceived gradients and which many reviewers reject.
  • Add a scale bar, north arrow, legend with °C units, and a coordinate grid.
  • State the acquisition date, sensor, and CRS/EPSG code in the caption; LST is time-specific.

Common mistakes that get papers rejected

  • Skipping the radiance correction and converting DN straight to temperature. This is wrong by several degrees.
  • Using a single fixed emissivity instead of an NDVI-based estimate.
  • Mixing units in the LST step (micrometres with metres). Keep one length unit throughout.
  • Computing NDVI from raw DN rather than from reflectance.
  • Cloud contamination: a single cloud over the study area distorts the statistics. Mask clouds first.
  • No acquisition date in the caption. LST is a snapshot, not a constant.

Frequently asked questions

Can I do this in QGIS instead of ArcGIS Pro?

Yes. The formulas are identical; only the Raster Calculator syntax changes. The physics does not depend on the software.

Which Landsat band is thermal?

Band 10 (TIRS-1). Band 11 carries higher calibration uncertainty, so most published workflows use Band 10 alone.

My LST values look too high or too low. Why?

Most often a unit mismatch in the LST step, or a missing −273.15 in the brightness-temperature step. Re-check those two first.

Get this done right, the first time

This workflow is reliable once it is set up. The six to eight months scholars lose are in the edge cases: cloud masking, emissivity choices a reviewer will accept, and turning the raster into a figure that survives peer review. That is the gap I close — I support PhD scholars and faculty from problem statement to a defended, Scopus-indexed manuscript: methodology, analysis, figures, and submission.

Written by Dr. Aran Castro A J, GIS Manager, research consultant, and author. Trained scholars from Anna University, Loyola, Holy Cross, MS University, and more.

References

Avdan, U., & Jovanovska, J. (2016). Algorithm for automated mapping of land surface temperature using LANDSAT 8 satellite data. Journal of Sensors, 2016, Article 1480307. https://doi.org/10.1155/2016/1480307

Sobrino, J. A., Jiménez-Muñoz, J. C., & Paolini, L. (2004). Land surface temperature retrieval from LANDSAT TM 5. Remote Sensing of Environment, 90(4), 434–440. https://doi.org/10.1016/j.rse.2004.02.003

U.S. Geological Survey. (n.d.). Landsat Collection 2 Level-1 data [Data set]. EarthExplorer. https://earthexplorer.usgs.gov/

← All blog posts