TransWikia.com

Subtracting out slope (in general) of DEM using ArcGIS for Desktop?

Geographic Information Systems Asked by Reen on May 25, 2021

I’m searching for a solution process to subtract out the slope of a DEM like this:

enter image description here

I have a high resolution DEM and want to reconstruct historical/old/not active parts of a river. The problem is the trend of the whole area. Structures from different areas are at different highs and its not possible to describe/visualize the whole area in the same way. So my idea is to adjust all highs to solve the problem.

Any idea?

2 Answers

Subtract the trend surface from the DEM.

Linear trend (1st order polynomial)

Linear trend

2nd order polynomial trend

Polynomial trend

Per @radouxju's comment - the trend line can be shifted down to avoid negative values by adding the minimum value.

In the Raster Calculator:

"DEM" - Trend("DEM") + N

Where: N = Minimum raster value in the DEM

In python

import arcpy
from arcpy.sa import Trend, Raster
dem = 'c:/data/elevation.tif'
demmin = arcpy.GetRasterProperties_management(dem, "MINIMUM").getOutput(0)
dem = Raster(dem)
result = dem - Trend(dem) + demmin
result.save('c:/data/detrend.tif')

Correct answer by user2856 on May 25, 2021

Didn't notice this was an old post that got edit-bumped until I'd written all this out, but oh well:

Trend surface is good. The closest tool I can think of to OP's sketch is SAGA-GIS' 'Standardised Height' in the tool 'Relative Heights and Slope Positions'. This basically normalises your whole raster on a 0-1 scale and then multiplies the original DEM by that factor, but its got some local weighting factors built in that aren't well documented. I've found the default output useful, though.

SAGA also has a few other interesting tools:

  • 'vertical distance to channel network' which will give you height above base. You'll need to calculate a drainage network first, so if your DEM reaches the coast then base will be the end of the river, otherwise it'll be the lowest channel cell.
  • Topographic Position Index and MrVBF, which are used a fair bit in various landform classification methods, for example here.

Height Above Nearest Drainage is a bit more sophisticated than simple height above base and has been used in combination with slope to classify terrain. The original work was done using some freeware GIS the Brazilian government built, which is kind of a black box. You can get an almost identical result in GRASS-GIS by chaining the r.stream.extract and r.stream.distance modules. You need a hydrologically corrected DEM for that kind of approach, though.

Another cool GRASS add-on is r.geomorphons, which can give you terrain basic shapes (upper slope, flat, footslope etc) very quickly but doesn't give you much info about relative elevation. There's a rather good intro-to-GRASS tutorial that uses it.

Answered by obrl_soil on May 25, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP