# Hydrological Sciences

## Tutorials

- Creating watersheds
- Watersheds in GRASS GIS by Brendan Harmon
- A tutorial on hydrological modeling and simulation in GRASS GIS by Brendan Harmon
- Flooding in GRASS GIS by Brendan Harmon
- R.basin
- R.stream.* modules

## Flow calculation

- r.carve: Takes vector stream data, transforms it to raster and subtracts depth from the output DEM.
- r.drain: Traces a flow through an elevation model on a raster map.
- r.fillnulls: Fills no-data areas in raster maps using v.surf.rst splines interpolation
- r.fill.dir: Filters and generates a depressionless elevation map and a flow direction map from a given elevation layer.
- r.flow: Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model (DEM)
- r.topidx: Creates topographic index [ln(a/tan(beta))] map from elevation map (topographic wetness index).
- r.terraflow: Flow computation for massive grids.
- v.breach: Creates vector maps of lines and points of continuously lowering elevation down the input watercourses, based on the input raster DEM.
- r.traveltime: Computes the travel time of surface runoff to an outlet.
- r.lfp: Calculates the longest flow path.
- r.accumulate: Calculates weighted flow accumulation, stream networks, and the longest flow path using a flow direction map.

## Groundwater flow

- r.gwflow: Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.
- r3.gwflow: Numerical calculation program for transient, confined groundwater flow in three dimensions. See also Voxel.

Note: for the correct computation of tasks using r.gwflow, see the testsuite scripts validation_7x7_grid.py and validation_excavation.py. Please be aware, that r.gwflow is a very simple groundwater computation tool. Many steps in groundwater modelling must be performed outside of r.gwflow, like calibration, temporally changing of boundary conditions, weather conditions and so on.

AGU Poster as an example: http://www.urbanmetabolism.asia/sites/default/files/mehta_etal_aguposter2_48x36_horz.pdf

## Hydrological models

- Itzï - a dynamic, fully distributed hydrologic and hydraulic model that simulates 2D surface flows on a regular raster grid using simplified shallow water equations. It uses GRASS GIS as a back-end for reading entry data and writing results.
- r.topmodel: Simulates TOPMODEL which is a physically based hydrological model.
- How to run r.topmodel: tutorial

- HydroFOSS: A distributed, physically based hydrological model.
- SWAT: a river basin scale model developed to quantify the impact of land management practices in large, complex watersheds.
- r.water.fea is an interactive program that allows the user to simulate storm water runoff analysis using the finite element numerical technique. Infiltration is calculated using the Green and Ampt formulation. r.water.fea computes and draws hydrographs for every basin as well as at stream junctions in an analysis area. It also draws animation maps at the basin level. The software is available within GRASS 4.x/5.x.
- GIPE: The GRASS Image Processing Environment (GIPE) has USLE, Energy-balance and radiance-reflectance correction models. (r.hydro.CASC2D - a physically-based, distributed, raster hydrological model which simulates the hydrological response of a watershed subject to a given rainfall field - is temporarily here waiting to return to main GRASS)

## Sediment modules

- r.sim.sediment: Sediment transport and erosion/deposition simulation using path sampling method (SIMWE)

## Solute transport

- r.solute.transport: Numerical calculation program for transient, confined and unconfined solute transport in two dimensions

## Stream modules

For an overview, see R.stream.*.

In GRASS 7/8+:

- r.stream.basins: Delineates basins according stream network.
- r.stream.channel: Calculates local parameters for individual streams.
- r.stream.distance: Calculates distance to and elevation above streams and outlet.
- r.stream.order: Calculates Strahler's and more streams hierarchy.
- r.stream.segment: Divides network into near straight-line segments and calculate its order.
- r.stream.slope: Calculates local parameters for slope subsystem.
- r.stream.snap: Snap point to modelled stream network.
- r.stream.stats: Calculates Horton's statistics for Strahler and Horton ordered networks created with r.stream.order.

In GRASS 6 (old stable):

- r.stream.angle: Route azimuth, direction and relation to streams of higher order.
- r.stream.basins: Calculate basins according user input.
- r.stream.del: Calculates downslope length of first order streams and delete them if it length (in pixels) is lower than the treeshold.
- r.stream.distance: Calculate distance to and elevation above streams and outlets according user input. It can work in stream mode where target are streams and outlets mode where targets are outlets.
- r.stream.extract: Stream network extraction. It produces a vector network with the direction of the vector lines corresponding to the flow direction.
- r.stream.order: Calculate Strahler's and Horton's stream order Hack's main streams and Shreeve's stream magnitude. It uses r.watershed or r.stream.extract output files: stream, direction and optionally accumulation. Output data can be either from r.watershed or r.stream.extract but not from both together.
- r.stream.pos: Route azimuth, direction and relation to streams of higher order.
- r.stream.stats: Calculate Horton's and optionally Hack's statistics according to user input.

## Watershed modules

- r.basins.fill: Generates a raster map layer showing watershed subbasins.
- r.water.outlet: Generates a watershed basin from a drainage direction map (from r.watershed) and a set of coordinates representing the outlet point of watershed.
- r.watershed: Watershed basin analysis program.
- r.lake: Fills a lake to a target water level from a given start point.
- r.basin: Generates the main morphometric parameters of the basin. Here a tutorial
- r.threshold: Finds a first tentative value of upslope area to be used as input to extract the river network using r.stream.extract or r.watershed.
- r.hydrodem: Applies hydrological conditioning (sink removal) to a required input elevation map.

## Flooding areas

- r.sim.water: Overland flow hydrologic simulation using path sampling method (SIMWE)
- r.inund.fluv: Allows to obtain a fluvial potentially inundation map given a high-resolution DTM of the area surrounding the river and a water surface profile calculated through an 1-D hydrodinamic model.
- r.hazard.flood: Is an implementation of a fast procedure to detect flood prone areas. It may help in the delineation of flood prone areas especially in basins with marked topography. The use of the modified topographic index should not be considered as an alternative to standard hydrological-hydraulic simulations for flood mapping, but may represent a tool for a preliminary delineation of flooding areas.

## User hints

### Sink filling: why not needed in GRASS GIS

Traditionally, contour lines created by land surveying provided more detail than available DEMs. Nowadays (e.g., since SRTM of 2001), DEMs provide more detail than contour lines and contour lines are meanwhile derived from a DEM. Therefore creating a DEM from contour lines which (if in doubt) have been created using a DEM is no longer recommended, rather use any DEM instead.

**Remarks on altering a DEM by filling sinks**:

The ArcGIS reference for sink filling is Goodchild and Mark (1987), ignoring the literature of the past 27+ years. According to the ArcGIS 10 documentation, "The program assumes that all unidentified sinks are errors".

Identified sinks are those supplied by the user. Unfortunately for ArcGIS, unidentified sinks are not errors but usually true terrain elevation, particularly in the year 1987 when LIDAR was not yet available and DEMs were derived from radar. That means that the elevation values surrounding sinks are erroneous rather than the sinks themselves. Two (of several) methods to deal with sinks in a more realistic way are the minimum impact approach of Lindsay & Creed (2005) which alters the DEM (implemented in GRASS as r.hydrodem Addon) and r.watershed which does not alter the DEM.

In short, you should carefully choose your hydrological software (e.g., RiverTools/Whitebox/TauDEM/GRASS GIS).

## See also

## References

- Bhowmik, AK, Metz, M. and Schäfer RB, 2014: Reproducible, Automated and Objective Stream Threshold Selection and Upstream Riparian Corridor Delineation from Digital Elevation Models (PDF)
- Metz, M. et al 2009: Fast Stream Extraction from Large, Radar-Based Elevation Models with Variable Level of Detail (PDF)
- Metz, M. et al 2010: Accurate stream extraction from large, radar-based elevation models (PDF)
- J Jasiewicz, M Metz, 2011: A new GRASS GIS toolkit for Hortonian analysis of drainage networks, Computers & Geosciences. DOI
- Di Leo M., Di Stefano M., Claps P., Sole A., Caratterizzazione morfometrica del bacino idrografico in GRASS GIS, Geomatics Workbooks n.9, 2010 (89-100). (PDF). (In Italian)
- Di Leo M., Manfreda S., Fiorentino M., An automated procedure for the detection of flood prone areas: r.hazard.flood, Geomatics Workbooks n.10, 2011 (83-89). (PDF).
- Manfreda S., Di Leo M., Sole A., 2011: Detection of Flood Prone Areas using Digital Elevation Models, Journal of Hydrologic Engineering, (10.1061/(ASCE)HE.1943-5584.0000367).