Performance issues
- 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 press the build button, RivEX builds the dictionaries as global objects. These can be accessed by any other part of the code while RivEX is running. RivEX stops running when the main dialog closes.
- If you supply a very large network to RivEX ( > 20,000 polylines) then more time is spent building the dictionaries than executing the algorithms! Some of the dictionaries built are also queried as they are built, so as the dictionary gets bigger this process takes longer.
- With the release of version 3.4 of RivEX the algorithms that build the data dictionaries were optimised. As a benchmark for very large river networks, RivEX was tested using a network of just over 140,000 polylines and it took about 3 minutes to build the dictionaries. The processing algorithms took anything between 30 seconds to a couple of minutes to process the river network for the required attribute.
- In summary, RivEX is designed to process a river network for all attributes in one go but to be able to do this it has to have all the dictionaries built first and if you are using a large network it will take time to build the dictionaries.
- You can improve the general performance of ArcMap by building indices for your data. If your data is a Shapefile, ensure a spatial index has been built. Once the node fields has been created, build attribute indices for improved read access. Click here to see how an index is built.
