r.regression.line - GRASS manual
Author: GRASS Development Team
Description: r.regression.line: Calculates linear regression from two raster maps: y = a + b*x.
Keywords: raster, statistics, regression

## NAME

r.regression.line - Calculates linear regression from two raster maps: y = a + b*x.

## KEYWORDS

raster, statistics, regression

## SYNOPSIS

r.regression.line
r.regression.line --help
r.regression.line [-g] mapx=name mapy=name [output=name] format=name [--overwrite] [--help] [--verbose] [--quiet] [--ui]

### Flags:

-g
  Print in shell script style [deprecated]
  This flag is deprecated and will be removed in a future release. Use format=shell instead.
--overwrite
  Allow output files to overwrite existing files
--help
  Print usage summary
--verbose
  Verbose module output
--quiet
  Quiet module output
--ui
  Force launching GUI dialog

### Parameters:

mapx=name [required]
  Map for x coefficient
mapy=name [required]
  Map for y coefficient
output=name
  ASCII file for storing regression coefficients (output to screen if file not specified).
format=name [required]
  Output format
  Options: plain, shell, json
  Default: plain
  plain: Human readable text output
  shell: shell script style text output
  json: JSON (JavaScript Object Notation)

## DESCRIPTION

r.regression.line calculates a linear regression from two raster maps, according to the formula

    y = a + b*x

where

    x
    y

represent the input raster maps.

Optionally, it saves regression coefficients as a ASCII file. The result includes the following coefficients: offset/intercept (a) and gain/slope (b), correlation coefficient (R), number of elements (N), means (medX, medY), standard deviations (sdX, sdY), and the F test for testing the significance of the regression model as a whole (F).

## NOTES

The results for offset/intercept (a) and gain/slope (b) are identical to that obtained from R-stats's lm() function.

## EXAMPLE

Comparison of two DEMs (SRTM and NED, both at 30m resolution), provided in the North Carolina sample dataset:

    g.region raster=elev_srtm_30m -p
    r.regression.line mapx=elev_ned_30m mapy=elev_srtm_30m
     y = a + b*x
       a (Offset): -1.659279
       b (Gain): 1.043968
       R (sumXY - sumX*sumY/N): 0.894038
       N (Number of elements): 225000
       F (F-test significance): 896093.366283
       meanX (Mean of map1): 110.307571
       sdX (Standard deviation of map1): 20.311998
       meanY (Mean of map2): 113.498292
       sdY (Standard deviation of map2): 23.718307

Using the script style flag AND eval to make results available in the shell:

    g.region raster=elev_srtm_30m -p
    eval `r.regression.line -g mapx=elev_ned_30m mapy=elev_srtm_30m`

    # print result stored in respective variables
    echo $a
    -1.659279

    echo $b
    1.043968

    echo $R
    0.894038

## SEE ALSO

d.correlate, r.regression.multi, r.stats

## AUTHORS

Dr. Agustin Lobo - alobo at ija.csic.es
Updated to GRASS 5.7 Michael Barton, Arizona State University
Script style output Markus Neteler
Conversion to C module Markus Metz

## SOURCE CODE

Available at: r.regression.line source code (history)

Latest change: Thursday Oct 02 14:39:13 2025 in commit: 1850489bf42c72d8dcfe2e4db1738441b4a7dc43

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

© 2003-2026 GRASS Development Team, GRASS 8.5.1dev Reference Manual