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.