Using the Dijkstra shortest path algorithm, RivEX can generate routes between sites on a river network. A route is a single polyline that links the FROM site to the TO site.

Weser Catchment, Germany

Routes created for a site to 30 locations in the Weser Catchment, Germany.

CCM River and Catchment Database © European Commission - JRC, 2007

Such a route provides you with the distance between sites within a catchment, a way to visualize the route taken and is a spatial object (polyline) that can participate in further spatial analysis.

WarningThe network and site data should be in a coordinate system that uses meters. This tool will yield incorrect results if applied to data in a geographic coordinate system (i.e. data in latitude/longitude).

A site dataset must be snapped to the network and have a field (of type Integer) which is an unique numeric ID for each site.

Running the Link all sites tool opens the dialogue box below. You must set the "From" site and "To" site as well as their ID fields. If the From layer has a selection you can tick the use only selected check box and only those From sites will be linked to.

Link Sites Dialog

You can use the same layer as the FROM and TO layers in this tool.

WarningBe aware that using a single layer as the FROM and TO layer can, in the worse case scenario, quickly generate a computationally massive number of routes, for example a site layer with 10,000 sites linking all sites to itself would generate 100,000,000 routes!

As part of the tools processing steps it groups the sites into their respective catchments, hence the need for the network to have been attributed with the catchment ID. RivEX will only attempt to link sites within a catchment ID, this reduced the potential number of tests that RivEX must do. To further reduce processing time, the catchment ID's are used to filter the topological dictionaries and aid in polyline generation.

If your river network is a single catchment draining to a single mouth, then this is the worst case scenario for RivEX when linking all sites. As all sites fall within the same catchment then all sites are considered and if the network is large with many nodes then expect long processing times. Something to be aware of.

The output is stored in the File GeoDatabase fGDB_SiteLinking.gdb which is found in the ..\RivEX_Workspace\Output folder. The output featureclass name takes on the FROM and TO names of the input layers. Thus if your FROM site was called StudySites and your TO sites was called ProposedBarriers then the output name would be fcAllSitesLinked_StudySites_ProposedBarriers.

The output FeatureClass has the following fields:

Field Name



The row ID


The Polyline geometry


A Yes/No flag field indicating if the geometry is single part*


The ID of the from site


The ID of the to site


The catchment ID that the sites are within


The ID of the polyline that the from site is on


The ID of the polyline that the to site is on


The length of the polyline

* = As part of the final processing step RivEX tests if the polyline is multi-part, if it is then this would suggest something erroneous has occurred. You are looking for the situation where all rows for this field are Y for yes it is a single part polyline. If you see an N for no then you will need to examine the datasets.