[GRASS-dev] PCA question

Nikos Alexandris nik at nikosalexandris.net
Tue Jun 26 03:24:03 PDT 2012


Michael Barton:

[...]

> However, my question is about performing an *inverse pca*--getting back to
> the original values from the principal components maps.

Michael, getting back to the original values can _only_ be done if one does 
not "touch" the data in any of the intermediate steps, i.e. Input > EVD (or 
SVD) > Inverse PCA > Original values.

If one alters the data at any step prior to the Eigenanalysis or SVD, I don't 
think it is possible to land back on "level 1". From the moment that global 
stats of a multivariarte dataset, subject to PCA, are changed, one will 
probably jump into a "new" reality.  This means that it takes an extra effort 
to interpret the "new" stuff.

> The idea of pca sharpening is that you perform a pca, then do an inverse pca
> substituting the pan band for pc1 to enhance the resolution.

I haven't tried PCA sharpening.  So, apologies for my simplistic question(s), 
I just want to understand the trick here.

Which resolution is to be enhanced?  The geometric?  Is it meant to keep PC1 
and mix it with the rest, or keep the Pan and throw away PC1?

Principal Component 1 will contain the highest variance of your input data -- 
which, in fact, is a composition of different amount of information originated 
from all input bands. If you throw that away you are left with a dataset which 
is likely to be useless!


> The equations I show below seem to work, but what I've read indicates that
> it is not possible to *exactly* get the original values back; you can only
> approximate them.

As Markus' demonstration showed in another post, the results can be close 
enough so the differences can be disregarded. As far as I have understood PCA, 
it depends on how many decimals are taken into account, while doing all the 
math and _not_ effectively altering the data at any of the intermediate steps.

Pff, it's been a while I got my hands dirty with PCA and I might forget 
something here.

[...]

> >>>>>> I'm working on a pan sharpening script that will combine your
> >>>>>> i.fusion.brovey with options to do other pan sharpening methods. An
> >>>>>> IHS transformation is easy. I think that a PCA sharpening is doable
> >>>>>> too if I can find an equation to rotate the PCA channels back into
> >>>>>> unrotated space--since i.pca does provide the eigenvectors.>>>>> 

[...]

Thanks, Nikos


More information about the grass-dev mailing list