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 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.
wget http://www.cs.cf.ac.uk/meshfiltering/index_files/Doc/mdsource.zip unzip mdsource.zip 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
© 2003-2021 GRASS Development Team, GRASS GIS 7.8.7dev Reference Manual