How barrier analysis works
- RivEX uses a recursive algorithm to traverse in an upstream direction until it reaches a polyline with another barrier or a source polyline. The algorithm is robust enough to deal with single channel networks or multi-threading channels, although output from multi-threading channels must be interpreted with caution.
- Having traversed upstream and found a polyline with a barrier, it then "trims off" any excess length to report the exact distance travelled along the polyline with the barrier.
- The output is sent to an Excel file. RivEX does not recode the network polylines with which barrier the polylines belong to. The reason for this is that a single polyline may potentially have multiple barriers along it and it would not be possible to store such information for a single row in a table.
- In the image below we see 3 and 5 have no upstream barriers, so the sources are effectively the "barriers". Looking at barrier 1, we can travel only as far as barrier 2 and 5 and the sources of two other tributaries. This is the available upstream length for barrier 1. For barrier 2 we stop at barrier 4 and two other tributaries and so on.

- In multi-thread channels you may come across situations where a barrier is on the main river channel but can be circumnavigated by side channels. In the image below the orientation of the small polyline indicated by the arrow would have a significant impact on the reported available upstream distance for barrier 104. If this small polyline flowed from left to right then only the distance to barrier 137 and 105 would be reported. If it flowed from right to left then then entire network upstream of barrier 105 would be counted as a valid upstream search would also traverse up the right hand channel. The direction of the small polyline would also influence barrier 136 by including or excluding the left side channel to barrier 105.

