TerraFlow Features

We implemented the TerraFlow flow routing and flow accumulation algorithms as described in Algorithm Outline.

Both FILL and FLOW can run in either SFD or MFD mode. This has the followin meaning:

For FILL

For FLOW

The combination of the SFD/MFD options for FILL and FLOW have the following effects:

Additional feature: FLOW can switch from MFD to SFD at user-defined threshold. By default, FLOW pushes flow downslope using MFD. If the user specifies a threshold value c then, if the flow value of a cell exceeds c, FLOW computes and uses a dominant direction (among the possibly multiple directions computed by FILL); otherwise, if the flow value is below c it uses the flow directions computed by FILL . Using this option the user can experiment with different thresholds in order to get more realistic flow accumulation grids. The intended usage is to run FILL to compute MFD flow directions and then run FLOW with the desired threshold. If the threshold c is set to 0 the flow accumulation algorithm simulates a D8-type algorithm, as it was initially proposed by O'Callaghan and Mark.

Our implementation of TerraFlow is based on the TPIE (Transparent Parallel I/O Environment) system. TPIE is a collection of templated functions and classes designed to facilitate easy and portable implementation of external memory algorithms. The basic data structure in TPIE is a stream, representing a list of objects of the same type. The system contains I/O-efficient implementations of algorithms for scanning, merging, distributing and sorting streams and data structures like I/O-efficient priority queue. TPIE facilitated the implementation of the algorithms, as it contains many of the building blocks required.


<laura@cs.duke.edu>
Last modified: Wed Apr 18 22:50:22 2001 by laura.