r.relief(1)

πŸ’… r.relief β€” the glow-up your elevation map has been waiting for

okay bestie, so this is r.relief, a GRASS GIS module (that's r.relief(1) in the manual, section 1, GRASS GIS User's Manual) and it literally makes a shaded relief map out of an elevation map (a DEM). It's giving instant contour couture. ✨

🏷️ NAME

r.relief β€” creates shaded relief map from an elevation map (DEM).

πŸ”‘ KEYWORDS

raster, elevation, relief, terrain, hillshade

πŸ“œ SYNOPSIS

r.relief
r.relief --help
r.relief input=name output=name  [altitude=float]   [azimuth=float]
[zscale=float]   [scale=float]   [units=string]   [--overwrite]
[--help]  [--verbose]  [--quiet]  [--ui]

🚩 Flags

  • --overwrite β€” allow output files to overwrite existing files (no "oops I already had a file there" energy, it just goes for it πŸ’€)
  • --help β€” print usage summary
  • --verbose β€” verbose module output (it will yap πŸ—£οΈ)
  • --quiet β€” quiet module output (not a single peep 🀫)
  • --ui β€” force launching GUI dialog

πŸŽ›οΈ Parameters

  • input=name [required] β€” name of input raster (typically elevation) map
  • output=name [required] β€” name for output shaded relief map
  • altitude=float β€” altitude of the sun in degrees above the horizon
    • Options: 0-90
    • Default: 30
  • azimuth=float β€” azimuth of the sun in degrees to the east of north
    • Options: 0-360
    • Default: 270
  • zscale=float β€” factor for exaggerating relief
    • Default: 1
  • scale=float β€” scale factor for converting meters to elevation units
    • Default: 1
  • units=string β€” elevation units (overrides scale factor)
    • Options: intl, survey
    • intl: international feet
    • survey: survey feet

πŸŒ„ DESCRIPTION

So r.relief creates a raster shaded relief map based on the current resolution settings and on the sun altitude, azimuth, and z-exaggeration values that you, the user, enter. Basically you're the sun now. Main character energy, honestly. β˜€οΈπŸ‘‘

The parameters controlling the shading are, in order:

  1. An input raster map to provide elevation values for the shaded relief map. Typically, this would be a map layer of elevation; however, any raster map layer can be named. (fr fr, ANY raster map. we don't gatekeep.)
  2. The altitude of the sun in degrees above the horizon (a value between 0 and 90 degrees).
  3. The azimuth of the sun in degrees to the east of north (a value between 0 and 360 degrees; clockwise from north).
  4. The scaling parameter, which compensates for a different horizontal scale than vertical scale. If scale is a number, then the ewres and nsres are multiplied by that scale to calculate the shading. (Default=1.0 for equivalent horizontal and vertical scales.)
  5. The zscale exaggeration factor that changes the apparent relief for the shaded relief map. This can be any positive (or negative) floating point value. (default=1.0)
  6. Horizontal distances are calculated in meters, using geodesic distances for a latitude-longitude projection. With an elevation map measured in feet, the units option can be set to automatically convert meters to international feet (0.3048 meters = 1 foot) or survey feet (1200 / 3937 meters = 1 foot). The units parameter overrides the scale parameter.

And then r.relief assigns a grey-scale color table to the new shaded relief map. periodt. 🩢


πŸ“ NOTES

To visually improve the result of shade maps from low resolution elevation models, use r.resamp.interp with bilinear or bicubic method to resample the DEM at higher resolution. r.relief is then run on the resampled DEM. glowed-up DEM first, then shade. the way that works?? iconic. ✨

⚠️ The current mask is ignored. not "respected but overridden", not "partially applied" β€” ignored. bestie the mask is NOT invited to this one.

πŸ§ͺ EXAMPLES

🌞 Shaded relief map

In this example, the aspect map in the North Carolina sample dataset is used to hillshade the elevation map:

g.region raster=elevation -p
r.relief input=elevation output=elevation_shade

(figure caption: r.relief: shaded elevation map (subset))

🎨 Colorizing a shaded relief map

Color can be added later using r.shade or d.shade:

r.shade shade=elevation_shade color=elevation output=elevation_shaded

🌐 Using the scale factor in Latitude-Longitude

In Latitude-Longitude coordinate reference systems (or other non-metric systems), the scale factor has to be used:

# Latitude-Longitude example
g.region raster=srtm -p
r.relief input=srtm output=srtm_shaded scale=111120

πŸ“¦ Exporting shaded relief maps to GeoTIFF

The data range of shaded relief maps usually does not permit exporting the map to GeoTIFF format along with its associated color table due to limitations in the GeoTIFF format. (the GeoTIFF format said "no ❀️" to your color table.)

The most simple way to export it while even reducing the file size is to export as palette byte map. This requires a conversion done in r.mapcalc, using the # operator to convert map category values to their grey scale equivalents:

# using the map created above
# create new map from map category values
r.mapcalc expression="elevation_shade_byte = #elevation_shade"
# verify data range
r.info elevation_shade_byte
# assign grey color table
r.colors elevation_shade_byte color=grey
# export (optionally: createopt="COMPRESS=DEFLATE,BIGTIFF=YES")
r.out.gdal input=elevation_shade_byte createopt="COMPRESS=DEFLATE" \
           output=elevation_shade.tif
# add overview images in GeoTIFF file for faster zooming
gdaladdo --config GDAL_CACHEMAX 2000 elevation_shade.tif 2 4 8 16

πŸ‘€ SEE ALSO

d.shade, d.his, g.region, r.shade, r.blend, r.colors, r.mapcalc, r.resamp.interp


✍️ AUTHORS

  • Jim Westervelt, U.S. Army Construction Engineering Research Laboratory
  • Markus Metz: Enhanced fast C version of r.relief for GRASS GIS 7

πŸ’Ύ SOURCE CODE

Available at: r.relief source code (history)

Accessed: Saturday Jan 17 05:40:59 2026

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


okay that's the whole thing, no cap 🫢 this page lives in the GRASS GIS 8.4.2 Reference Manual, it's Β© 2003-2025 GRASS Development Team, and the version stamped at the bottom is GRASS 8.4.2 with the page id r.relief(1). go shade something gorgeous, bestie πŸ’–πŸ¦‹

πŸ“¦ where this page comes from