[GRASS-user] Creating PCA Plot

Nikos Alexandris nik at nikosalexandris.net
Wed Feb 6 01:03:06 PST 2013


Rashad M wrote:

> Hi,

Hi Rashad :-)

> How to create a PCA plot for two channels of a landsat image.?

In grass use d.correlate, in R too many options!

> i.pca outputs a eigen values, vectors and percentage importance

Quoting myself :-p:

--%<---
The eigenvalues define proportionally the length of the axes of variation
and the eigen or characteristic vectors define the direction of the
variation (Ahearn and Wee, 1991). Since both the eigenvectors and the PCs
only define directions, they can be arbitrarily multiplied by −1
(Cadima and Jolliffe, 2009).
--->%--

Effectively, percentages indicate the amount of variance that has been
redistributed in a Principal Component -- remember, PCs are sorted from
the one that holds the largest variance to the one that holds the smallest
variance.

> Could anybody explain how to plot it?

You mean just a bi-variate scatter-plot?

PCA is a linear transformation for multivariate data sets. The new,
transformed variables (or dimensions or channels or you name them) can
then be plotted the same way as any other raster map. E.g., d.histogram
for single stuff, d.correlate (for a scatter-plot) and probably more.


> Does i.pca transforms/changes pixel values?

Yes.

Normally, one would select Landsat bands of interest, i.e. bands that are
profiling "wanted" landscape features. A PCA would then transform a set of
bands into something new: sorted variables in which the original variance
of the data is redistributed in a way that the first Principal Components
contain most of it, while the higher order transformed variables contain
the smallest amounts of the original variance.  Note, changes tend to
appear in some of the higher order PCs.  Noise, is most of the time
accumulated in the last PC. And, of course, there are many and diverse
uses of PCs (like compression, fusion, etc.).

(So,) If you have your PCs of interest, then you can scatter-plot them in
grass with <d.correlate> for example.  In R, however, you can load, in
theory, infinite number of dimensions (in your wording == channels) and
plot really nice and fancy stuff.

I have tried to clearly present the PCA concept in my work.  Will send you
a link and stuff of mine -- they might be useful for you to make them even
better (!).

Additionally, recently I have seen some very nice tri-variate PC plots in
some presentation... (dunno remember now, it was certainly someone inside
the GRASS GIS community!).

Ah, don't forget to have a look in GRASS-Wiki (and maybe help iron the
page!): <http://grasswiki.osgeo.org/wiki/Principal_Components_Analysis>.

Best, N



More information about the grass-user mailing list