The Hack stream order is an alternative method for assigning a hierarchy to the river network. Starting at the mouth of the river the route to source is labelled 1. All tributaries and their route to source are labelled 2, all tributaries of these and their route to source are labelled 3 and so on. A stylized example is shown below.


Hack Order

Hack Stream Order



To attribute the network with Hack Stream Order you must have already encoded the network with source ID using this tool.


RivEX uses the source ID to determine the route to source (the furthest distance upstream) when traversing the network assigning the Hack Orders. RivEX does not use catchment area, it is the network distance that defines the source location.


Selecting this tool opens the following dialog, there is nothing for you do but press OK to start the process. If any of the fields are displaying NOT SET then you need to run the appropriate tool to generate the field. This tool will not run if any fields are displaying NOT SET.


Hack Order Dialog


The output is an Integer field called Hack. If the field exists already then a new field will be created with a numeric suffix, for example Hack1.


Warning Hack Order is typically applied to single threaded networks, usually derived from DTM's. Your vector river network may contain loops or highly braided sections. So how does RivEX deal with those? RivEX uses the source ID value to help it traverse the network when determining the Hack order of a polyline. Once a source ID value has been found this is logged and RivEX continues with the traversal of the river network. RivEX then applies the Hack Order to polylines with the same source ID. In Braided sections many polylines will have the same source ID so they all share the same Hack Order.


Hack Order


Hack Order applied to a vector river network. The first order (red) just below the legend has a loop. All polylines within that loop are

assigned the same Hack order value.



Warning The Hack Ordering tool relies on the typical scenario of rivers flowing to a single mouth. For most networks this is the norm. But if after running the Hack Order tool you discover that the expected sequence is incorrect it is most likely down to the complex scenario shown below. Here we see a "false" mouth node which is not the mouth of the main river. The polylines upstream of the bifurcation will have the catchment ID of the main river. The polylines downstream of the bifurcation flowing to the "false" mouth will have another catchment ID. The Hack Ordering starts at mouth nodes so if this mouth node was created before the main river mouth then this is processed first. As the algorithm traverses upstream it will identify sources ID's in an invalid sequence and Hack Order will be incorrect.


To resolve this situation you need to manually delete out the polylines leading to the "false" mouth and then re-run the RivEX build process.


False Mouth issue when computing Hack Order

RivEX uses catchment and Source ID to compute Hack Order, a false mouth in a network will corrupt the sequence polylines are visited.