GRASS logo

Note: A new GRASS GIS stable version has been released: GRASS GIS 7. Go directly to the new manual page here


r.slope.aspect - Generates raster maps of slope, aspect, curvatures and partial derivatives from a elevation raster map.
Aspect is calculated counterclockwise from east.


raster, terrain


r.slope.aspect help
r.slope.aspect [-qa] elevation=name [slope=name] [aspect=name] [format=string] [prec=string] [pcurv=name] [tcurv=name] [dx=name] [dy=name] [dxx=name] [dyy=name] [dxy=name] [zfactor=float] [min_slp_allowed=float] [--overwrite] [--verbose] [--quiet]


Do not align the current region to the elevation layer
Allow output files to overwrite existing files
Verbose module output
Quiet module output


Name of elevation raster map
Name for output slope raster map
Name for output aspect raster map
Format for reporting the slope
Options: degrees,percent
Default: degrees
Type of output aspect and slope maps
Options: default,double,float,int
Default: float
Name for output profile curvature raster map
Name for output tangential curvature raster map
Name for output first order partial derivative dx (E-W slope) raster map
Name for output first order partial derivative dy (N-S slope) raster map
Name for output second order partial derivative dxx raster map
Name for output second order partial derivative dyy raster map
Name for output second order partial derivative dxy raster map
Multiplicative factor to convert elevation units to meters
Default: 1.0
Minimum slope value (in percent) for which aspect is computed
Default: 0.0


r.slope.aspect generates raster maps of slope, aspect, curvatures and first and second order partial derivatives from a raster map of true elevation values. The user must specify the input elevation file name and at least one output file name. The user can also specify the format for slope (degrees, percent; default=degrees), and the zfactor: multiplicative factor to convert elevation units to meters; (default 1.0).

The elevation input raster map specified by the user must contain true elevation values, not rescaled or categorized data. If the elevation values are in feet or other units than meters (with a conversion factor meters:, defined in PROJ_UNITS), they must be converted to meters using the parameter zfactor.

The aspect output raster map indicates the direction that slopes are facing. The aspect categories represent the number degrees of east. Category and color table files are also generated for the aspect map layer. The aspect categories represent the number degrees of east and they increase counterclockwise: 90deg is North, 180 is West, 270 is South 360 is East. The aspect value 0 is used to indicate undefined aspect in flat areas with slope=0.

The slope output raster map contains slope values, stated in degrees of inclination from the horizontal if format=degrees option (the default) is chosen, and in percent rise if format=percent option is chosen. Category and color table files are generated.

Profile and tangential curvatures are the curvatures in the direction of steepest slope and in the direction of the contour tangent respectively. The curvatures are expressed as 1/metres, e.g. a curvature of 0.05 corresponds to a radius of curvature of 20m. Convex form values are positive and concave form values are negative.

Example DEM

Slope (degree) from example DEM

Aspect (degree) from example DEM

Tangential curvature (m-1) from example DEM

Profile curvature (m-1) from example DEM

For some applications, the user will wish to use a reclassified raster map of slope that groups slope values into ranges of slope. This can be done using r.reclass. An example of a useful reclassification is given below:

          category      range   category labels
                     (in degrees)    (in percent)

             1         0-  1             0-  2%
             2         2-  3             3-  5%
             3         4-  5             6- 10%
             4         6-  8            11- 15%
             5         9- 11            16- 20%
             6        12- 14            21- 25%
             7        15- 90            26% and higher

     The following color table works well with the above

          category   red   green   blue

             0       179    179     179
             1         0    102       0
             2         0    153       0
             3       128    153       0
             4       204    179       0
             5       128     51      51
             6       255      0       0
             7         0      0       0


To ensure that the raster elevation map layer is not inappropriately resampled, the settings for the current region are modified slightly (for the execution of the program only): the resolution is set to match the resolution of the elevation map and the edges of the region (i.e. the north, south, east and west) are shifted, if necessary, to line up along edges of the nearest cells in the elevation map. If the user really wants the elevation map resampled to the current region resolution, the -a flag should be specified.

The current mask is ignored.

The algorithm used to determine slope and aspect uses a 3x3 neighborhood around each cell in the elevation file. Thus, it is not possible to determine slope and aspect for the cells adjacent to the edges in the elevation map layer. These cells are assigned a "zero slope" value (category 0) in both the slope and aspect raster map layers.

Horn's formula is used to find the first order derivatives in x and y directions.

Only when using integer elevation models, the aspect is biased in 0, 45, 90, 180, 225, 270, 315, and 360 directions; i.e., the distribution of aspect categories is very uneven, with peaks at 0, 45,..., 360 categories. When working with floating point elevation models, no such aspect bias occurs.

Because most cells with a very small slope end up having category 0, 45, ..., 360, it is sometimes possible to reduce the bias in these directions by filtering out the aspect in areas where the terrain is almost flat. A new option min_slp_allowed was added to specify the minimum slope for which aspect is computed. The aspect for all cells with slope < min_slp_allowed is set to null.



r.mapcalc, r.neighbors, r.reclass, r.rescale


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

Last changed: $Date: 2011-11-08 03:29:50 -0800 (Tue, 08 Nov 2011) $

Main index - raster index - Full index

© 2003-2016 GRASS Development Team