Check Identify main channel and click OK. Progress can be followed in the status bar.


Identify main channel


In RivEX the main channel is defined as the route taken from the furthest polyline upstream to the mouth node within a catchment.


The algorithm works by identifying the polyline furthest away from the mouth in a catchment.  The catchment is defined as all polylines flowing to a mouth node.  Once the polyline has been identified RivEX traverses downstream from the source to the mouth of the catchment labelling the polylines along the route as "main channel" polylines. As the algorithm searches downstream if it encounters a bifurcation which could potentially be a "short-circuit" across catchments it will always chooses a polyline that is labelled with the currently processing catchment ID.


Correct linkage


For braids or multi-threading channels, RivEX chooses a single route based upon the order of the polylines as they are stored in the dataset.  This means that the chosen route may not necessarily be the main channel within the multi-threading river section. 


This tool uses catchment ID encoded into the network to optimise it search; if there is unusual encoding (e.g. complex deltaic systems can cause the catchment encoding tool to erroneously number the polylines) then this tool could potentially become trapped in a loop. RivEX is able to capture this scenario and abort reporting the problem polyline ID number. You would typically need to review your network by colour coding catchment ID or symbolize flow direction to understand the issue and fix it (you most likely need to flip the direction of the polyline).


As well as capturing loops caused by erroneous catchment ID's this tool will record To-Node ID's of polylines that are flowing in an direction that cause the algorithm to get trapped in a loop, these are stored in an error log file called MainChannelFailedToNodeIDs.txt. This file is recording the first occurrence of a TO-NODE ID in a catchment which is causing a loop. You would typically review your network, correct the flow direction and rebuild the Node fields. Upon re-running this tool it is quite possible for it identify further errors downstream as your correction would have allowed the algorithm to progress instead of being trapped in a loop.


The output of this process is a new field in your river network attribute table called MainChan and stores one of two values.  A 1 means that the polyline is a main channel polyline, whilst all other polylines are coded to 0


As part of the output, all polylines with a code value of 1 in the newly created MainChan field are exported with all their attributes to a separate Shapefile.  This Shapefile will end with a suffix of "_MainChannel". If this Shapefile exists already RivEX will prompt you to  delete it. For example if you were processing a river network called "AllRivers.shp" then the main channel output Shapefile will be called "AllRivers_MainChainnel.shp".  This Shapefile is stored in the output sub-folder in the RivEX_Workpsace folder. 


The image below demonstrates a simple network with the main channel identified as indicated by the highlighted field MainChan.  The extracted polylines have been loaded back into ArcMap and displayed in red. 


Main channel and attribute table


WarningBe aware if your network includes drains or canals that "short-circuit" the dendritic pattern of rivers then you will get incorrect main channels.  This is because the polylines may have been identified as one catchment yet the physical order they are stored in your Shapefile/FeatureClass will influence the identification of the main route.