The tool was running out of memory when run on very large (continent-wide) datasets on machines with 32Gb of RAM. This change updates the way street geometry is being read and cached to reduce overall memory consumption. Instead of reading all street geometry into a dataframe and storing it, read each feature one at a time as needed when constructing turn and signpost geometry and cache only those. This results in only ~15% of features being read and stored instead of the whole dataset. This has a slight negative impact on run time for smaller datasets since reading the data is less efficient, but things will run faster for larger datasets and will be much more likely to complete successfully.
The tool was running out of memory when run on very large (continent-wide) datasets on machines with 32Gb of RAM. This change updates the way street geometry is being read and cached to reduce overall memory consumption. Instead of reading all street geometry into a dataframe and storing it, read each feature one at a time as needed when constructing turn and signpost geometry and cache only those. This results in only ~15% of features being read and stored instead of the whole dataset. This has a slight negative impact on run time for smaller datasets since reading the data is less efficient, but things will run faster for larger datasets and will be much more likely to complete successfully.