SCALGO Hydrology
The SCALGO Hydrology software package contains a number of
modules for performing basic hydrological modeling on your
massive raster terrain models.
The package supports most common raster terrain data formats, including geotiff-, img-, bil- and asc-files. Furthermore, large rasters that are broken up into a mosaic of many smaller tiles can also be read and written effortlessly. The package consists of the following modules, which can be run from a standalone graphical user interface or from a toolbox within ArcGIS.
Flow Directions

Example of how the flow directions module assigns flow directions to a raster terrain model using the SFD flow-direction model.
Models how water flows on the surface of a terrain. The module computes the flow direction of each cell in a raster terrain model, that is, the directions in which surface water flows from the cell. The directions are assigned to downhill areas of the terrain using one of three user-specified flow-direction models (steepest downslope neighbor (SFD), all downslope neighbors (MFD) or aspect decomposition), and on flat areas using one of two user-specified models (shortest path or geodesic). It is also possible to control how no-data cells are handled.
In the SFD model each cell is assigned a flow direction to the steepest-descent neighbor cell. Using the MFD model directions are assigned to all lower height neighbors, and using the aspect decomposition model directions are assigned to (at most) two lower neighbors based on the local aspect of the terrain.
The example to the above right illustrates how the flow directions module assigns directions to a terrain with no flat areas. The example to the right illustrates how the flow directions module assigns directions to a flat area where some cells have at least one downslope neighbor (spill points). On such a plateau both the shortest path and the geodesic model assign directions such that water flows across the plateau to the spill points in a natural way. In the shortest path model directions are assigned such that water follows the shortest path from a cell in the flat area to the closest spill point. In the geodesic model directions are also assigned such that water tends to follow the shortest path to the closest spill point but also converge towards the cells in the middle of the flat area. The example to the right shows where water converges when modeling water flow using shortest path (white) and geodesic (blue) routing. On flat areas without a spill point (a depression) directions are assigned such that water converges to a single cell in the flat area.
If the raster terrain model contains no-data cells these cells are treated as if they have a height lower than all other cells. It is also possible to ignore all no-data cells that are not connected to the boundary of the raster through other no-data cells, that is, regard these cells as having a height higher than all other cells.
hide details read details
Flow Accumulation

Example of how the Flow Accumulation module assigns flow to each cell of a raster terrain model using the indicated flow directions and an initial flow of one on each cell.
Models how water flows on the surface of a terrain. The module computes the flow accumulation of each cell in a raster terrain model, that is, how much surface water will reach the cell if flow (initial as well as incoming) in a cell is distributed to neighbor cells using its flow direction(s) (computed using the flow directions module). Normally the initial flow on each cell is one, but it can be fully user-specified.
In the example above to the right, the flow accumulation value of a cell corresponds to the number of upstream cells. If the initial flow values are set to the area of cells, the accumulation value of a cell will correspond to the area of upstream cells. Note that to model non-uniform rainfall the initial flow values of different cells can be given different non-negative values, and to model the water drainage characteristics of different soil types the initial flow values can be given different negative values. If a cell has more than one flow direction the flow is distributed to the neighbors proportionally to the elevation difference between the cell and the neighbors receiving flow.
Often stream networks are extracted as the cells with flow accumulation above a certain threshold (blue in the figures below). In this case, depressions in the terrain will impede flow leading to a disconnected stream network (bottom-left figure). Therefore all depressions are often filled (e.g. with the Flooding module) before computing flow directions and flow accumulation to simulate a situation where no surface water gathers in depressions (bottom-middle figure). However, filling all depressions can lead to loss of a lot of detail (and very large flat areas) and therefore unrealistic stream networks. The SCALGO Topology software package can be used to only remove (fill) "insignificant" depressions that are likely to fill easily, leading to more realistic stream networks (bottom-right figure).
hide details read details
Stream Segmentation

Example of how the Stream Segmentation module assigns the same label (color) to cells in the individual segments of streams defined by applying a threshold of 2 to the flow accumulation computed using the indicated flow directions.
Identifies individual stream segments after modeling how water flows on the surface of a terrain. Given SFD flow directions of a raster terrain model (computed using the Flow Directions module) and a threshold, the module computes a stream network by extracting cells with a flow accumulation (computed as in the Flow Accumulation module) above the threshold and then assigns a unique label to stream cells between stream junctions (stream cells receiving flow from several other stream cells).
In the example above to the right, the flow accumulation value of a cell is computed using an initial flow of one on each cell and corresponds to the number of upstream cells. As in the Flow Accumulation module, the initial flow can be user-specified; if the initial flow values are set to the area of the cells, the accumulation value of a cell will correspond to the area of upstream cells.
The output from the Stream Segmentation module
is a raster where a cell on a stream segment
corresponding to the input raster contains a
label (and nodata otherwise). The label of cells
on the same segment are the same and labels
increase downstream, that is, a segment has a
larger label than any upstream segment it
receives flow from. The Stream Segmentation
module can also be used to output the stream
network in vector format (the drainage
lines). The drainage lines are a collection of
polylines following stream segments between (and
including) critical cells. The module can also
output the drainage points of the stream
network. These are points corresponding to cells
that have stream junction cells as their
downstream neighbor or cells that are stream end
cells. In the figure, circles represent drainage points.
hide details read details
Stream Ordering

Stream network with Strahler order numbering of the individual stream segments.
Identifies the Strahler or Shreve stream order of each individual stream segment after modeling how water flows on the surface of a terrain. Given SFD flow directions of a raster terrain model (computed using the Flow Directions module) and a threshold, the module computes a stream network by extracting cells with a flow accumulation (computed as in the Flow Accumulation module) above the threshold and then assigns all cells on a stream segment (cells between stream junctions, that is, stream cells receiving flow from several other stream cells) the Strahler or Shreve order number of the segment.
In both the Strahler and Shreve stream orders,
stream segments that do not receive flow from
any other stream segment have order one (are
numbered one). In the Strahler order (left in the figure), the order
of a stream segment downstream from a junction
is the same as the order as the maximal order of
stream segments upstream from the junction,
unless two or more of these segments have the
same maximal order, in which case the downstream
segment order is one larger. In the Shreve
order (right in the figure), the order of a segment downstream from a
junction is simply the sum of the orders of the
segments upstream from the junction.
As in the Flow Accumulation module, the
initial flow on each cell is normally one, but it
can be fully user-specified. The output from the
Stream Ordering module is simply a raster where a
cell on a stream segment corresponding to the
input raster contains the (Strahler or Shreve)
order number of the segment (and nodata
otherwise).

Left: Strahler order, right: Shreve order.
hide details read details
Watersheds

Example of how the watersheds module computes two watersheds (orange and yellow) on a raster terrain model with indicated flow directions.
Computes the watersheds of a terrain model. Given SFD flow directions of a raster terrain model (computed using the Flow Directions module), the module computes for each cell what watershed it is contained in. A watershed is a set of cells where water on the cells flow into the same depression. Optionally, the lowest cell in each watershed can also be computed.
Watersheds are, for example, used to quickly determine the depression where water on a given cell eventually ends up.
The Watersheds module can also be used to compute a
catchment raster for a given set of labelled drainage
points (e.g. as computed from the Stream Segmentation
module). Each drainage point is mapped to the cell it is
contained in (a drainage cell). The catchment of a
drainage cell is the region upstream of (and including)
the drainage cell but excluding the regions upstream of
any other drainage cells.

Left: Catchments computed based on the flow
directions from previous examples and
drainage points from the Stream Segmentation
module. Right: Catchment polygons produced
from the same input.
hide details read details
Adjoint Catchments

Example of adjoint catchments.
Constructs a polygon
delineating the upstream adjoint catchments of each
catchment polygon given as input. The catchments are
defined by drainage points and are computed by the
Watersheds module. The adjoint catchments of a catchment
are simply all catchments draining to that catchment.
We refer to the catchment itself as the outlet
catchment. In the module it is optional whether
to include the outlet catchment in the adjoint
catchments or not. Note, that if outlet
catchments are not included then some catchments
will not have adjoint catchments. The module
outputs adjoint catchments as polygons
containing the label of their corresponding
input catchment.

Left output: Adjoint catchments excluding
outlet catchment. Right output: Adjoint
catchments including outlet catchments.
Example of Adjoint Catchments for a set of
input catchment polygons. Note that in this
example, there is only one non-empty adjoint
catchment if outlet catchments are not
included.
hide details read details
Flooding

Terrain where all depressions (marked in red) have been removed (filled).
Removes (fills) all depressions in a raster terrain model. The depression filling can be viewed as the process of uniformly pouring water on the terrain until a steady-state is reached, that is, depressions are filled exactly so much that there is a path from each cell to the boundary of the terrain through cells with no higher height than the cell itself.
Flooding removes all depressions in a terrain. The Depression Mapping, Depression Identification and Depression Filling modules in the SCALGO Topology package allows for a much more detailed analysis of depressions and a very precise removal of only "insignificant" depressions.
hide details read details
Sea-Levels

The orange terrain indicates the minimal sea-level rise that results in flooding.
Assesses the risk of flooding due to rising sea-level. The module computes a raster model where each cell is assigned a height corresponding to the minimal sea-level rise that results in flooding of the cell (i.e. the level where the cell is connected to the ocean by a path of cells below the level). Normally the sea is defined as all no-data cells, but the module allows detailed control over what is considered sea.
In the example above to the right, note that not all parts of the input terrain below a new sea-level are flooded. However, the parts of the orange terrain below the new sea-level correspond to the flooded parts of the input terrain. Thus it is easy to compute the flooded parts of the input terrain for any possible sea-level from the orange terrain. The Masks module in the SCALGO Utility software packages e.g. provides an easy way of computing a set of mask rasters that indicate flooded cells for a set of equidistant sea-levels (for example for every 10cm from 0 to 10 meters).
The cells in the input raster terrain model considered to be sea are usually all no-data cells, but it is possible to distinguish between the set of no-data cells that are connected to the boundary of the raster through other no-data cells and those that are not, and only designate one of these sets as sea. It is also possible to designate all cells of a specific height as sea.
hide details read details
SCALGO Flash Flood Mapping
BACK: Our Products