Homepage > Man Pages > Category > General Commands
Homepage > Man Pages > Name > R

# r.covar

## man page of r.covar

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

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

KEYWORDS
raster

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.

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

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

Last changed: \$Date: 2008-05-16 21:09:06 +0200 (Fri, 16 May 2008) \$

Full index

(C) 2003-2010 GRASS Development Team

R.COVAR(1)
```