i.pansharpen offers a choice of three different 'pan sharpening' algorithms: IHS, Brovey, and PCA.
For IHS pan sharpening, the original 3 lower resolution bands, selected as red, green and blue channels for creating an RGB composite image, are transformed into IHS (intensity, hue, and saturation) color space. The panchromatic band is then substituted for the intensity channel (I), combined with the original hue (H) and saturation (S) channels, and transformed back to RGB color space at the higher resolution of the panchromatic band. The algorithm for this can be represented as: RGB -> IHS -> [pan]HS -> RGB.
With a Brovey pan sharpening, each of the 3 lower resolution bands and panchromatic band are combined using the following algorithm to calculate 3 new bands at the higher resolution (example for band 1):
band1 new band1 = ----------------------- * panband band1 + band2 + band3In PCA pan sharpening, a principal component analysis is performed on the original 3 lower resolution bands to create 3 principal component images (PC1, PC2, and PC3) and their associated eigenvectors (EV), such that:
band1 band2 band3 PC1: EV1-1 EV1-2 EV1-3 PC2: EV2-1 EV2-2 EV2-3 PC3: EV3-1 EV3-2 EV3-3and
PC1 = EV1-1 * band1 + EV1-2 * band2 + EV1-3 * band3 - mean(bands 1,2,3)An inverse PCA is then performed, substituting the panchromatic band for PC1. To do this, the eigenvectors matrix is inverted (in this case transposed), the PC images are multiplied by the eigenvectors with the panchromatic band substituted for PC1, and mean of each band is added to each transformed image band using the following algorithm (example for band 1):
band1 = pan * EV1-1 + PC2 * EV1-2 + PC3 * EV1-3 + mean(band1)The assignment of the channels depends on the satellite. Examples of satellite imagery with high resolution panchromatic bands, and lower resolution spectral bands include Landsat 7 ETM, QuickBird, and SPOT.
i.pansharpen temporarily changes the computational region to the high resolution of the panchromatic band during sharpening calculations, then restores the previous region settings. The current region coordinates (and null values) are respected. The high resolution panchromatic image is histogram matched to the band it is replaces prior to substitution (i.e., the intensity channel for IHS sharpening, the low res band selected for each color channel with Brovey sharpening, and the PC1 image for PCA sharpening).
By default, the command will attempt to employ parallel processing, using up to 3 cores simultaneously. The -s flag will disable parallel processing, but does use an optimized r.mapcalc expression to reduce disk I/O.
The three pan-sharpened output channels may be combined with d.rgb or r.composite. Colors may be optionally optimized with i.colors.enhance. While the resulting color image will be at the higher resolution in all cases, the 3 pan sharpening algorithms differ in terms of spectral response.
# original at 28m g.region raster=lsat7_2002_10 -p d.mon wx0 d.rgb b=lsat7_2002_10 g=lsat7_2002_20 r=lsat7_2002_30 # i.pansharpen with PCA algorithm i.pansharpen red=lsat7_2002_30 \ green=lsat7_2002_20 blue=lsat7_2002_10 \ pan=lsat7_2002_80 method=pca \ output=lsat7_2002_15m_pca -l # color enhance i.colors.enhance blue=lsat7_2002_15m_pca_blue \ green=lsat7_2002_15m_pca_green red=lsat7_2002_15m_pca_red # display at 14.25m, IHS pansharpened g.region raster=lsat7_2002_15m_pca_red -p d.erase d.rgb b=lsat7_2002_15m_pca_blue g=lsat7_2002_15m_pca_green r=lsat7_2002_15m_pca_red
LANDSAT ETM+ (Landsat 7), North Carolina sample dataset, IHS method:
# original at 28m g.region raster=lsat7_2002_10 -p d.mon wx0 d.rgb b=lsat7_2002_10 g=lsat7_2002_20 r=lsat7_2002_30 # i.pansharpen with IHS algorithm i.pansharpen red=lsat7_2002_30 \ green=lsat7_2002_20 blue=lsat7_2002_10 \ pan=lsat7_2002_80 method=ihs \ output=lsat7_2002_15m_ihs -l # color enhance i.colors.enhance blue=lsat7_2002_15m_ihs_blue \ green=lsat7_2002_15m_ihs_green red=lsat7_2002_15m_ihs_red # display at 14.25m, IHS pansharpened g.region raster=lsat7_2002_15m_ihs_red -p d.erase d.rgb b=lsat7_2002_15m_ihs_blue g=lsat7_2002_15m_ihs_green r=lsat7_2002_15m_ihs_red # compare before/after (RGB support under "Advanced"): g.gui.mapswipe
# R, G, B composite at 30m g.region raster=p034r032_7dt20010924_z13_20 -p d.rgb b=p034r032_7dt20010924_z13_20 g=lp034r032_7dt20010924_z13_40 r=p034r032_7dt20010924_z13_50 # i.pansharpen with IHS algorithm i.pansharpen red=p034r032_7dt20010924_z13_50 green=p034r032_7dt20010924_z13_40 blue=p034r032_7dt20010924_z13_20 pan=p034r032_7dp20010924_z13_80 output=ihs321 method=ihs # ... likewise with method=brovey and method=pca # display at 15m g.region raster=ihs542_blue -p d.rgb b=ihs542_blue g=ihs542_green r=ihs542_red
Results:
R, G, B composite of Landsat at 30m |
R, G, B composite of Brovey sharpened image at 15m |
R, G, B composite of IHS sharpened image at 15m |
R, G, B composite of PCA sharpened image at 15m" |
Available at: i.pansharpen source code (history)
Latest change: Tuesday Dec 17 20:17:20 2024 in commit: d962e90c026708a4815ea2b9f46c0e84c17de22d
Main index | Imagery index | Topics index | Keywords index | Graphical index | Full index
© 2003-2024 GRASS Development Team, GRASS GIS 8.4.1dev Reference Manual