Using a recursive algorithm RivEX is able to calculate the distance from the network mouth for each polyline.  The distance includes the polyline length itself.  The value assigned to the polyline is the distance to the mouth of the network from the From-Node of the polyline. Using the force longest route option (which is default, but can be turned off) can significantly influence the output. Click OK to start the downstream distance measuring process.


Distance to mouth


The output of this process is a single field in the attribute table of your river network called Dist2Mth


In the image below, red numbers indicate the length of the polyline and black numbers are the distances from the network mouth. 


Distance to mouth


Notice upstream of the braid the distance to mouth is 6.5Km and not 7Km.  The reason for this is as the recursive algorithm traverses the network in a mouth to source direction the sequence it visits polylines is dictated by the order of records in the FeatureClass table.  In the example above it just happens to have gone up the right hand side of the braid first.  When the algorithm starts to traverse up the left hand side it detects that the upstream polylines have already been visited and stops searching upstream, to avoid duplication. 


No consistent path through braiding sections can be guaranteed as each dataset is uniquely digitised. 


Examine the image below for a situation that can occur within river networks. Here we have two catchments (numbered 5 & 6) that are joined to each other by a link (indicated by the arrow).   Depending upon the orientation of the link most of the polylines will fall within one catchment.  This would mean that most polylines would have a distance to mouth value  linked to a network mouth which is not part of the same catchment.

 

Removing the link completely or breaking its topological connection at one of its nodes will ensure the rest of the polylines are attributed correctly with distance to mouth values. 


Another issue that must be understood is multiple mouths within a catchment.  The assumption behind the algorithm logic is that the network drains to single mouth at the coast. It is possible to get mouths within the catchment. These could be channels flowing into a canal or sink holes with a karst region.  RivEX does not distinguish between mouths within catchments or at coastal limits.  The image below shows how polylines are labelled incorrectly and flow to Mouth "A", this would influence analysis such as finding a source for a site. 



The problem of multiple mouths within a catchment can be overcome by using the force longest route option (which is default, but can be turned off).  It can significantly influence the output, click here for more information.