The ambag example currently runs for ~2000 tazs to ~2000 tazs. The utah example is planned to run for ~30,000 microzones, which would be ~900,000,000 OD pairs. As a result, we need to add the ability to run a subset of zones for the study area or else the runtime and memory needs will be too high. Our planned fix is below.
Diff build scenario input data
Compare base and build input link table to identify differences (either links in just one scenario or changes in link attributes)
For each link that is different, assign each link from-node and to-node to the nearest taz node-id via straight-line distance. Basically associate each link to a nearest taz.
Compare base and build input taz table to identify differences (changes in attributes)
Print the list of tazs with either link or taz differences
Calculate impact area
Determine all the taz node-ids that are within a max straight-line distance of the list of different tazs from above. Use 15 miles for bike for testing.
This becomes the impact area zones
Print the impact area zones
Existing submodels
The two new steps above become a new submodel called something like "impact area" and it is run before incremental_demand
Downstream submodels - incremental_demand, benefits, and assign_demand - are run only for the list of impacted area zones instead of the full set of zones. The network is unchanged and the existing ability of the network class to stop shortest path search once a max network cost is reached is utilized.
Testing Example
The new build network example will be used for testing, see #2.
Problem
The ambag example currently runs for ~2000 tazs to ~2000 tazs. The utah example is planned to run for ~30,000 microzones, which would be ~900,000,000 OD pairs. As a result, we need to add the ability to run a subset of zones for the study area or else the runtime and memory needs will be too high. Our planned fix is below.
Diff build scenario input data
Calculate impact area
Existing submodels
Testing Example
The new build network example will be used for testing, see #2.