Important
|
These tools have extra dependencies in addition to a standard installation of LSDTopoTools. If you are using our vagrant distribution with LSDTopoToolsSetup.py then these should be installed for you with the floodplain and terrace code. If not, make sure you have read the requirements overview section and installed the libraries needed to run these tools. Detailed installation information is also found in the appendix.
|
This chapter outlines a method of extracting floodplains and terraces across the landscape based on thresholds of local gradient and elevation compared to the nearest channel. These thresholds are calculated statistically from the DEM using quantile-quantile plots, and do not need to be set manually by the user for the lansdcape in question. For more details on the methodology please refer to Clubb et al. (2017).
Floodplains are extracted across the whole DEM using thresholds of local gradient and relief relative to the nearest identified channel pixel. Terraces are extracted along a channel swath profile using an algorithm developed by Hergarten et al. (2014). The user needs to provide a CSV file with a pair of latitude and longitude coordinates. The code will extract the channel network between these coordinates and identify all terraces along this baseline channel.
The method has several steps, which are outlined below:
-
The DEM is filtered using a Perona-Malik filter, a non-linear filter. For more details please refer to Perona and Malik (1990). This filter was chosen as it reduces micro-topographic noise while preserving sharp boundaries, such as between hillslopes and floodplains.
-
After filtering, the local slope and relief relative to the nearest channel are calculated for each pixel. To calculate the relief relative to the channel, a threshold stream order must be set to ensure that small first order tributaries are not selected. If identifying terraces, relief is calculated based on a swath profile rather than on the nearest channel.
-
Thresholds for slope and channel relief are calculated statistically from the DEM using quantile-quantile plots. This involves plotting the probability density function of each metric and calculating the deviation away from a reference normal distribution.
-
Any pixel with a value lower than both the channel relief and slope threshold is then classified as floodplain or terrace, giving a binary mask of 1 (floodplain/terrace) and 0 (not floodplain/terrace).
-
Floodplains and terraces are separated using a connected components algorithm (He et al. (2008)). Any patches which are connected to the channel network are identified as floodplain. The user can also specify a minimum height of the terraces above the modern channel. The connected components algorithm also assigns a unique ID to each floodplain/terrace.
-
The user can specify various topographic metrics to calculate for each patch of floodplain or terrace, such as elevation compared to the channel.
Warning
|
This method is in development. We cannot guarantee a bug-free experience! |
Here is a quick overview of how to set up and run the code, if you have done it before:
-
Choose the channel extraction method that you would like to use.
-
Make sure your DEM is in
bil
format and is in the repository folder -
Create a parameter file for your DEM
-
Make sure you have created a channel network for your DEM, and have the
csv
file in your repository. -
If you want the floodplains, compile the code with
make -f get_floodplains.make
, and run the code with./get_floodplains.out /path_to_data_folder/ parameter_file.param
-
If you want the terraces, make sure you have the CSV file with the swath coordinate points in your repository. Compile the code using the compile script
bash get_terraces.sh
and run the program with./terraces_swath_driver.out /path_to_data_folder/ parameter_file.param
-
Open the resulting
bil
files in the GIS of your choice.