Schematic Processor v2.0 documentation

Conceptual Framework

Arc Hydro Schematic Networks

A schematic network represents features and connectivity between features using nodes and links, respectively. In Arc Hydro, schematic networks consist of SchematicNode and SchematicLink features (Maidment, 2002). These features include a unique numerical identifier, called HydroID, that can be used to relate one feature to another. SchematicLink features also include FromNodeID and ToNodeID, which store the HydroID of the SchematicNode at the upstream end of a link and the HydroID of the SchematicNode at the downstream end of a link, repectively. SchematicNode features include a numerical SrcType field to indicate the type of feature the node represents, while SchematicLink features include a numerical LinkType field to indicate the type of connection the link represents.

For example, consider a stream network with watersheds delineated that drain to those streams. When using an Arc Hydro schematic network, the endpoints of stream segments would be represented as nodes and the streams themselves would be represented as links connecting the nodes. Watersheds could also be represented as nodes, and links could connect those watershed nodes with stream endpoint nodes to represent the movement of water from the watershed into the stream network. These links and nodes would consist of these types:

SchematicNode:

  • SrcType = 1 – Represents watersheds
  • SrcType = 2 – Represents endpoints of stream segments (one on upstream end and one on downstream end)

SchematicLink:

  • LinkType = 1 – Connects watershed nodes to stream nodes
  • LinkType = 2 – Connects stream endpoint nodes (represents the river network)

These SrcType and LinkType values are just examples. You could have any number of values to represent as many types of features as you desire.

Attaching Behavior to Schematic Features

The schematic processor gives you the ability to associate behavior with schematic features. For example, consider the case of computing mean annual bacterial load for the outlet of a river basin. Suppose you’ve computed mean annual load produced by nonpoint sources in the watersheds of the basin. You’d like to move that load through the stream network, accumulating the values downstream until you arrive at a total value at the basin outlet. Since bacteria typically decay as they move through natural systems, you’d also like to consider this decay as the bacteria move downstream.

The accumulation of upstream loads and the decay of bacteria are behaviors that schematic nodes and links exhibit. Adding up loads received from upstream features is a RECEIVE behavior, while decaying bacteria before passing the load to the next downstream feature is a PASS behavior.

A RECEIVE behavior processes values passed from upstream features as well as any incremental value contributed by the current feature to produce a total value for that feature. A PASS behavior processes the total value for a given feature to produce a passed value, which is sent to the next downstream feature in the network. (See Whiteaker et al., 2006 for more details.)

In the schematic processor, these behaviors are implemented via snippets of Python code called processing ops. These ops are associated, by the user, with specific combinations of source type (SrcType and LinkType values), feature type (LINK or NODE), and behavior type (RECEIVE or PASS). Following the example above, the following ops could be created to perform the computation of mean annual bacterial load, given that the values on watershed nodes represent mean annual load contributed by each watershed.

SchematicNode:

  • SrcType 1 (watershed) – RECEIVE – N/A (these are the most upstream features in the network)
  • SrcType 1 (watershed) – PASS – Send value unmodified downstream
  • SrcType 2 (stream endpoint) – RECEIVE – Sum all received values
  • SrcType 2 (stream endpoint) – PASS – Send value unmodified downstream

SchematicLink:

  • LinkType 1 (watershed to stream) – RECEIVE – Sum all received values
  • LinkType 1 (watershed to stream) – PASS – Send value unmodified downstream
  • LinkType 2 (stream) – RECEIVE – Sum all received values
  • LinkType 2 (stream) – PASS – Apply bacterial decay and send result downstream

Note

The “Send value unmodified downstream” and “Sum all received values” behaviors are so common that an op called accumulation which models these behaviors is included with the schematic processor. It is also the default behavior applied if you do not explicitly assign a processing op to a given combination of source type, feature type, and behavior type.

Note

The schematic processor assumes your network is dendritic. It was not designed to handle networks with branching, looping, or backwater effects.

See the remainder of this help documentation for information about how to use the tools or write your own processing ops.

References

Maidment, D. R. (2002). Arc hydro: GIS for Water Resources. Redlands: ESRI Press.

Whiteaker, T., D. R. Maidment, J. L. Goodall, M. Takamatsu (2006). “Integrating Arc Hydro Features with a Schematic Network.” Transactions in GIS 10(2) pp. 219-237. (DOI: 10.1111/j.1467-9671.2006.00254.x)