Processing Landsat 8 data in GRASS GIS 7: RGB composites and pan sharpening



In our first blog post (“Processing Landsat 8 data in GRASS GIS 7: Import and visualization“) we imported a Landsat 8 scene (covering Raleigh, NC, USA). In this exercise we use Landsat 8 data converted to reflectance with i.landsat.toar as shown in the first posting.

Here we will try color balancing and pan-sharpening, i.e. applying the higher resolution panchromatic channel to the color channels, using i.colors.enhance (former i.landsat.rgb).

Landsat 8 – RGB color balancing: natural color composites

After import, the RGB (bands 4,3,2 for Landsat 8) may look initially less exciting than expected.This is easy to fix by a histogram based auto-balancing of the RGB color tables.


To brighten up the RGB composite, we can use the color balancing tool of GRASS GIS 7:


As input, we specify the bands 4, 3, and 2:


Using a “Cropping intensity (upper brightness level)” of 99 (percent), the result look as follows:


For special purposes or under certain atmospheric/ground conditions it may be useful to make use of the functions “Preserve relative colors, adjust brightness only” or “Extend colors to full range of data on each channel” in the “Optional” tab of i.colors.enhance (former i.landsat.rgb).


You will need to experiment since the results depend directly on the image data.

Landsat 8 pansharpening

Pansharpening is a technique to merge the higher geometrical pixel resolution of the panchromatic band (Band 8) with the lower resolution color bands (Bands 4, 3, 2).

GRASS GIS 7 offers several methods through the command i.pansharpen.

1) Brovey transform:


This module runs in multi-core mode parallelized. The management of the resolution (i.e., apply the higher resolution of the panchromatic band) is performed automatically.


2. IHS transform

Here we select as above the bands in the i.pansharpen interface but use the “ihs” method.


HINT: If the colors should look odd, then apply i.colors.enhance (former i.landsat.rgb) to the pan-sharpened bands (see above).

Color-adjusted IHS pansharpening (with “Cropping intensity: strength=99”):


Comparison of Landsat 8 RGB composite (39m) and IHS pansharpened RGB composite (15m):

landsat8_rgb432_color_adjusted_zoom landsat8_rgb432_pansharpen_ihs_color_adjusted_zoom

3. PCA transform

Here we select as above the bands in the i.pansharpen interface but use the “pca” method.


Likewise other channels may be merged with i.pansharpen, even when originating from different sensors.


Overall, the IHS pansharpening method along with auto-balancing of colors appears to perform very well with Landsat 8.

Edit 2015: See also pansharpening with i.fusion.hpf!

This entry was posted in Blog, GIS, GRASS, Landsat, remote sensing on by .

About Markus

Markus Neteler , a founding member of (D-A-CH), (Italy) and the Open Source Geospatial Foundation (OSGeo), was head of the GIS and Remote Sensing Unit at the Research and Innovation Centre of the Fondazione Edmund Mach, Trento, Italy from 2008 to 2016. In 2015 he co-founded the company mundialis (Bonn, Germany), a start-up specialised in open source development and massive data processing. He is the author of several books and chapters on GRASS and various papers on GIS applications. Passionate about open source GIS, he became a GRASS GIS user in 1993 and a developer in 1997, and has been coordinating its development ever since.

7 thoughts on “Processing Landsat 8 data in GRASS GIS 7: RGB composites and pan sharpening

  1. Pingback: Processing Landsat 8 data in GRASS GIS 7: RGB c...

  2. Pingback: Processing Landsat 8 data in GRASS GIS 7: RGB c...

  3. ahmad

    i would like to calculate land surface temperature from Landsat 8 but the addon is not working with me, i installed the i.landsat8.swslt and when i open the option its not as the munal explained.
    what can i do to calculate the land surface temperature.

  4. Yann

    I thought that i.pansharpen only worked with 8 bit data, while Landsat 8 data is 16 bit…
    I tried the process on my imagery and it did not work.

    1. neteler Post author

      Two weeks ago i.pansharpen has been extended to work with up to 32bit. This is available in the current GRASS GIS 7.7 development version which will become stable GRASS GIS 7.8 soon.

  5. Pingback: gis grass – ¿Resplandor / reflectancia de Pansharpening de Landsat 8 en GRASS 7? - CodeBug

Leave a Reply

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