[GIS] How to pan-sharpen Landsat images for image-classification in GRASS

grasslandsatremote sensing

I'd like to learn how to do an unsupervised classification of a Landsat scene using i.cluster > i.maxlik in GRASS using pan-sharpened 15m-resolution images (the example given in its Wiki uses the ordinary 30m-resolutions).

I tried using i.pansharpen to create the pan-sharpened images first, but i.pansharpen can only output 3 channels that can be combined using d.rgb or r.composite. As far as I know, the image-classification process requires complete multispectral bands 1 to 7. How can I produce separate bands (band 1 to band 7), pan-sharpened using its 15m-resolution band 8 image, before inputting them to the image-classification process?

I've found a paper that demonstrates how they did this; basically they used some kind of Principal Component Analysis to somehow merge the 30m-multispectral bands with the 15m-panchromatic band. The exact quote would be:

"The method first resamples the 30-meter multispectral image to 15 meters. It then computes all six principal components of the multispectral image (We deleted the thermal band due to is courser resolution). Then the histogram of the panchromatic band (15-meter resolution) is rescaled to match the histogram
of the first principal component of the 30-meter image and the first component is replaced with the rescaled panchromatic band. This is justified because the first principal component represents overall brightness in a way that is similar to the broad spectral band of the panchromatic image. After replacement, then the six components are transformed back into the original data space, rendering an improvement in spatial resolution."

First off, the paper showed no algorithm/formulas whatsoever. I have no idea how to turn the above quote into a corresponding mathematical formula. I realized that I can use i.pansharpen with the PCA algorithm instead of the usual Brovey or IHS – but still – the output will only be 3 channels of red, blue and green – which I sadly have no clue on how to use them for image-classification..

So, before I even attempt to crack my head trying to write a new PCA algorithm manually, can anybody help me to point to an easier and better way to perform image-classification on pan-sharpened Landsat images? I mean – there should be an easier way, right? I feel like I'm missing something simple.

If the only route left is to write my own script, can you guys please point me to something out there that resembles an example of what I'm trying to do?

Any help is very much appreciated!

Best Answer

i.cluster needs at least two rasters. So, three outputs from i.pansharpen will be enough.

Related Question