Provided by: grass-doc_6.4.3-3_all bug

NAME

       r.covar  - Outputs a covariance/correlation matrix for user-specified raster map layer(s).

KEYWORDS

       raster, statistics

SYNOPSIS

       r.covar
       r.covar help
       r.covar [-rq] map=name[,name,...]  [--verbose]  [--quiet]

   Flags:
       -r
           Print correlation matrix

       -q
           Run quietly

       --verbose
           Verbose module output

       --quiet
           Quiet module output

   Parameters:
       map=name[,name,...]
           Name of input raster map(s)

DESCRIPTION

       r.covar  outputs  a covariance/correlation matrix for user-specified raster map layer(s).  The output can
       be printed, or saved by redirecting output into a file.

       The output is an N x N symmetric covariance (correlation) matrix, where N is the  number  of  raster  map
       layers specified on the command line.

NOTES

       This  module  can  be  used  as  the first step of a principle components transformation.  The covariance
       matrix would be input into a system which determines eigen values and eigen vectors.  An  NxN  covariance
       matrix would result in N real eigen values and N eigen vectors (each composed of N real numbers).

       The  module  m.eigensystem  in  src.contrib  can  be  compiled  and used to generate the eigen values and
       vectors.

EXAMPLE

       For example, r.covar map=layer.1,layer.2,layer.3

       would produce a 3x3 matrix (values are example only):
            1.000000  0.914922  0.889581
            0.914922  1.000000  0.939452
            0.889581  0.939452  1.000000
        In the above example, the eigen values and corresponding eigen vectors for the covariance matrix are:
       component   eigen value               eigen vector
           1       1159.745202   < 0.691002    0.720528    0.480511 >
           2          5.970541   < 0.711939   -0.635820   -0.070394 >
           3        146.503197   < 0.226584    0.347470   -0.846873 >
        The component corresponding to each vector can be produced using r.mapcalc as follows: r.mapcalc 'pc.1 =
       0.691002*layer.1 + 0.720528*layer.2 + 0.480511*layer.3'
       r.mapcalc 'pc.2 = 0.711939*layer.1 - 0.635820*layer.2 - 0.070394*layer.3'
       r.mapcalc 'pc.3 = 0.226584*layer.1 + 0.347470*layer.2 - 0.846873*layer.3'

       Note that based on the relative sizes of the eigen values, pc.1 will contain about 88% of the variance in
       the data set, pc.2 will contain about 1% of the variance in the data set, and pc.3 will contain about 11%
       of  the  variance  in the data set.  Also, note that the range of values produced in pc.1, pc.2, and pc.3
       will not (in general) be the same as those for layer.1, layer.2, and layer.3.  It  may  be  necessary  to
       rescale pc.1, pc.2 and pc.3 to the desired range (e.g. 0-255).  This can be done with r.rescale.

SEE ALSO

       i.pca, m.eigensystem, r.mapcalc, r.rescale

AUTHOR

       Michael Shapiro, U.S. Army Construction Engineering Research Laboratory

       Last changed: $Date: 2008-05-16 12:09:06 -0700 (Fri, 16 May 2008) $

       Full index

       © 2003-2013 GRASS Development Team