GRASS logo


i.fusion.hpf - Fusing high resolution panchromatic and low resolution multi-spectral data based on the High-Pass Filter Addition technique (Gangkofner, 2008).


imagery, fusion, sharpening, high pass filter, HPFA


i.fusion.hpf --help
i.fusion.hpf [-l2ca] pan=name msx=name[,name,...] suffix=basename [ratio=float] [center=string] [center2=string] [modulation=string] [modulation2=string] [trim=float] [--overwrite] [--help] [--verbose] [--quiet] [--ui]


Linearly match histogram of Pan-sharpened output to Multi-Spectral input
Default: Quantile scaling
2-Pass Processing (recommended) for large resolution ratio (>=5.5)
Match color table of Pan-Sharpened output to Multi-Spectral input
Align output to pan band
Default: set resolution from pan band
Allow output files to overwrite existing files
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


pan=name [required]
High resolution Panchromatic image
msx=name[,name,...] [required]
Low resolution Multi-Spectral image(s)
suffix=basename [required]
Suffix for output image(s)
Names of Pan-Sharpened image(s) will end with this suffix
Default: hpf
Custom ratio
Custom ratio overriding standard calculation
Options: 1.0-10.0
Center cell value
Center cell value of the High-Pass-Filter
Options: low, mid, high
Default: low
2nd Pass center cell value
Center cell value for the second High-Pass-Filter (use -2 flag)
Options: low, mid, high
Default: low
Modulation level
Modulation level weighting the HPF image determining crispness
Options: min, mid, max
Default: mid
2nd Pass modulation level (use -2 flag)
Modulation level weighting the second HPF image determining crispness (use -2 flag)
Options: min, mid, max
Default: mid
min: Minimum: 0.25
mid: Mid: 0.35
max: Maximum: 0.5
Trimming factor
Trim output border pixels by a factor of the pixel size of the low resolution image. A factor of 1.0 may suffice.

Table of contents


i.fusion.hpf is an implementation of the High Pass Filter Additive (HPFA) Fusion Technique. It combines high-resolution panchromatic data with lower resolution multispectral data, resulting in an output with both excellent detail and a realistic representation of original multispectral scene colors. The process involves a convolution using a High Pass Filter (HPF) on the high resolution data, then combining this with the lower resolution multispectral data. Optionally, a linear histogram matching technique is performed in a way that matches the resulting Pan-Sharpened image to the statistical mean and standard deviation of the original multi-spectral image.


  1. Computing ratio of low (Multi-Spectral) to high (Panchromatic) resolutions
  2. High Pass Filtering the Panchromatic Image
  3. Resampling MSX image to the higher resolution
  4. Adding weighted High-Pass-Filetred image to the upsampled MSX image
  5. Optionally, matching histogram of Pansharpened image to the one of the original MSX image
+                                                                            +
| Pan Img ->  High Pass Filter  ->  HP Img                                   |
|                                      |                                     |
|                                      v                                     |
| MSx Img ->  Weighting Factors ->  Weighted HP Img                          |
|       |                              |                                     |
|       |                              v                                     |
|       +------------------------>  Addition to MSx Img  =>  Fused MSx Image |

Source: Gangkofner, 2008



The module is fairly easy to use. Arbitrary examples:

Pansharpening of one band

i.fusion.hpf pan=Panchromatic msx=Red

Pansharpening of multiple bands

i.fusion.hpf pan=Panchromatic msx=Red,Green,Blue,NIR

North Carolina: pansharpening of multiple bands

Example using the North Carolina sample dataset, landsat mapset:
# pansharpening of R, G, B, NIR
g.region raster=lsat7_2002_80 -p
i.fusion.hpf pan=lsat7_2000_80 msx=lsat7_2000_10,lsat7_2000_20,lsat7_2000_30,lsat7_2000_40 suffix=_hpf

# visual comparison
d.mon wx0
d.rgb b=lsat7_2000_10 g=lsat7_2000_20 r=lsat7_2000_30

# color balance pansharpened scene
i.colors.enhance b=lsat7_2000_10_hpf g=lsat7_2000_20_hpf r=lsat7_2000_30_hpf
d.rgb b=lsat7_2000_10_hpf g=lsat7_2000_20_hpf r=lsat7_2000_30_hpf
i.fusion.hpf example 1
Figure: Original Landsat 7 RGB color composite at 28.5m resolution (North Carolina, Raleigh subset)
i.fusion.hpf example 2
Figure: Pansharpened Landsat 7 RGB color composite at 14.25m resolution(North Carolina, Raleigh subset)

Further examples

Various illustrated examples detailed in the document i.fusion.hpf, implementation of the High Pass Filter Additive (HPFA) Image Fusion Technique (PDF)






Nikos Alexandris
Panagiotis Mavrogiorgos


Available at: i.fusion.hpf source code (history)

Latest change: Saturday Jan 13 11:30:51 2024 in commit: f4bae622b2f826dca7b040cc70e8a6b4b0a995a3

Main index | Imagery index | Topics index | Keywords index | Graphical index | Full index

© 2003-2024 GRASS Development Team, GRASS GIS 8.3.3dev Reference Manual