I am looking for a method/algorithm for smoothing a DEM raster similiar to something like lowpassing, however I want to keep the highest and lowest points, resp. peaks. Latter often are only represented by few cells and are therefore endangered to 'lose height', getting replaced by the mean of the neighbouring cells. Therefore, I think I'd need an algorithm that recognizes isolated top points and lowest points.

Any solution using Python, QGIS & corresponding software or even ArcGIS Desktop would be suitable. Open source is generally preferred..

2 Answers 2


What you want is an adaptive filter - something like the Edge-Enhanced Modified Lee Filter (see this article).

The basic idea is that the amount of filtering depends on the local variance - the more variance, the less filtering. This filter is designed for SAR imagery, but it can be used for DEM-filtering with reasonable success.

Unfortunately, I don't know any OSS implementation of the filter, but it is reasonably simple to implement it in Python / R.


To complement @Mikkel's answer, you coul'd find that tool in SAGA GIS (open source). The tool is "Multi Direction Lee Filter" and quoting from documentation

The tool searches for the minimum variance within 16 directions and applies a Lee Filter in the direction of minimum variance. The filter is edge-preserving and can be used to remove speckle noise from SAR images or to smooth DTMs. Applied to DTMs, this filter will preserve slope breaks and narrow valleys.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.