 
Note: A new GRASS GIS stable version has been released: GRASS GIS 7.6, available here.
 Updated manual page: here
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 [-r] map=name[,name,...]  [--help]  [--verbose]  [--quiet]  [--ui] 
Flags:
- -r
- Print correlation matrix
- --help
- Print usage summary
- --verbose
- Verbose module output
- --quiet
- Quiet module output
- --ui
- Force launching GUI dialog
 
Parameters:
- 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 07:42:58 -0800 (Sun, 28 Dec 2014) $
SOURCE CODE
Available at: r.covar source code (history)
Note: A new GRASS GIS stable version has been released: GRASS GIS 7.6, available here.
 Updated manual page: here
Main index |
Raster index |
Topics index |
Keywords index |
Graphical index |
Full index
© 2003-2019
GRASS Development Team,
GRASS GIS 7.2.4svn Reference Manual