Calculate Land Surface Temperature

Calculate Land Surface Temperature

ArcGIS Pro Python script tool that will calculate LST from user's input Landsat 8 bands.

← back to projects

completed on: 2020-04-17

Update 11/15/2022: This tool will only work with Landsat Collection 2 Level-1 data for landsat 8. It is currently not compatible with Level-2 data.

I was working with some Landsat 8 data the other day and thought, “I wonder if I could calculate the land surface temperature using these bands?” I started up the google machine and found many resources offering instructions on how to estimate land surface temperature (LST) from landsat 8 bands. The steps seemed a little long and cumbersome, but I noticed that the entire process could be automated pretty easily, so I decided to create a tool for the process. I’ve outlined the three basic steps that the tool helps automate:

  1. Find and retrieve variables within a Landsat metadata file.
  2. Use bands 4 and 5 to create an NDVI layer.
  3. Make a series of raster calculations using the variables gathered from the metadata file, information from the NDVI layer, and bands 10 and 11.
Landsat Look

The top image is a Landsat 8 image of California’s central valley. The bottom image slider shows a couple output rasters from the LST tool. The tool outputs an NDISI raster and an LST raster, and optionally outputs an NDVI or MNDWI raster.

The images above serve as a good example of the value land surface temperature data can deliver to the agricultural industry. The top image shows a region of fields in the central valley of California. By using the tool I created, users can quickly create a land surface temperature raster visualizing fields that might be suffering drought stress or fields that are being over watered.

After doing the process manually a number of times, I started writing the python script as an ArcGIS pro tool.

ArcGIS Pro Tool Dialog

The tool is capable of calculating the following products:

  • LST (Land Surface Temperature)
  • NDVI (Normalized Difference Vegetation Index)
  • NDISI (Normalized Difference Impervious Surface Index)
  • MNDWI (Modified Normalized Difference Water Index)

Use

As shown in the screenshot above, the tool will need a path to the folder holding the Landsat 8 bands and metadata. To get this data, you may download a Level-1 landsat 8 bundle from the USGS’s EarthExplorer. Optionally, the tool can take a mask geometry. It is best to mask the rasters to the area of interest before the tool is run, or by using the mask option within the tool itself. I have included an empty polygon feature class for quick polygon creation within the folder (see zip of “MaskFeature_Sample.gdb”) on the github page.

The output LST raster will be in degrees Celsius. The output names will appear as: LST_184457GMT_20200403, which stands for Land Surface Temperature_Time Image Acquired in GMT_Date Acquired

Resources