RivEX makes extensive use of a data structure called a dictionary.  These are far faster to access than reading and writing to a disk base attribute table of a river network.

When you run the tool  Extract Network Topology and write to Workspace RivEX builds the dictionaries and stores them on the hard disk in the river networks' workspace folder RivEX_Workspace\TopoCache. These files end with a "rtd" file extension. Technically they are serialized dictionaries or lists.

RivEX will re-establish a link to these stored dictionaries for "instant access" to the logical network of your river network.  In the field of mathematics these logical networks are referred to as Graphs.

You can improve the general performance of ArcPro by building indices for your data.  If your data is a Shapefile (not recommended), ensure a spatial index has been built.  Once the node fields have been created, build attribute indices for improved read access. Click here to see how an index is built. 

The network topology drives the performance of RivEX. If your network is lots of catchments draining to the sea, an island situation such as the UK, then this is the idea situation for RivEX. Anyone catchment is small enough to traverse without causing memory issues. Thus your dataset could have a million polylines and RivEX will process it without problems. If your network is a large multi-threaded network draining to a single mouth at the sea then this is the worst case scenario for RivEX! It means the algorithms that traverse the network can end up in a very deep stacks. Two examples: an ideal and worst case scenario are shown below and discussed.

Tick - good

A network with many catchments, this network works best with RivEX

Cross - bad

A highly braided network draining to a single mouth, this is a network that RivEX will process slowly.

Iceland is a good example of a network dataset that will process efficiently in RivEX. It has many small catchments. The way RivEX extracts and stores the topological information means such networks are ideal and will process extremely fast. No one catchment is large enough to create a deep traverse of a stack, yet the network could have a million polylines!

This is a small part of a huge network dataset for the River Murray in Australia. It is composed of 300,000 polylines. RivEX could easily process a network with this number of polylines if it had a configuration similar to Iceland (many smaller catchments). But in the image above the entire connected network drains to a single mouth (black point). It is also highly braided. Whilst RivEX can process this dataset it's topological configuration is not well suited for RivEX and how it traverses the logical network. In this case RivEX will process the network slowly

Return to top of page