Phase 6b Scope of Work - ActivitySim/activitysim GitHub Wiki

Table of Contents

Task 1: Project Management

Consultant will provide management support for the overall project, including conference call management with the project team, coordination with the ActivitySim Project Management Committee (PMC). Consultant will provide maintenance and support services to ensure ActivitySim and PopulationSim are in good working order. Tasks include dealing with updates in dependent packages, maintaining the test system, examples, and documentation, assisting with pull requests, making improvements based on agency user feedback, supporting agency users with questions, and implementing agreed upon GitHub issues. Consultant will also provide code review, software development support, and support performance enhancement activities of project team members. All deliverables, including meeting notes, software, tests, documentation, and issue tracking will be managed through GitHub.

Deliverable(s):

  • Co-management of ActivitySim Project Management Committee Weekly Meetings
  • Pre-and Post-Meeting Notes
  • Email and online support to contributor and agency user and pull requests
  • Updated source code as necessary
  • Updated examples as necessary
  • Updated documentation as necessary
  • Updated tests as necessary
  • Updated issues as necessary

top

Task 2: Vehicle Type Model

Consultant will draft an initial design for household-level vehicle modeling and meet with the ActivitySim agency partners to discuss. We will revise the draft design based on ActivitySim partner feedback and deliver a final revised design and discuss with the partners. The draft design will include a discussion and review of methods and requirements, proposed revisions to the software platform, the example to use for testing and verification, the verification plan, and the documentation plan. Consideration of CAVs will also be discussed.

A new vehicle type submodel will be added that attributes household vehicles with characteristics such as vehicle type (like auto and light truck chassis), vehicle capacity (number of people the vehicle can carry), power train type (ICE / Hybrid EV/Plug-in EV), vehicle range and vehicle age. It is anticipated Consultant will estimate the vehicle type model based on the 5,000 household Bay Area TNC survey data, but other recent household travel diary survey may be used if the Bay Area data is insufficient. Consultant will run the submodel with the existing example model and reasonably verify goodness-of-fit across key dimensions such as socio-demographics and geography.

Consultant will implement a method for allocating household-generated VMT to household vehicles to support more detailed emissions estimates, as well as to potentially refine travel costs. Consultant will work with ActivitySim partners to identify where and how information from the vehicle type model will be integrated into the ActivitySim run stream, using information such as travel purpose, travel party size and distance. Within the scope of this project, which does not request a full-featured vehicle allocation model, Consultant will implement a relatively simple model that assigns the most likely vehicle type in the household to each auto tour as a function of household and person characteristics, tour characteristics, and attributes of all household vehicles. This initial implementation will allocate a vehicle to each tour independently at this stage, without scheduling each household vehicle to be used for only one tour at a time, The scheduling feature, which will require more extensive (re)programming, should be carried out in a subsequent phase of ActivitySim development, and that approach will also provide time to evaluate any other ways in which these initial vehicle choice and allocation models could be enhanced.

Consultant will update related components of the software to take advantage of the new vehicle submodel and table. If the user desires to read an input vehicle table, as opposed to create one during a model run, an initialize_vehicles submodel will be added that can read a vehicle table from CSV file, annotate it with custom expressions, ensure table keys are consistent with household IDs, and add it to the pipeline. Depending on the ultimate specification and location of the vehicle type and vehicle tour allocation (mid-stream or post-processor), consultant may provide an example updated downstream submodel, such as tour mode choice, to include household vehicle types to illustrate use of the new data. Consultant will provide detailed technical documentation of all vehicle type and allocation models or methods. Consultant will update the online users guide to include the new submodels and will add the new example and tests to the repository. The consultant will work with the ActivitySim partners to identify a limited number of sensitivity tests, informed by the ultimate model specification and implementation.

Deliverable(s):

  • Draft and final vehicle type model design and implementation plan, in project repository Wiki
  • Pull request to ActivitySim repo with vehicle type model source code, documentation and tests
  • Full scale vehicle type model and vehicle allocation model (either mid-stream or post-processor) implementation verified in an existing ActivitySim test implementation
  • Sensitivity test documentation, in the project repository Wiki

top

Task 3: Software Development Tools

Consultant will propose and implement a prototype systematic multi-platform performance benchmarking approach. The performance benchmarking approach will explicitly support:

  • Testing across multiple machines, including documentation of machine configurations such as RAM, CPU, operating system, and other relevant attributes.
  • Testing across different versions of ActivitySim, including integration with ActivitySim’s public commit history on GitHub in order run compatible benchmarks for older or intermediate versions of the code, to help identify what code changes triggered particular shifts in benchmark performance.

Prototype benchmarks will be developed using a subset of existing Travis tests for the current version of ActivitySim, and it is expected that these benchmarks will not be compatible with ActivitySim code from prior to the current release. In addition to replicating Travis tests, the benchmarking approach to be adopted is planned to be able to support performance benchmarking of any reproducible test, including performance of individual components and submodels, but developing specific benchmarks for individual components or submodels is left for a future task and is not included in this scope of work.

Consultant will enhance the system for distribution and installation of future ActivitySim releases, in consultation with the ActivitySim Project Management Committee and other ActivitySim contributors. Consultant will migrate the default ActivitySim installation to use the conda-forge package repository. Consultant will ensure that every ActivitySim dependency (both required and optional) is already available in conda-forge, or submit to conda-forge any repositories not currently in that system (e.g. openmatrix). Consultant will provide assistance to the ActivitySim Project Management Committee with respect to making any additional ActivitySim releases, but will not be the party primarily responsible for managing ActivitySim releases. Other than ensuring compatibility with conda-forge, responsibility for managing general ActivitySim releases is not included in this task.

Consultant will submit a pull request to remove the “orca.py” file from the ActivitySim repository’s master branch, and edit all other files in the repository to use “orca.py” as a regular library dependency from conda-forge, instead of the previously integrated version of that file.

Deliverables:

  • Email and online support to contributor and agency user and pull requests
  • Updated source code as necessary
  • Updated documentation as necessary
  • Implementation of a prototype benchmarking suite, and support for agency user installations and benchmark runs.
  • Updated ActivitySim distribution system
  • Pull request to remove “orca.py” from ActivitySim

top

Task 4: Visualization

Consultant will work with the ActivitySim partners to develop a long-term roadmap documenting the vision, purpose, and priorities for visualization tools within the ActivitySim product. Consultant will document ActivitySim stakeholders’ purposes and needs for visualization tool, focusing on concrete visualization use cases within the partner agencies. Consultant will identify a common set of workflows and visualization needs that meets the needs of the broadest number of existing, and potential future, stakeholders. This long-term road map will identify specific tasks that can be executed sequentially or in parallel to develop a complete suite of visualization tools, and will define priority and level of effort for each item Consultant will scan the market for potential visualization frameworks that address the identified requirements including resources already deployed within the partner agencies. This scan will include both open-source tools, as well as proprietary technologies, and will review the identified solutions for fitness to purpose, extensibility, and implementation. Consultant will work with the ActivitySim partner agencies to recommend a preferred framework or solution.

Informed by the identified preferred solution, Consultant will assess ActivitySim’s existing data pipeline architecture and identify revisions and modifications required to support users’ ability to organize, run, store, analyze, and visualize the ActivitySim outputs in an automated way, considering the different contexts in which model data is used, such as model debugging, model calibration/validation, project analysis and scenario comparisons. Consultant will implement any necessary data pipeline tasks (e.g., data naming conventions, data schemas) to support automated visualization covered under this scope of work.

Consultant will implement an initial version of a visualization platform that can be used to support detailed model development, debugging/calibration/validation, and results presentation. At a minimum this platform will present the user with a way to organize and access their model run outputs - show a “topsheet” of essential statistics, charts, and summaries that provide a run overview. Consultant will test, iterate, document, and deploy the tool as part of the ActivitySim repository, and will identify a small subset of ActivitySim partners to do the initial iterations and then roll out to the larger consortium as the feature set gets more compelling.

Visualization product document can be viewed here.

top

Deliverable(s):

top