Skip to content

Software Architecture

Paul Waddell edited this page Jul 11, 2014 · 19 revisions

Software Architecture

The overall architecture for the platform is influenced heavily by the design of the activity-based travel models used by the partners who are collaborating to sponsor this project and who will be its initial users and collaborators. Synthicity is designing and implementing the architecture of the new platform, and all of the activity for this development effort is collaborative and visible on this GitHub project.

For task 1b of the contract with AMPORF, we four items were requested:

  1. Overview of the necessary framework changes needed to address any foreseen use cases that cannot be adequately addressed with the existing UrbanSim framework and architecture.
    

The main changes needed to support the implementation of activitysim are the addition of 3-level nested logit models (UrbanSim currently has 2-level NL models implemented), and new data structures required for the travel models.

  1. Explicit description of the methods (and location of those methods) Synthicity plans to use to streamline the existing ABM frameworks to improve stability and performance.
    

Vectorization of for loops is a core methodology we plan to use, and this will be woven into the models throughout. In addition, the use of our accessibility engine using contraction heirarchies (in C, with a Python interface), will add substantial speedups to the computation of routes and accessibilities on networks, as well as more general localized accessibility and 'walkscore' types of calculations used to create variables.

  1. Description of the types of methods in the existing travel models that would need to be reformulated to meet the goals of this contract.
    

None anticipated at this point.

  1. Epics that lay out the general components of model development that will be needed to meet the goals of this contract. This may seem to overlap with the deliverables of Task 1d, but the Partners feel as though the Epics will provide a general framework to develop user stories of which define the project backlog.
    

These are in the Roadmap page on this project wiki.

Clone this wiki locally