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

banner_pansharpening

[toc]

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.

landsat8_rgb_composite_unbalanced

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

grass7_landsat_rgb0

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

grass7_landsat_rgb1

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

landsat10_rgb_composite_autobalance_99percent_crop

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).

landsat9_rgb_composite_preserve_relative_colors

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:

landsat8_pansharpen_brovey1

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.

landsat8_pansharpen_brovey2

2. IHS transform

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

landsat8_pansharpen_ihs1

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”):

landsat8_pansharpen_ihs_color_adjusted

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.

landsat8_pansharpen_pca1

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

Conclusions

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 FOSSGIS.de (D-A-CH), GFOSS.it (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

    hello
    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.
    regards

    Reply
  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.

    Reply
    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.

      Reply
  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 *