Panchromatic sharpening

Panchromatic sharpening, or simply pan-sharpening, refers to a range of techniques that can be used to merge finer spatial resolution panchromatic images with coarser spatial resolution multi-spectral images. The multi-spectral data provides colour information while the panchromatic image provides improved spatial information. This procedure is sometimes called image fusion. Jensen (2005) describes panchromatic sharpening in detail.

Whitebox provides two common methods for panchromatic sharpening including the Brovey transformation and the Intensity-Hue-Saturation (IHS) methods. Both of these techniques provide the best results when the range of wavelengths detected by the panchromatic image overlap significantly with the wavelength range covered by the three multi-spectral bands that are used. When this is not the case, the resulting colour composite will likely have colour properties that are dissimilar to the colour composite generated by the original multispectral images. For Landsat ETM+ data, the panchromatic band is sensitive to EMR in the range of 0.52-0.90 micrometres. This corresponds closely to the green (band 2), red (band 3), and near-infrared (band 4).

See Also:

Scripting:

The following is an example of a Python script that uses this tool:

wd = pluginHost.getWorkingDirectory()
redFile = wd + "red_band.dep"
greenFile = wd + "green_band.dep"
blueFile = wd + "blue_band.dep"
panFile = wd + "panchromatic band.dep"
outputFile = wd + "output.dep"
method = "brovey"
args = [redFile, greenFile, blueFile, panFile, outputFile, method]
pluginHost.runPlugin("PanSharpening", args, False)

This is a Groovy script also using this tool:

def wd = pluginHost.getWorkingDirectory()
def redFile = wd + "red_band.dep"
def greenFile = wd + "green_band.dep"
def blueFile = wd + "blue_band.dep"
def panFile = wd + "panchromatic band.dep"
def outputFile = wd + "output.dep"
def method = "IHS"
String[] args = [redFile, greenFile, blueFile, panFile, outputFile, method]
pluginHost.runPlugin("PanSharpening", args, false)

Credits:

References: