Problem situations - why RivEX can fail

Parent Previous Next

This section of the manual attempts to show you various situations where RivEX will fail. All these examples use data downloaded from the American NHD website.  Whilst these examples are in no way meant to discredit the data they do provide a readily available source of real situations which you use the user must be aware of. Such situations can equal apply to other national river networks.

The NHD is a complex dataset which describes more that just the rivers.  When datasets such as the NHD are processed by RivEX it can fail to attribute correctly.  This is due to RivEX requiring the network to be a river network and only a river network.  When datasets start introducing features such as canals, ditches and drains these can all alter the topology of the network and RivEX runs in an unexpected way.

oArtificial channels

oBreaks in a network

oDisconnected (but still intersecting)

oCoordinate system

Artificial channels

In the image below a sample of NHD data has been run through RivEX to extract out the nodes and have been plotted on top of the network and labelled with their valency.  Network mouths have also been extracted and displayed in magenta.  The network itself has been colour coded blue for rivers and red for everything else.

NHD example


1.The network is not just rivers, we see pipelines crossing the network.

2.Mouths of rivers are "within" the network and not at the coast.

3.Canals/pipelines have mouths as RivEX does not differentiate between the types of polyline.

4.If these pipelines where simply digitised on top of the river, RivEX would have treated them as single catchments but instead we see that the pipelines are integrated into the river network.  We know this as where it crosses a river it actually connects at the node creating a valency of 4.  This means 4 polylines are are connecting at that node.

5.If pipelines have there own mouths and they are integrated into the network then RivEX sees it as just part of the network.  The tracing algorithms will traverse up the river and shoot off up the pipeline and may be back on to the river and "short-circuit" out a main tributary. The combinations are endless!

6.This network contains pseudo nodes (nodes with valency of 2) which would alter the outcome of the link identification type that RivEX is capable of.

Breaks in the network

Breaks in a network are typically very small and only until you reach scales of 1:1000 or less will you actually seem them.  The image below is a sample of NHD data.  The overview picture is at a scale of 1:65,000 and at this scale everything looks correct.  It's only when RivEX has run and the output is incorrect do we zoom (< 1:200) into the junctions of the network.  As we discover there are several breaks.

NHD Example

Disconnected (but still intersecting)

I use the term disconnected to mean that a polyline is not topologically connected.  These polyline still intersect or "touch" another polyline but they do not connect at the node which is paramount for network connectivity.  In the NHD example below, RivEX has extracted out mouths and sources.

NHD Example


1.There are 4 mouths (1 obscured by a source point) that are clearly "within" the network and not at the coast.

2.If you looked at this network with just nodes visible then you would be forgiven in thinking that the network is topologically correct.

3.The disconnected polylines (as indicated by the mouths) have their downstream node touching the downstream river but not at a node.  Therefore the polyline marked by "A" along its length is in fact 1 long polyline.

Coordinate system

The attribution tools in RivEX use the units of the dataset. If the coordinate system is a geographical coordinate system such as WGS84 or GCS_North_American_1983 then the units are in Decimal Degrees. RivEX will generate distances in these units and the final value won't make much sense. Typically one would talk about distances along a river in miles or Kilometres not fractions of degrees! Subsequent processing that rely on distance measurements will generate invalid results if the distance is based on decimal degrees.  You need to project your network into a coordinate system that has units in meters.  For example your original dataset for Alaska may be in GCS_North_American_1983 but you would project it in to Alaska Albers Equal Area Conic before attempting to process the network with RivEX.