Thursday 23 February 2017

qgis - Smoothing DEM using GRASS?


I have a SRTM DEM and I want to create a shaded relief from it. I created the shaded relief in GRASS and the result is very nice, but a little rough because the area is near flat and the DEM is 90m in resolution.



What I want is to make the DEM smoother in order to generate a smooth shaded relief. Is there an algorithm or interpolation method to do that?


Here is the shaded relief to get an idea, I want to flatten these small bumps:


Image



Answer



How about John Stevenson's r.denoise, from the GRASS AddOns wiki:



r.denoise denoises (smooths/despeckles) topographic data, particular DEMs derived from radar data (including SRTM), using Xianfang Sun's denoising algorithm. It is designed to preserve sharp edges and to denoise with minimal changes to the original data.



mdenoise


I read further from this website (that I also give credit for the above animation) that a more generic method would be to use an Esri ASCII Grid file. The location of mdenoise (downloaded from Sun's website) needs to be in your PATH variable (e.g., Windows users: drop MDenoise.exe in the bin folder with your OSGeo4w or FWTools install). Then, for example, you can use the following shell command to process the ASCII grid file:



# gdal_translate -of AAIGrid my_dem.tif my_dem.asc      # convert to .asc
mdenoise -i my_dem.asc -n 5 -t 0.99 -o my_dem_DN.asc # denoise
# gdal_translate -of GTiff my_dem_DN.asc my_dem_DN.tif # convert back to .tif

Denoise is under GNU license, see here


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...