GRASS logo


r.contour - Produces a vector map of specified contours from a raster map.


raster, surface, contours, vector


r.contour --help
r.contour [-t] input=name output=name [step=float] [levels=float[,float,...]] [minlevel=float] [maxlevel=float] [cut=integer] [--overwrite] [--help] [--verbose] [--quiet] [--ui]


Do not create attribute table
Allow output files to overwrite existing files
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


input=name [required]
Name of input raster map
output=name [required]
Name for output vector map
Increment between contour levels
List of contour levels
Minimum contour level
Maximum contour level
Minimum number of points for a contour line (0 -> no limit)
Default: 2

Table of contents


r.contour produces a vector map of specified contours from input raster map. Contours can be produced using a comma-separated list of values in levels, or at some regular increment using the step parameter, using minlevel and maxlevel as minimum and maximum contour values, respectively. If no minlevel or maxlevel is specified, the minimum and maximum cell values in the input raster map will be used.


r.contour will either step through incremental contours or produce contours from a list of levels, not both. If both a list of levels and a step are specified, the list will be produced and the step will be ignored.

Zero is treated as a valid data value by r.contour.

If a contour level exactly matches a category value in the raster map, the contour line may backtrack on itself, causing illegal arcs to be produced in the output vector map.

The optional cut parameter allows the user to specify a minimum number of raster cells eligilble to be included in a contour line written to the output vector map. It acts like a filter, omitting spurs, single points, etc., making the output more generalized.


In the Spearfish location, produce a vector contour map from input raster elevation.dem with contour levels from 1000m to 2000m, 100m contour step, and a minimum of 200 input raster points contributing to the contour line:
r.contour input=elevation.dem output=elevation_dem_contours \
          minlevel=1000 maxlevel=2000 step=100 cut=200

For an example of using levels with r.contour this example uses the elevation map from the North Carolina database:

g.region raster=elevation
r.contour in=elevation out=contours levels=60,90,120,150 --o
d.mon wx0
d.rast elevation_shade
d.vect contours color=red
r.contours example
Contour lines shown on shaded terrain map

For an example of using steps with r.contour this example uses the LiDAR data derived elevation map from the North Carolina database:

g.region raster=elev_lid792_1m -p
r.contour input=elev_lid792_1m output=elev_lid792_1m_contours \
          minlevel=100 maxlevel=150 step=10


Terry Baker, U.S. Army Construction Engineering Research Laboratory
3/2001: cut parameter and fixes by Andrea Aime (


Available at: r.contour source code (history)

Latest change: Thursday Jan 26 14:10:26 2023 in commit: cdd84c130cea04b204479e2efdc75c742efc4843

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

© 2003-2024 GRASS Development Team, GRASS GIS 8.3.3dev Reference Manual