My question is inspired ( and similar) with my previous question. But this question is more concerned about the suitability of D8 ( or in general non-dispersive) flow accumulation algorithm for terrain with a lot of flat area, such as highly developed township.

For watershed analysis, the post here says that D8, as a non-dispersive algorithm, is better over other dispersive algorithms, such as D-infinity algorithm:

Non-dispersive flow algorithms are particularly suited to watershed delineation for this reason. With a dispersive flow algorithm, grid cells near the boundary of a watershed can actually belong to both watersheds, i.e. two of the multiple flowpaths that issue from a grid cell situated near a watershed boundary may actually terminate at different outlets entirely. In reality of course watershed boundaries are somewhat fuzzy and ambiguously defined, but we generally want delineated watersheds that are mutually exclusive. Since the fuzziness caused by the flow dispersion inherent in the flow algorithm isn't necessarily related to the physical processes that actually govern the ambiguity of flow near watershed boundaries, we have no basis for interpreting the dual membership of bordering grid cells. That is, we can't say, 'this grid cell belongs to this watershed 90% of the time and its neighbouring watershed 10% of the time' solely based on the artificial nature of the dispersion imposed by the algorithm design. Dispersion is particularly problematic therefore.

But this is in direct contradiction to the answer I received:

D8 is very sensitive to errors in the input digital elevation model. All the accumulated flow is directed to one neighbor, and sometimes the pixel is erroneous, which mean all the flow accumulation can be directed to a wrong pixel. Other algorithms, which distribute flow to more than one neighbor, are more robust. For example consider an area of 10 by 10 m (10 m resolution), quite often the water is not flowing to one direction, but to two or even more. I'd prefer multiple flow direction algorithm (by Quinn, Freeman), or the Tarboton's D infinity.

So which is correct? is D8 ( non-dispersive) flow accumulation algorithm still suitable for watershed computation, especially if terrain contains lots of flat area?


All flow algorithms are based on the assumption that surface and near-surface flow paths are determined by local topographic gradients. Flow algorithms calculate flow paths by comparing the elevation drops between grid cells in a DEM and their eight neighbouring cells. The difference between non-dispersive (D8, Rho8, D8-LTD) and dispersive (D-infinity, FD8) flow algorithms is in the number of neighbours that can receive flow. Essentially, non-dispersive algorithms like D8 attempt to model the pathway of the steepest descent. All of these flow algorithms break down when a grid cell has no downslope neighbour, either because it is at the bottom of a depression or because the lowest neighbouring cell has the same elevation, i.e. a flat area. When either of these conditions occur, the underlying assumption of DEM-based flow routing breaks down and some alternative method of determining flow paths is required.

This is why we hydrologically condition our DEMs during a pre-processing step prior to flow modelling. In the case of depressions, we may either fill them to the elevation of their outlets or breach a trench connecting their interior to a downstream point. In the case of flat areas, we must enforce an artificial gradient, usually by adding a small elevation increment between neighbours back from the outlet of the flat area. Many implementations of flow algorithms will combine this sink-fixing step with the determination of flow directions and flow accumulation steps but it must always occur. Note that the common flat-fixing method of applying a gradient away from the outlet was designed to handle the case of lakes and the flat areas that result from filling extensive depressions. These features have well defined outlets and flow will generally move internally towards these outlets.

In your case, however, flat areas result from the fact that your DEM is in a highly developed area. Your flat areas don't have well developed outlets and flow is almost certainly not moving in ways that are determined by the combined assumptions of topographic gradient forcing and movement towards outlets. Flow in urban areas is largely determined by sub-surface built infrastructure, which is not apparent in the DEM. Therefore, you should expect that the results of your DEM-based flow path modelling will be, in places, contrary to known hydrology. I'm not saying that you can't apply DEM-based flow modelling to urban areas. However, in doing so you are very likely violating the assumptions that underlie both the flow-routing method and the flat-fixing method. People often do apply models to situations that violate their assumptions, with varying levels of success. However, when you get sub-optimal results from the model, it is very likely the result of these limitations. That said, because both D8 and D-infinity, like all flow algorithms, have the same assumption that topography is the dominant control on flow direction, swapping one out for another will not improve the situation significantly.

  • In that case, you have other watershed algorithm to tackle urban areas? – Graviton Jun 13 '18 at 1:34
  • Well that's a tricky one. If you have good knowledge of the underlying built infrastructure, you could try burning it into the DEM. Then a flow algorithm like D8 will produce better results. – WhiteboxDev Jun 13 '18 at 1:44
  • "good knowledge of the underlying built infrastructure"-- probably that's not really possible because I don't even know beforehand how the built infrastructure looks like. In the absence of such knowledge, how can we (still) do watershed analysis? – Graviton Jun 13 '18 at 1:49

Both statements are correct. In watershed delineation you essentially need an “all or nothing” delineation of flow direction to create a watershed divide as referenced in your initial statement, which precludes the use of divergent flow

For overland flow direction in general however, a multiple-flow direction algorithm is generally more forgiving of DEM errors, but doesn’t necessarily yield fully connected stream networks if your ultimate intention is a flow accumulation-thresholded predicted flow channel network delineation.

If you’re really concerned about watershed boundaries in flat areas, you might use a MFD algorithm and some post process to identify and connect the ridges based on your dispersive flow directions. But consider that even the Taudem software (original source of the D-infinity flow direction algorithm), watershed delineation is performed on a D8 flow direction raster.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.