Height Above Nearest Drainage (HAND) using the TauDEM library and some Python glue scripts
hand-2.1.0.sh Workflow of all provided Python scripts as Bash script hand-buffer.py Buffer all polygons within a shapefile by 100m hand-thresh.py Determine resolution-appropriate binary stream threshold hand-heads.py Identify channel heads from stream network hand-weights.py Rasterize channel head locations hand-threshmin.py Determine resolution-appropriate min for drop analysis hand-threshmax.py Extract max possible search for drop analysis hand-vis.py Discretize HAND data into outputs for visualization
Daniel Hardesty Lewis
The Height Above Nearest Drainage algorithm calculates the vertical distance from a given pixel to its nearest drainage pixel.
The HAND script is run as: hand-v2.sh <DEM_raster.tif> <HAND_raster.tif> <HAND_raster_vis.tif> <HAND_shapefile_vis.shp> <HAND_geojson_vis.json>
For example: hand-v2.sh DEM.tif DEMdd.tif DEMddVis.tif DEMddVis.shp DEMddJson.json
Currently, every script must be placed in the same working directory as the input data to work correctly. This means that hand-v2.sh must be in the same directory as the following scripts to function:
- hand-heads.py
- hand-threshmax.py
- hand-threshmin.py
- hand-thresh.py
- hand-weights.py
- hand-vis.py
We also provide the following Python3 scripts for pre-processing and visualisation:
- hand-buffer.py to create a DEM raster buffered by 100m for a basin
- hand-vis.py to represent HAND as GeoJSON, shapefile, or raster
Several basins of data are included here: in Texas: - Travis County by compositing HUC12s derived from HUC6s 120902 & 120903 in Oromia, Ethiopia: - Awash - Baro - Ganale - Guder - Muger - Shebelle
For each of these basins, we provide the following files: as input: - a buffered DEM raster (ex *buf.tif or *buffer.tif) as output: - a HAND raster (*dd.tif) as visualisation output: - a GeoJSON (*dd.json) - a shapefile (all of: *dd.cpg, *dd.dbf, *dd.prj, *dd.shp, *dd.shx) as pre-processing input: - a buffered basin shapefile (buffer.shp, etc) as deprecated input: - flowlines for hand-v1.sh (_links.shp, etc) as deprecated visualisation output: - initial HAND representations with unusual binning (*dd.png)
The vertical unit for all of these data is meters (m).