How to calculate Land Surface Temperature with Landsat 8 satellite images

The Land Surface Temperature can be estimated or calculated using the Landsat 8 thermal bands. It simply requires applying a set of equations through a raster image calculator (ArcMap, ArcGIS Pro, QGIS).

The first step is to download a Landsat 8 image from a particular location, unzip it, and check certain information needed (within the metadata) to execute this procedure.

This tutorial shows how to calculate Land Surface Temperature (LST) using the Landsat 8 bands. In particular, band 10 as the thermal band, and bands 4 and 5 to calculate the Normal Difference Vegetation Index (NVDI).

To calculate the LST, use the USGS formulas (more information in the article Algorithm for Automated Mapping of Land Surface Temperature Using LANDSAT 8 Satellite Data), this example simply performs the calculations without going into detail about the fundamentals. The process is synthesized in six steps below:

1.- Calculation of TOA (Top of Atmospheric) spectral radiance.

TOA (L) = ML * Qcal + AL

where:

ML = Band-specific multiplicative rescaling factor from the metadata (RADIANCE_MULT_BAND_x, where x is the band number).

Archivo MTL Radiance Mult Band Landsat 8 Meta datos

Qcal = corresponds to band 10.
AL = Band-specific additive rescaling factor from the metadata (RADIANCE_ADD_BAND_x, where x is the band number).

Archivo MTL Radiance Add Band Landsat 8 Meta datos

TOA = 0.0003342 * “Band 10” + 0.1

Therefore the equation must be solved using the Raster Calculator tool in ArcMap.

2.- TOA to Brightness Temperature conversion

BT = (K2 / (ln (K1 / L) + 1)) − 273.15

where:

K1 = Band-specific thermal conversion constant from the metadata (K1_CONSTANT_BAND_x, where x is the thermal band number).
K2 = Band-specific thermal conversion constant from the metadata (K2_CONSTANT_BAND_x, where x is the thermal band number).

TIRS Thermal constants K1 K2 Landsat 8

L = TOA

Therefore, to obtain the results in Celsius, the radiant temperature is adjusted by adding the absolute zero (approx. -273.15°C).

BT = (1321.0789 / Ln ((774.8853 / “%TOA%”) + 1)) – 273.15

TOA to Brightness Temperature Landsat 8

3.- Calculate the NDVI

NDVI = (Band 5 – Band 4) / (Band 5 + Band 4)

Note that the calculation of the NDVI is important because, subsequently, the proportion of vegetation (Pv), which is highly related to the NDVI, and emissivity (ε), which is related to the Pv, must be calculated.

NDVI = Float(Band 5 – Band 4) / Float(Band 5 + Band 4)

Calcular el NDVI de imágenes Landsat 8

4.- Calculate the proportion of vegetation Pv

Pv = Square ((NDVI – NDVImin) / (NDVImax – NDVImin))

Usually the minimum and maximum values of the NDVI image can be displayed directly in the image (both in ArcGIS, QGIS, ENVI, Erdas Imagine), otherwise you must open the properties of the raster to get those values.

Valores NDVI mínimo NDVI máximo

Pv = Square((“NDVI” – 0.216901) / (0.632267 – 0.216901))

Pv Landsat 8 Raster Calculator

5.- Calculate Emissivity ε

ε = 0.004 * Pv + 0.986

Simply apply the formula in the raster calculator, the value of 0.986 corresponds to a correction value of the equation.

Emisividad Raster Calculator Landsat 8

6.- Calculate the Land Surface Temperature

LST = (BT / (1 + (0.00115 * BT / 1.4388) * Ln(ε)))

Finally apply the LST equation to obtain the surface temperature map.

LST Landsat 8 Raster Calculator

As a result of the process developed, there is a map of the Land Surface Temperature, it should be noted that it is not equal to the air temperature.

LST Landsat calcular la temperatura de superficie

49 thoughts on “How to calculate Land Surface Temperature with Landsat 8 satellite images”

  1. Hello,
    why there are two equation for calculating NDVI?

    I need first “NDVI = Float(Band 5 – Band 4) / Float(Band 5 + Band 4)” for estimating NDVI min, max and “NDVI = (Band 5 – Band 4) / (Band 5 + Band 4)” as the first part into Pv equation?

    Thank you

  2. Hi,
    Is there any difference (other than the constant values) while calculating the land surface temperature from Landsat 5 TM?

  3. Hello everyone, I use those equation but in the end LST map had only negative values, can anyone told me what’s the problem plz?

    • Hello everyone, I use those equation but in the end LST map had only negative values, can anyone told me what’s the problem plz?

  4. In Calculating Emissivity ε Where did the numerical value 0.004 and 0.986 came from?
    ε = 0.004 * Pv + 0.986

  5. Hi there,
    In the 5th step i.e. Calculate emissivity, why did you use 0.004?
    This is really important for me. I would really appreciate your response.

    Thanks!

  6. Good tutorial.
    In step 4. should the equation not be:
    Pv = Square((“NDVI” – 0.216901) / (0.632267 – 0.216901)) instead of:
    Pv = Square(“NDVI” – 0.216901) / (0.632267 – 0.216901) as shown.

      • Futhermore, this euation:

        Pv = Square ((NDVI – NDVImin) / (NDVImax – NDVImin))
        should be:
        Pv = Square ((NDVI + NDVImin) / (NDVImax + NDVImin))
        if NDVImin = – 0.216901)
        and
        Pv = Square(“NDVI” – 0.216901) / (0.632267 – 0.216901)

  7. Hello, its nice and informative. But there are some discrepancies and slight deviations from the main article (Avdan & Jovanovska, 2016).
    1. Correction factor of 0.29 in calculating TOA.
    2. Proportion of Vegetation (Pv) uses soil and vegetation NDVI value instead of max and min NDVI values.
    3. Step 6 uses 0.00115 but article shows 0.0010895.
    I too have a question: the min. NDVI value in the ArcMAP is shown as –0.216901, why have you consider +0.216901 instead of minus value?

  8. Hello.
    what’s this algorithm name? because i want to write the name of this method in my paper.
    Also, can i use this method for Landsat TM and ETM+ ?
    Thanks a lot

  9. Thanks for this tutorial. In your calculation of Pv, if the min NDVI value is negative, wouldn’t you be adding (subtracting a negative) it to the layer and the max? This is the only thing that wasn’t clear to me. It’s important, too because you could have a max of 1 and a min of -1 NDVI. In that case, the equation would be undefined. Am I off base on this? Thanks.

  10. Hi, i would like to know is there possible to see every calculation results in attribute? if it so.. where should it be?

  11. According to my proficiency, if the mini value of ndvi is –0.216901 and maxi value is 0.632267 then the equation should be:
    Pv = Square (NDVI + NDVImin) / (NDVImax + NDVImin) (there will be change in equation after putting the ndvi value.

    Actual equation:-
    Pv = Square ((NDVI – NDVImin) / (NDVImax – NDVImin))

    After putting, values sign will be change:- if mini ndvi in minus and maxi in plus. (- × – = +)
    Pv=Square (Ndvi+ 0.216901)/(0.632267+0.216901)

    Thank you

  12. Really, I would like to appreciate for interesting lesson on how to calculate LST from landsat 8 imagery using ArcMap GIS.
    But can you just say a little for my two questions stated as follows;
    1. From step 1; the Radiance_Mult_Band 10 is indicated as 3.3420E -04 from metadat,
    So, how do you convert it into 0.0003342
    2. from step 5; does the following formula a standard to derive emissivity
    which is ;
    e = 0.004 * Pv * 0.986
    3. from step 6; why is the value of 0.00115? and 1.4388?

  13. thank you so much for this worthy piece of Knowledge. it really helpful and me and my colleague, we have used it in our Research. @boaz, @Thierry

Comments are closed.