Provided by: grass-doc_7.6.0-1_all bug


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


       raster, statistics


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

           Print correlation matrix

           Print usage summary

           Verbose module output

           Quiet module output

           Force launching GUI dialog

       map=name[,name,...] [required]
           Name of raster map(s)


       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.


       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 GRASS GIS Addons can be compiled  and  used  to  generate  the
       eigen values and vectors.


       For example,
       g.region raster=layer.1 -p
       r.covar -r 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.


        i.pca, m.eigensystem (Addon), r.mapcalc, r.rescale


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

       Last changed: $Date: 2014-12-28 16:42:58 +0100 (Sun, 28 Dec 2014) $


       Available at: r.covar source code (history)

       Main index | Raster index | Topics index | Keywords index | Graphical index | Full index

       © 2003-2019 GRASS Development Team, GRASS GIS 7.6.0 Reference Manual