Land Surface Temperature
A QGIS 3 plugin — Author: Milton Isaya — License: GNU GPL v2+
https://github.com/miltonisaya/landSurfaceTemperature
Overview
This plugin provides a complete, step-by-step workflow for deriving
Land Surface Temperature (LST) from satellite thermal infrared imagery
using 16 algorithms in the QGIS Processing toolbox.
It supports Landsat 5 TM, Landsat 7 ETM+,
Landsat 8 TIRS, and ASTER sensors.
Input imagery can be obtained free of charge from
USGS EarthExplorer or
NASA Earthdata.
Applications
- Urban heat island analysis
- Drought and vegetation stress monitoring
- Agricultural water management
- Wildfire burn severity assessment
- Climate and land use change studies
Workflow
- Compute NDVI from red and near-infrared bands
- Convert thermal band digital numbers to spectral radiance
- Convert radiance to at-sensor brightness temperature using K1/K2 calibration constants
- Estimate land surface emissivity (LSE) using NDVI-based classification
- Retrieve land surface temperature using one of six LST algorithms
Supported Sensors
| Sensor | Thermal Band(s) |
| Landsat 5 TM | Band 6 |
| Landsat 7 ETM+ | Band 6 (high gain / low gain) |
| Landsat 8 TIRS | Bands 10 and 11 |
| ASTER | TIR bands 10–14 / VNIR bands 1–3 |
Algorithms
Vegetation Indices
| Algorithm | Description |
| Landsat NDVI | NDVI from separate Landsat red and NIR band rasters |
| ASTER NDVI | NDVI from ASTER VNIR multi-band raster (bands 2 and 3) |
Radiance
| Algorithm | Description |
| TM Radiance (L5) | Landsat 5 TM thermal band DN to spectral radiance using MTL metadata |
| ETM+ Radiance (L7) | Landsat 7 ETM+ thermal band DN to spectral radiance (high/low gain) |
| TIRS Radiance (L8) | Landsat 8 TIRS bands 10/11 DN to spectral radiance with optional calibration offset |
| ASTER Radiance | ASTER TIR bands 10–14 DN to spectral radiance using unit conversion coefficients |
Brightness Temperature
| Algorithm | Description |
| Brightness Temperature | Converts spectral radiance to at-sensor brightness temperature using K1/K2 calibration constants: BT = K2 / ln(K1/L + 1) |
Land Surface Emissivity
| Algorithm | Description |
| Zhang LSE | NDVI-threshold classification method (Zhang et al.) |
| NDVI Threshold LSE | NDVI threshold with proportion of vegetation (Pv) and cavity effect correction |
| ASTER LSE | ASTER band-specific LSE using NDVI-derived Pv and MODIS emissivity library coefficients |
Land Surface Temperature
| Algorithm | Description |
| Planck Equation LST | Emissivity-corrected Planck inversion for all sensors |
| Mono-Window Algorithm | Qin et al. (2001) — requires atmospheric transmittance and near-surface air temperature |
| Single Channel Algorithm | Jimenez-Munoz & Sobrino (2003) — requires atmospheric water vapor content |
| Radiative Transfer Equation | Full atmospheric correction using upwelling and downwelling radiance |
| ASTER Single Channel | ASTER bands 13/14 LST using MODTRAN4 atmospheric database parameters |
| ASTER Split-Window | Combines ASTER bands 13 and 14 brightness temperature and emissivity |
Temperature output available in Kelvin, Celsius, or Fahrenheit.
Installation
- Download or clone this repository.
- Copy the entire folder into your QGIS 3 Python plugin directory:
Linux/macOS: ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/
Windows: %APPDATA%\QGIS\QGIS3\profiles\default\python\plugins\
- Start QGIS and enable the plugin via Plugins > Manage and Install Plugins.
- The algorithms will appear in Processing > Toolbox under Land Surface Temperature.
Compiling Resources (optional)
If you modify icons or resources.qrc, recompile with:
pyrcc5 -o resources.py resources.qrc
Requirements
- QGIS ≥ 3.0
- Python ≥ 3.6
- GDAL/OGR (included with QGIS)
- NumPy (included with QGIS)
License
This program is free software: you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation,
either version 2 of the License, or (at your option) any later version.
Copyright © 2015 Milton Isaya / Anadolu University