Several tools within RivEX require the network to be single-threaded, this is a network that has no loops. Networks derived from a DEM are often single-threaded but networks that are cartographic in origin or derived from photos and other sources, will capture channels on opposite sides of an island.  Loops can also be created by artificial channels short-circuiting the network.  A network with loops is multi-threaded and when you have such a network you will need to reduce it down to a single-threaded network so tools such as the Create subnetworks from sites can operate.

WarningThe following suggested technique enables you to simplify a network in a couple of steps but it is based upon row order so you could inadvertently delete out a main channel polyline whilst retaining overall connectivity via a minor drainage channel. You will be editing your base network, make sure you are working from a copy in a new geodatabase in a different folder.



Processing Task


You have run through steps 1 and 2 in preparing a river network. You now need to check if your network actually contains loops and a  very easy way to do this is to use the Add Loop ID tool which encodes into the network an ID number for each group of polylines participating in a loop. In the example below we can visually see 20 groups of loops coloured red. Some are simple loops whilst others are a more complex scenario of channels splitting multiple times.

Prepared network 

Network attributed with loop ID

Initial network

Network coded by loop ID


Now run the Add Shreve order tool to encode the network with Shreve order. This tool will follow a single channel through looping sections. The parts of the loop that it does not follow are coded zero.


Use the Select layer by attribute tool to select all polylines where Shreve Order is zero and then delete the selected polylines.

Zoomed in to show loops

Polylines coded with Shreve order of zero deleted out

Zoomed in section showing loops

Shreve order zero polylines deleted out

This step has reduced the network to a single-threaded network whilst maintaining overall network connectivity for the catchment.


CAUTION: Shreve order would not have necessarily followed the main channel and may have encoded Shreve order into a minor side channel.  This "blunt" approach of deleting all polylines with Shreve order of zero may mean you have deleted out the main channel.


As you will have edited the network the topo cache that RivEX maintains in the RivEX workspace will be out of date with respects to the new single-threaded network. You must re-run the Extract Network Topology and write to Workspace tool to update the topo cache information.


Before running the deletion you could, for important sections, colour code the network by Shreve order to verify it has indeed encoded Shreve order into a main channel. If not, you could then manually reassign the Shreve order to the correct loop branch and reset the other to zero. Be cautious and avoid introducing a break in continuity with Shreve order as you traverse in a downstream direction.

If you intend to use your single-threaded network in the create subnetworks tool then you could additionally use your point data (e.g. barriers) to guide your decision when manually altering Shreve order.

Return to top of page