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


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

| improve this answer | |
  • 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 Sep 20 '16 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 Sep 21 '16 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...

| improve this answer | |
  • 3
    Yes, Landsat 8 images are stored as Uint16 types. – webrian Aug 9 '13 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.

| improve this answer | |

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.

| improve this answer | |

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

| improve this answer | |

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

| improve this answer | |

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

| improve this answer | |
  • 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 Sep 11 '14 at 19:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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