Creating REMs and Detrended DEMS with Python

Relative elevation models (REMs) adjust a DEM so that the elevation is relative to another feature instead of sea level. One common way to create a REM is to make elevation relative to a river bed.

Then, the resulting REM displays the height of each pixel above the nearest river location.

River REMs produce some wonderful, vibrant maps and visualizations of rivers. They also aid in flood analysis and geomorphic analysis by making it easier to identify important valley-bottom features.

I’ve already created a tutorial about how to create REMs in QGIS. This tutorial will demonstrate how to automate the process with Python. Most of the code is from a notebook by DahnJ. I’ve added substantial commentary and omitted a few steps.

There’s good information out there on how to create relative elevation models, but there’s usually not much explanation on why to create them (except that they look cool) and the implications for some of the creation options that are made.



Heres the final result. Hillshade on the right.

Some things to consider

Remember the REM represents the height of locations above the river channel. One way to think about this is that it’s an estimate of how high the water would need to get to flood a specific location. Also, remember that we created this REM from an interpolation. This method is not adequate for actual flood analysis. Flood analysis methods have been developed from this concept but they involve additional lines of evidence such as river gage data and hydraulic model formulations.

Even without flood analysis, REMs create opportunities for really great river visualizations. They’re also very useful for analysis of geomorphic features because they remove the confounding effect of down-valley slope.

Hopefully, you’ll find fun ways to incorporate REMs into your daily work routines!

Similar Posts