[GIS] how i calculate land surface temperature using landsat 8 in Envi 5.1

envilandsat 8remote sensing

I am doing research about land surface temperature using Landsat 8 image. However, I have a problem with them. I have read document from Landsat.org, but i can not do it in Envi. Could you help me step-by-step to calculate land surface temperature using landsat 8 TIRS in Envi 5.1.

Best Answer

Step 1: Convert from digital numbers (DN) to radiance
This is done by applying the multiplier and addition numbers as found in the metadata (.MTL) file. For the thermal bands (B10 and B11), the values are usually, but you should check the file:
Add: 0.1
Multiply by: 0.0003342 (3.3420E-04)

In ENVI you can apply this correction using 'band math':
float(b10)*0.0003342+0.1
This gives you the radiance value.

Step 2: Convert from radiance to kelvin
The formula needed here is
K2 / ln(K1/TOA_r + 1)
Again, the important values can be found in the metadata file. Usually, the K1 and K2 values are as follows:
K1_CONSTANT_BAND_10 = 774.89
K1_CONSTANT_BAND_11 = 480.89
K2_CONSTANT_BAND_10 = 1321.08
K2_CONSTANT_BAND_11 = 1201.14
In ENVI band math the formula becomes:
1321.08 / alog(774.89/B1+1)
Where alog is the ENVI band math version of the natural log.

This could be combined into one step - for example, band 11 becomes:
1201.14 / alog(480.89/(float(b11)*0.0003342+0.1)+1)

Related Question