There are many assumptions made in the basic drainage model, but it has proven to be of considerable value. These assumptions include: (i) uniform precipitation; (ii) flows take place entirely across surfaces, which they do not alter, and are unaffected by absorption (notably different soil or rock types) or groundwater; (iii) flows grow as a linear function with distance and are not altered by the slope values, just by the direction; (iv) there are no barriers to flow; and (v) the study region is complete and meaningful in the context of the analysis. Several GIS packages provide facilities and options that allow many of these assumptions to be relaxed or explicitly modeled. The facilities for generating streams and watersheds within most GIS packages are separated into several functions, whilst in TNTMips and Manifold integrated tools are provided to carry out many of the procedures required. Within this Section we shall utilize the terminology and procedures applied in TNTMips, but these are very similar to those used by all packages. A good description of the methods involved is given in Burrough and McDonnell (1998, Ch.8).

The core steps in this kind of analysis are:

• | Creation of an amended initial DEM with pits or depressions removed, as described in Section 6.2.6, Pit filling. This ensures that flows will be continuous across the surface, depending on the parameters selected (in some cases the GIS program may force fill pits until continuous flows can be generated) |

• | Systematic examination of the entire grid to identify flow directions. This is similar in concept to the creation of an aspect raster (some programs, such as GRASS, utilize an aspect grid as input). Most GIS implementations use the so-called D8 algorithm, which involves examining a 3x3 window of cells for the locally steepest direction (rise over run) and then coding each cell to indicate which one direction (of the 8 available) the flow is to follow (e.g. coded as 1,2,…8 or 1,2,4,…128). Some packages, such as RiverTools from RIVIX, SAGA and the TAUDEM add-in for ArcGIS from Tarboton, implement the Tarboton (1997) D-infinity algorithm (Section 6.4.3, D-infinity model, and Figure 6‑27). SAGA provides a wide range of flow algorithms, from the simple deterministic D8 and D‑infinity to stochastic D8 and ray-tracing methods. RiverTools also implements an enhanced procedure known as the Mass Flux Method (MFM). Both D-infinity and MFM provide improved modeling since they handle divergent as well as convergent flows, but nonetheless they retain grid-related directional bias. The output from these procedures is often described as an ldd or local drainage direction grid. In some GIS implementations the 3x3 window is expanded if all surrounding cells have the same slope. In this case the neighborhood is enlarged until a unique direction can be chosen. GRASS and several other packages also consider all possible directions, avoiding problems of significant directional bias (zigzag and parallel lines) |

• | Identification of flat areas and local extrema (peaks and pits) |

• | Computation of hypothetical stream paths and accumulated flows. This is typically carried out by accumulating the number of uphill cells (counting rook’s moves as 1 unit and diagonal flows as longer — either 1.414… units or approximated as 3/2 units for speed of computation by working in integer arithmetic for most of the calculations) to obtain an accumulated value per cell. There may be a minimum value required or user-specified before accumulations are considered to constitute a stream, and hence be included in generated stream networks. SAGA and PCRaster, for example, include an extensive set of options relating to flow patterns |

• | Merging streams into topologically consistent networks and calculating simple stream-order statistics, e.g. Strahler, Horton and Shreve order values — see Haggett and Chorley (1969) or similar texts for more details on branching networks |

• | Identification of the upstream limits of different stream systems, in order to determine watersheds and compute watershed-related statistics |

• | Identification of basins within these watersheds, typically representing the watersheds of secondary streams (first level tributaries) from the main stream within the watershed |

• | Optional specification of points within the grid file that may be examined for the downstream impact of introduced flows, e.g. spillovers or pollutants entering the system, and/or the upstream flows that may impact upon a downstream location |

Computation of statistics relating to the various elements generated, for example details of stream lengths, basin and watershed areas, membership lists (streams within watersheds), estimation of sediment transport amounts etc. and computation of estimated soil loss using the Universal Soil Loss Equation (USLE)