To be a valid river network polylines must connect to each other only at their nodes.  A network can fulfil this requirement yet still have polylines that cross or "intersect" each other along their length.  RivEX is capable of searching within a network for such intersections.

RivEX identifies intersections that do not occur at a node. A large network ( > 500,000 polylines) will takes around 5 minutes to process.

The output of this quality control is a text file with all polyline ID numbers where an intersection occurs. If polyline "A" crosses polyline "B" then it can also be said that "B" is crossing "A", thus the error log file reports both polyline ID's. For example if an error log returns100 polyline ID's you would typically be required to fix only 50 intersections.

The image below demonstrates 2 intersections typically observed in river networks. The red circle identifies where polylines cross each other where there is no node.

Intersecting Polylines

How you deal with the intersection depends upon the type of intersection that is occurring.  It may be a simple matter of entering edit mode and deleting a single vertex.  Alternatively you may have to split the polyline, snap the intersection to the new node and re-run RivEX to rebuild node IDs and any attribution you have done.

These types of errors are often over looked as the connectivity of the network is not compromised.  They do influence other types of processing.  For example, if you use RivEX to build a pseudo node free network then such intersections will cause multi-part features to be created when the GIS attempts to union the polylines for removing the pseudo nodes.

This tool generates an error log file called Intersections.txt

WarningIf your network contains features other than natural water courses, for example canals, you may have a genuine crossing of lines due to an aqueduct. Whilst you may want to preserve such features be aware that much of the logic behind RivEX is expecting natural dendritic patterns, not features cutting across channels and in some cases entire catchments