Having used QGIS for quite some time for mapping, I was 'forced' to dig into GRASS as pansharpening is not directly executable in QGIS. After understanding more or less the structure, I did some trials with i.fusion.brovey. I was able to generate the rasters with 15m resolution, but when loading into QGIS I can not achieve/recuperate the nice colour contrast as is present in the original 30m rasters.

In an earlier post someone confirmed that and proposed to use another function for landsat: 'i.his.rgb' (after using i.landsat.toar, which I don't use). He starts to convert min/max to 1-255 before using i.his.rgb...My original rasters have a range of 0-65535. It did not work out for me...

I quit after some days of struggling to just perform a pansharp, I feel stuck... Why should just applying i.pansharp not work for Landsat as suggested by others? Can someone suggest a more straightforward workflow to execute pansharpening of Landsat 8 images? Looking forward to some advice, thanks in advance...

7 Answers 7


Take a look at i.landsat.rgb - Performs auto-balancing of colors for LANDSAT images, probably before running the pansharpening. You may also consider to convert the digital numbers of the individual channels to top-of-atmosphere radiance or reflectance with i.landsat.toar. See also http://grasswiki.osgeo.org/wiki/LANDSAT

BTW: having a range of 0-65535 for original LANDSAT data is odd since they are delivered as 8 bit channels (0-255). So check your input data first.

Update: 10/2013

For a simplified procedure with current GRASS GIS 7, see the page enter image description hereProcessing Landsat 8 data in GRASS GIS 7: RGB composites and pan sharpening

  • I originally came across that article you're linking from neteler.org, but the instructions didn't work at all (because of the floating point format of rasters generated with i.landsat.toar, so I ended up following advice from here: gis.stackexchange.com/a/39239/9857
    – Juan
    Commented Sep 20, 2016 at 15:46
  • 3
    Note that that advice was given many years ago and does not reflect latest GRASS GIS code. BTW: a really great pansharpening module is the new addon: i.fusion.hpf - Fusing high resolution Panchromatic and low resolution Multi-Spectral data based on the High-Pass Filter Addition technique, see grass.osgeo.org/grass70/manuals/addons/i.fusion.hpf.html
    – markusN
    Commented Sep 21, 2016 at 21:29

Thanks Michal and Markus. Finally I was able to do the pansharpening with the indicated function brov. Once performed in GRASS, I exported the RGB rasters to gdal GTiff with as data type Uint16. Markus, I have been downloading and using several Landsat 8 images (tiff of each of the 11 bands), obtaining nice visual results, both in natural/false color. To my knowledge, the original landsat tiffs come as Uint16 with values ranging from 0 to 65535 (or am I missing something?)...Thanks for the GRASS LANDSAT link...

  • 3
    Yes, Landsat 8 images are stored as Uint16 types.
    – webrian
    Commented Aug 9, 2013 at 14:21

Pan-sharpening FIHS or Brovery Transform is quite simple if you follow the formulae from an article such as this: http://www.sensorsportal.com/HTML/DIGEST/august_2014/Vol_177/P_RP_0183.pdf

Assuming you are using GRASS GIS and pansharpening Landsat 8.

Set your region using the pan 8 tif - important to have resolution 15m which will be set if you do this.

For Brovery without weights enter this into Map Calculator for blue, green and red respectively:

band8 / (band2+band3+band4) / 3 * band2

band8 / (band2+band3+band4) / 3 * band3

band8 / (band2+band3+band4) / 3 * band4

Run r.colors for each of the above outputs and set histogram equalisation and color table to grey.

Run r.composite, select the appropriate bands (red=4,green=3,blue=2)

Check out image.

Obviously this process could be done with more consideration for atmospheric correction, color stretch and band weights as discussed in above article.


You can also try Monteverdi to perform pansharpening. This tool can consume regular GeoTIFFs as input (however, separate multispectral bands have to be merged into one multiband raster), and performs reasonably well.


After struggling with this issue I found a simple solution that lets you pan-sharpen in QGIS (2.18.21 is my version) using SCP. The update to SCP incorporating this method is described here https://fromgistors.blogspot.com/2015/07/major-update-semi-automatic-44.html.

This is easy to do and it ran like a charm! I checked the final output and the pixels measure at 15 m in resolution - matching the panchromatic 8 band. If anyone is curious - it uses the Brovey Transform method as described in the manual (see https://media.readthedocs.org/pdf/semiautomaticclassificationmanual/latest/semiautomaticclassificationmanual.pdf).

Step 1 for SCP pansharpen tool Step 3-4 for SCP pansharpen


Welcome to the site Janos. Ideally answers such as yours should have a description as to why they are good methods. ..

For pansharpening of Landsat 8 pictures the easier method the http://www.geosage.com/highview/download.html. My advise, try it. Only one click....Spectraltransformer


For pansharpenig I used GUI spectral transformer for Landsat 8 picturesenter image description here http://www.geosage.com/highview/download.html Very good. BR Janos

  • 2
    Welcome to the site Janos. Ideally answers such as yours should have a description as to why they are good methods. Link only answers tend to become defunct if the link goes away.
    – Aaron
    Commented Sep 11, 2014 at 19:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.