Development of a Common Open Platform for Activity-Based Travel Demand Modeling: ActivitySim
Corresponding Author: Ben Stabler, RSG
Presented By: Ben Stabler, RSG
ActivitySim is an open platform for activity-based (AB) travel demand modeling. It emerged from a consortium of Metropolitan Planning Organizations (SANDAG, MTC, ARC, PSRC) and other transportation planning agencies (SFCTA) that wanted to build a shared, open, platform that could be easily adapted to their individual needs, but would share a robust, efficient, and well-maintained common core. It is unlike previous AB model development efforts since it is principally an open software engineering project. The goal in the end is a new community supported framework for advanced demand models that will eventually replace the AB modeling tools developed to date.
The first generation of AB modeling tools are now mature and in use at various transportation planning agencies around the world. These modeling tools succeeded in establishing AB modeling. However, it can be argued that these tools are more prototype than platform. Prototypes typically lack usability, transparency, stability, extensibility, and optimization. Platforms excel at these requirements.
ActivitySim is implemented entirely with the latest very popular and powerful Scientific Python libraries, most notably the open source pandas and numpy libraries. The core design principle of the system is vectorization of for loops so computationally efficient backend C/C++ code can be used wherever reasonable. The model system formulates each choice model as a series of independent vectorized table operations and the Python layer is responsible for setting up and providing expressions to operate on these large data tables. ActivitySim exposes most of its model expressions in CSV files that contain actual Python expressions written by a modeler; thereby significantly reducing the need to make code changes.
ActivitySim development adheres to software engineering best practices. The system is under continuous integration (CI), which means the software and documentation are automatically built and tested. Revisions to the platform cannot be committed unless verified. Issues (bugs and features) are tracked as well, and the entire project is managed online for easier collaboration.
The purpose of this presentation is to share the impetus for this collaborative effort, the proposed solution, and provide an update on progress and next steps.