Topographic correction of Landsat imagery using GRASS GIS

The GRASS module i.topo.corr to correct topographic effects on imagery works quite impressively on the Landsat imagery using the recently released Enhanced Shuttle Land Elevation Data with a 1 arc / 30 meter spatial resolution. Here is a quick example to show the difference of the original image and the corrected image that was processed using i.topo.corr and the enhanced SRTM elevation model in GRASS GIS:

Landsat 8 scene (Band 5), uncorrected

Landsat 8 scene (Band 5), topographically corrected

Gif animation: Landsat 8 scene (Band 5) before and after topographical correction












The image scene covers a width of ~50 km in northern Thailand, on the right hand is the Chiang Mai basin, left of it (in the west) is the Inthanon mountain range. The prominent peak Doi Suthep sticks out to the east, being the guardian mountain of Chiang Mai city (recognizable as a square, the old city wall).

On the uncorrected scene the mountains are clearly recognizable by the shadows they cast because the sun was not in zenith during the capture of the image (image acquisition time: March 7th 2015 at 10:48 am). Using the SRTM 1arc DEM makes it possible to model the illumination of the earths surface at the moment of the image capturing. Having this model, it is possible to correct the topographic shadow effect on the image.

The illumination model can be created as follows, using the i.topo.corr module:


   i.topo.corr -i base=<name_of_elevation_model> \
   zenith=<solar zenith angle> azimuth=<sun azimuth angle> \


The solar zenith angle equals “90°- (sun elevation)”. The “sun elevation” can be derived from the Metadata-File (*MTL.txt) of the image. The azimuth angle can also be found there under “sun azimuth”.

After the illumination model is created, it can be used to correct the desired bands of the image:


   i.topo.corr in=<input image band(s)> \
   out=<prefix for corrected output raster map(s)> \
   zenith=<solar zenith angle> \
   basemap=<illumination model>


Visually the results are very impressive and a huge part of the topographic shadow effect can be corrected by this method. However, according to my experience the correction will not eradicate 100% of the shadow effects, especially in very mountainous areas. This might not be visible at first sight but it becomes apparent with automated image classifications (e.g. i.cluster/i.maxlik in GRASS GIS), where shadow-leftovers might still be miss-classified as dark objects (e.g. water). These could again be filtered out using other algorithms, e.g. areas with high slopes would be very unlikely to represent water basins.

Further reading on Landsat processing using GRASS GIS

Tags: , , , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *