Você está na página 1de 8

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

1 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

Sign In

Industries

Products

Support & Services

About

Community

Esri Home

Deriving temperature from Landsat 8 thermal bands (TIRS)


by kevin_butler on January 6, 2014

275

148

10.1K

You can use the thermal bands from Landsat 8 to calculate at-satellite brightness temperature. There are
quite a few steps that Ill walk you through to do this. What were going to do is:
-

Convert the raw bands into Top of Atmosphere Radiance (TOA r).

Convert TOAr into degrees kelvin.

Convert degrees kelvin into degrees Fahrenheit.

Save and export this workflow as a template that you can apply it to any other image.

Step 1 The mise en place of GIS


A Luck is where preparation meets opportunity
This is a fairly lengthy blog, so Id recommend topping off that cup of coffee or perhaps stretching the legs
before getting started.
B Raster Function Template Editor
Open the Raster Function Template Editor from the toolbar. Right click on the raster and insert a
Composite Band Function. Click on the plus sign and select Add copy of selected input. You have to do
this because there are two thermal bands for Landsat 8. If youre working with Landsat 5 or 7, you can omit
this step.
[If you dont have the Raster Function Template Editor loaded, you can add it through the customize
window, and it will be under the Commands tab, in the raster section. Drag and drop it into the toolbar.]

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

2 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

C Preview of the final output


Heres what the final output will look like once you have all of the steps completed that are shown below.
Note that the first branch is for Band 10 and the second is Band 11. This is to match the structure of the
Thermal Raster Product for Landsat 8. The type of operation is shown inside of the brackets. While you
can label the steps however you wish you do need to follow this structure, so that the chain works when
you apply it to other Landsat 8 scenes.

D Reading the metadata


All of the inputs that you need to do this will be in the metadata file. In fact, the inputs that you will need to
perform this conversion are the same for all of the Landsat 8 images. Heres a table that you can use rather
than combing through the metadata files.
Band 10

Band 11

Radiance Multiplier

0.0003342

0.0003342

Radiance Add

0.1

0.1

K1

774.89

480.89

K2

1321.08

1201.14

Step 2 Conversion from DN to Radiance


The Radiance Multiplier and Radiance Add are used to convert the DN back into radiance. Remember
from back in the day, that the equation of a line is y = mx + b? Well, thats all youre doing here.
-

y is going to be the TOA r that you want.

m is the Radiance Multiplier

x is the raw band

b is the Radiance Add.

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

3 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

Right click on Raster and insert Band Arithmetic. Set the method to user defined, and use b1 to refer to
Input Raster. Repeat this for the other band.

Step 3 Convert Radiance into degrees kelvin


From TOAr, we now need to convert to temperature in degrees kelvin. This is where you use the K1 and K2
inputs. The equation we will be using functions to create is:
K2 / ln(k1/TOAr + 1)
The easiest way to do this is to create the (k1/TOAr + 1) part first using the Band Arithmetic function. (Right
click on the Band Arithmetic that you created in the previous step and insert another Band Arithmetic
function. This will appear above the previous step.) Repeat this for each band, but keep in mind that K1 is
different for bands 10 and 11.

To calculate the natural log, you need to use local function. (Right click on the Band Arithmetic from the
previous step and insert a local function. The dialog below will appear. Select Ln under the Math section,
and click OK.)

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

4 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

In a separate step, divide that output into the K2 constant, using Band Arithmetic. (Right click on the local
function you created in the previous step, and insert a Band Arithmetic Function.) Repeat this for each
band, but keep in mind that K2 is different for bands 10 and 11.

Step 4 Convert degrees kelvin into Fahrenheit


Now you have converted the TOAr into degrees kelvin. If you want to convert this into Celsius, you need to
subtract 273.15 from the degrees kelvin. For Fahrenheit, multiply the degrees Celsius by 1.8 and then add
32. You can do this as one step within the Band Arithmetic function.

Step 5 Applying this function chain to any Landsat 8 image


When youre finished, save this as a raster function template.xml file. Then, open the Edit Raster Function
geoprocessing tool. Select the Landsat 8 thermal raster product that you want to convert to degrees
Fahrenheit as the input raster. Choose the Raster Function Template that you just saved, and leave the
Function Name blank. Repeat this for as many Landsat 8 scenes as you want.

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

5 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

Heres an example of two images taken on December 16, 2013. The first is from sunny southern California
where weve been experiencing unseasonably warm temperatures. The other is from rustic New
Brunswick, where some Esri employees decide to vacation, and which is experiencing the coldest winter in
20 years. The deep blues in each image are clouds, and have negative values. Note that we have not
derived the land surface temperature, only the at-satellite brightness temperature.

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

6 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

This entry was posted in Analysis & Geoprocessing, Imagery and tagged at-satellite brightness temperature, Imagery, Landsat, Raster, thermal bands. Bookmark the permalink.

21 Comments
miki628 says:
I failed.
Apply function when execute Edit Raster Function tool without add the Landsat 8 thermal raster product to Content window. ArcMap crash
when execute Edit Raster Function tool from add the Landsat 8 thermal raster product to Content window.
Although I went to the same way, why can not ?
February 20, 2014 at 10:21 pm

Log in to Reply

alexkostin says:
Instal first ArcGIS 10.2 for (Desktop, Engine, Server) Landsat 8 Patch from http://support.esri.com/en/downloads/patches-servicepacks
/view/productid/66/metaid/2012
I got, but the result is showing RGB data, not temperature. If switch from classified to stretched mode it looks like temperature.
I tried 2 ways: 1 that is written above, 2 using formulas for BAND 10: 1321.08/ln(774.89/(0.0003342*b1+0.1))-273 and for BAND 11:
1201.14/ln(480.89/(0.0003342*b1+0.1))-273. Effect is similar
February 25, 2014 at 8:32 pm

Log in to Reply

johndawes_ says:
alexkostin,
Sorry to be dense but are the formulas you have outlined in step two for Bands 10 and 11, formulas you could put in the raster
calculator? Also is there a way to convert the satellites reflectance temp to surface temp? Cool stuff and really wanting to learn as
much as possible.
-J
February 26, 2014 at 4:05 pm

Log in to Reply

kevin_butler says:
Yeah, you could definitely do that in raster calculator. The advantage to doing it as a function is the responsiveness. Because its
not actually writing out a new file (it works in memory) its faster to render. Heres a paper outlining the approach used to calculate
land surface temperature for MODIS and AVHRR. Not sure if USGS has something in the works for Landsat as well
http://www.geo.utexas.edu/courses/387h/lectures/1-a%20generalized%20split-window%20algorithm%20for%20retrieving%20landsurface%20temperature%20from%20space.pdf
February 26, 2014 at 4:20 pm

Log in to Reply

johndawes_ says:
Kevin,
Thanks for the reply and sorry last questionIf I fire on of the equations above into raster calculator, I would assume b1 is is the
band for the respective formula correct? So then with the two newly created thermal surfaces, would I just make a composite
and look at the stretched values for temperature in F or K?
Thanks again for your help.
-J
John,
Wordpress is being weird and wont let me reply to your comment directly. Yes is the answer to your question. B1 is just a place
holder for the band in question. You could make a composite or keep them as separate bands.
February 26, 2014 at 4:37 pm

johndawes_ says:
Kevin,
I think I got a good handle on itI was able to run the equation for bands 10 and 11. The only thing Im unsure of is that i get a range from
-118 C to 113 C . Does that seem right for at sensor brightness temp or is it too cold?
-J
February 27, 2014 at 10:00 am

Log in to Reply

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

7 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

kevin_butler says:
Tough to tell from my end. Run it with the functions and see if you get the same output.
February 27, 2014 at 10:47 am

Log in to Reply

poorbaby says:
alo alo
March 5, 2014 at 2:47 am

Log in to Reply

poorbaby says:
I come to step 5. But its error in Edit raster function. Input raster error
you can see error in link:
http://i.upanh.com/vtcyel
Can you help me? Thanks
March 5, 2014 at 2:48 am

Log in to Reply

wikikhtn says:
Please show me How to insert second raster (band 11), I only have first raster (band 10) same as the original default
June 18, 2014 at 1:42 am

Log in to Reply

stepankhach says:
Hi everyone
I cant find Local function (I use ArcGIS 10.1). How can I figure out this problem?
September 1, 2014 at 2:16 pm

Log in to Reply

kevin_butler says:
It could be that you dont have the spatial analyst extension, which is required for local function. There is a work around. You can use band
arithmetic to make the conversion. Also, at 10.2 there was a patch released which incorporated the layers generated from this workflow
into the raster product. If youre using 10.2 or above, your raster products will have the thermal layers for Landsat.
September 2, 2014 at 10:26 am

Log in to Reply

gelda_gis says:
Hello,
I have tried this manual, but I think, that is not user friendly. I think, that is better use Model Builder, where you can set up constant values
(like emisivity, K1, K2, etc.), define raster layer and whole calculation write to the Raster Calculator equation. If will someone want, I can
share model in my own toolbox.
Gelda
November 26, 2014 at 2:08 pm

Log in to Reply

mattbovin says:
Hi Gelda,
I would like to have a look at your model. Would you mind sharing it with me?
Mattias
November 28, 2014 at 4:30 am

Log in to Reply

kevin_butler says:
Hi Gelda,
No doubt there is a learning curve with functions. Weve been doing a lot of work to improve this for the upcoming release of ArcGIS Pro,
which has more of the Model Builder feel to it. If youre using the same equation many times (and especially if youre working with large
datasets) its probably worth it to stick with it!
December 1, 2014 at 9:33 am

Log in to Reply

johnn_iitr says:
My first question is which raster i am supposed to provide as input Raster in Edit Raster Function :
Either Individual Landsat 8 10 and 11 bands or Stacked Landsat 8 Raster.
The other one is that as i tried to input above rasters, an error is displayed Invalid Input data
Please Help
April 18, 2016 at 10:24 am

Log in to Reply

03/11/2016 15:50

Deriving temperature from Landsat 8 thermal bands (TIRS) | ArcGIS Blog

8 of 8

https://blogs.esri.com/esri/arcgis/2014/01/06/deriving-temperature-fro...

kevin_butler says:
Use the stack (aka the raster product)
April 18, 2016 at 10:55 am

Log in to Reply

johnn_iitr says:
Thanks for answering my query.
you mean raster product (LC81470362015258LGN00_MTL.txt)..??
As i provided this as input raster, it runs but the results are in RGB format as a single file.
How i am going to proceed further to get at satellite temperature for bands 10 & 11?
Thanks and Regards
John
April 21, 2016 at 3:57 am

Log in to Reply

johnn_iitr says:
Hi Gelda,
I would like to use your model. Would you please share your model with me?
Regards
Johnn
April 18, 2016 at 10:30 am

Log in to Reply

esmailhussien says:
only need to ask the RADIANCE_MULT_BAND_10 = 3.3420E-04 in mtd file and in this way you write 0.0003342 and i got different result for
each one so why you use 0.0003342 and where it came ?
May 31, 2016 at 4:01 am

Log in to Reply

w.megarry_queensub says:
HI Kevin,
Super interesting post thank you.
Will a similar workflow work for the TIR band of LS-7 (obviously with difference metadata)?
Thanks,
Will
September 1, 2016 at 12:58 am

Log in to Reply
Follow Us

Understanding GIS

Company Information

Services

Partners

Special Programs

What is GIS?

About Esri

Professional Services

Learn About Partners

Esri Special Programs

Map Book Gallery

Careers

Project Services

Partner Directory

Nonprofit

Video Library

Esri Insider Blog

Implementation Services

Hardware Promotions

Education

Esri User Conference

Premium Support Services

Disaster Response

Trust ArcGIS

ArcGIS for Personal Use


Conservation

Contact Us

Privacy

Legal

Site Map

03/11/2016 15:50

Você também pode gostar