Model Design ¶
The ABM3 model system is primarily based on the ActivitySim platform; ActivitySim is used to model resident travel, cross-border travel, overnight visitor travel, airport ground access travel, and commercial vehicle travel including light, medium, and heavy commercial vehicles.
Aggregate models are used to model external-internal travel (from external stations other than the U.S./Mexico border crossing) and through travel. The model system relies on EMME software for network processing, skimming, and assignment. Models are mostly implemented in Python, and some models are implemented in Java.
The overall design of the model is shown in the figure below:
For a deeper explanation/definitions of some of the above process and terms (skims, network processing/assignments, etc.), check out this website.
Initial Steps ¶
The system starts by performing initial input processing in EMME. This includes building transport networks and scenarios for skimming and assignment. An initial set of skims are created based on input trip tables (e.g. warm start). Then disaggregate choice models in ActivitySim are run, including:
- the resident model,
- the crossborder travel model,
- two airport ground access models,
- the overnight visitor model,
- and the commercial vehicle model.
Next auxiliary models are run:
- the taxi/TNC routing model and the autonomous vehicle intra-household allocation model are run in Java.
- Aggregate external-internal and through travel models are run in Python.
After all models are run, trip tables are built from the result and assigned to transport networks.
scenario_id | model | otaz | dtaz | distance_total | cost_total | ||
---|---|---|---|---|---|---|---|
0 | 230 | external-internal | 6 | 13 | 102.816 | … | 39.100 |
1 | 230 | external-internal | 6 | 14 | 102.628 | … | 40.021 |
2 | 230 | external-internal | 6 | 15 | 102.367 | … | 33.728 |
3 | 230 | external-internal | 7 | 16 | 103.8597 | … | 33.179 |
4 | 230 | external-internal | 7 | 17 | 101.568 | … | 32.941 |
Example of a trip table for the external-internal model
A check is made to determine whether the model has reached convergence (currently this is set to three feedback iterations). What this means in the context of the model is if an iteration is close enough to the results of another iteration, it will not run the next iteration.
If convergence is reached, outputs are processed for export to the SANDAG Datalake for reporting summaries. If not, speeds from assignment are averaged using method of successive averages, and skims are rebuilt for the next iteration. The model system is then re-run with the updated skims.
The Synthetic Population ¶
ActivitySim is used to represent all internal travel and internal-external made by residents of the SANDAG region (modeled area). The decision-makers in the model system include both persons and households. These decision-makers are created (synthesized) for each simulation year and land-use scenario, and are based on Census data and forecasted distributions of households and persons by key socio-economic categories.
A similar but simplified method is used to generate disaggregate populations for cross-border, airport ground access, and overnight visitor models. The decision-makers (such as people or households) are used in models that predict their choices. These models work by looking at a list of possible choices and selecting one based on a probability distribution of those choices.
The probabilities are calculated using a method that considers both the characteristics of the decision-makers (like age or income) and the features of the options available. To make the choice, a random process is used, similar to drawing a number out of a hat (this is called Monte Carlo simulation). The “decision-making unit” (the person or household) is key to how the model works and is carefully defined for each model.
One big advantage of using micro-simulation is that there are no limits on how many factors (like age, income, etc.) can be included in the model. However, even with this flexibility, the model will group some decision-makers into segments. This helps organize the model by, for example, creating different models for different types of people or for different roles within a household.
As an example, there could be a model that examines how households with 0 / 1 / 2+ children without a car travel. This example examines at a household level, however, these segments can be based on either individuals or entire households.