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..