GRASS logo

Note: This document is for an older version of GRASS GIS that will be discontinued soon. You should upgrade, and read the current manual page.


r.denoise - r.denoise - denoise topographic data



r.denoise --help
r.denoise input=string output=string [iterations=integer] [threshold=float] [epsg=integer] [--overwrite] [--help] [--verbose] [--quiet] [--ui]


Allow output files to overwrite existing files
Print usage summary
Verbose module output
Quiet module output
Force launching GUI dialog


input=string [required]
Raster input map
output=string [required]
Denoised raster output map
Number of normal-updating iterations
Options: 1-50
Default: 5
Edge-sharpness threshold
Options: 0.0-1.0
Default: 0.93
EPSG projection code (required if current location is not projected)

Table of contents


Sun et al.'s (2007) denoising algorithm is a feature-preserving mesh denoising algorithm that smooths the surfaces of computer models of three dimensional objects such as those used in computer-aided design and graphics. It removes random noise while preserving sharp features and smoothing with minimal changes to the original data. r.denoise is a Python script that allows the algorithm to be run on DEMs from within GRASS. Denoising DEMs can improve clarity and quality of derived products such as slope and hydraulic maps.

The amount of smoothing is controlled by the threshold and iterations parameters. Increasing the threshold decreases how sharp a feature needs to be in order to be preserved e.g. decreases the smoothing. To preserve ridge crests in mountain areas, T > 0.9 is recommended. Setting T too high results in the preservation of noise. For SRTM data, which is already partly smoothed by NASA, T = 0.99 can be used. Increasing the number of iterations increases the smoothing and the range of spatial correlation of the output dataset. A small number, e.g. 5 or fewer, typically gives the best results. See the REFERENCES for more detailed information.


r.denoise works with a Cartesian coordinate system. Thus data in geographic (lat-long) coordinates require projection during processing. The script is able to do this if the EPSG code of a suitable coordinate system is provided.


r.denoise requires that mdenoise, the executable version of Sun et al.'s (2007) denoising algorithm, is available on the $PATH. mdenoise can be compiled and installed as follows:
cd mdenoise
g++ -o mdenoise mdenoise.cpp triangle.c
ln -s `pwd`/mdenoise /some/directory/on/the/$PATH

The python version of r.denoise uses pyproj:

pip install pyproj



r.stats,, r.neighbors, r.topidx


John A Stevenson
johnalexanderstevenson at yahoo dot co dot uk

The module was written as part of a project funded by EPSRC Grant no. EP/C007972/1 (P.I. Paul Rosin, Cardiff University).

Module ported to Python by Carlos H. Grohmann
Institute of Energy and Environment, University of Sao Paulo, Brazil


Available at: r.denoise source code (history)

Latest change: Monday Jan 30 19:52:26 2023 in commit: cac8d9d848299297977d1315b7e90cc3f7698730

Note: This document is for an older version of GRASS GIS that will be discontinued soon. You should upgrade, and read the current manual page.

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

© 2003-2023 GRASS Development Team, GRASS GIS 8.2.2dev Reference Manual