Modeling topography

Computing slope and aspect

Topographic slope and aspect map can be created by r.slope.aspect.


Figure 1: Topographic slope map visualized in 3D with clipped contours.

Such map can be classified using r.recode into defined classes. Example:



Categories can be labeled by r.category, result is shown on the figure bellow.

1:0-2 deg

Figure 2: Reclassified slope map with legend.


Concavity/convexity of terrain can be explored with curvatures computed by r.param.scale. Example:

# profile curvature
r.param.scale input=dem37 output=profc37 method=profc size=11

# tangential curvature
r.param.scale input=dem37 output=crosc37 method=tangc size=11

Landform identification

Landforms (ridge, valley, ...) can be obtained from curvatures computed by r.param.scale (method=feature). The modern method based multiscale line-of-sight approach is implemented by r.geomorphon addon.


Addons are not part of GRASS distribution and can be installed from menu Settings ‣ Addons extensions ‣ Install extension from addons, or by g.extension command.


r.geomorphon elevation=dem37 forms=landforms37 search=16 skip=6

Figure 3: Landsform visualization in 3D.

Solar radiation and shades

Based on slope and aspect maps can be computed solar irradiation (daily radiation sum in Wh/ for a given day using r.sun:

# day=1 -> 1.1.
r.sun elevation=dem37 slope=slope37 aspect=aspect37 beam_rad=beam37 step=1 day=1
r.colors -e map=beam37 color=grey

Note for advanced users

Computation can be very slow. Check for paralelization efforts.

Than we can also compute solar irradiance (W/m2) for a given day and hour (in local solar time) and extract the shades cast by topography:

r.sun elevation=dem37 slope=slope37 aspect=aspect37 beam_rad=beam37_8 day=1 time=12
r.colors -e map=beam37_12 color=grey

Figure 4: Solar irradiance (W/m2) 1.1. 12 a.m.

Visibility analysis

Visibility analysis can be perform in GRASS by r.viewshed, see example on the figure below.


Figure 5: Visibility analysis perform in GRASS GUI.

Cost surface and least cost path

In this example we perform least cost path analysis with slope as cost. Example:

r.cost -k input=slope37 output=cost37 outdir=outdir37 start_coordinates=533072,5626854
r.colors map=cost37 color=gyr
r.drain -d input=cost37 output=drain37 direction=outdir37 drain=drain37 start_coordinates=532046,5626889

Figure 6: Least cost path example.