At Work Subtour Models - ActivitySim/activitysim GitHub Wiki

Introduction

The goal of this task is to implement the at-work subtour models. The at-work subtour frequency, scheduling, and destination sub-models are similar in form to the existing partially implemented non-mandatory tour frequency, departure and duration, and destination models. However, a few key missing features of the existing models are the processing of each tour purpose, the calculation of time windows, and logsums. At-work subtour mode choice is essentially already done by tour_mode_choice_simulate, although an explicit model step needs to be added that operates only on at-work tours.

Time Windows

In order to implement the departure time and duration models, person time windows are needed. Time windows are adjacent time periods that are available for travel. Time windows will be stored in the person table or a person_time_window table or equivalent and each row is a person and each time period (in the case of TM1 is 5am to midnight in 1 hr increments) is a column. Each column is coded as follows:

  • 0 - unscheduled, available
  • 1 - scheduled, unavailable, middle of a tour
  • 2 - scheduled, start of a tour, is available as the last period of another tour
  • 3 - scheduled, end of a tour, is available as the first period of another tour
  • 4 - scheduled, end or start of a tour, available for this period only

Note that time windows are missing from the existing partially implemented scheduling models as well. Once person time windows are available, multiple person time window overlap variables can also be calculated, which are required for the joint travel models for example.

New Model Steps

The following sub-model steps will be added to the data pipeline:

AtWork Subtour Frequency

  • Choosers: work tours
  • Alternatives: none, 1 eating out tour, 1 business tour, 1 maintenance tour, 2 business tours, 1 eating out tour + 1 business tour
  • Dependent tables: household, person, accessibility
  • Outputs: work tour subtour frequency choice, at-work tours table (with only tour origin zone at this point)

AtWork Subtour Location Sample

This model is the same as the existing workplace location sample model except it operates on the at-work tours. Skims are indexed as follows: odt_skims = tour_origin, alt_zone, MD and dot_skims = alt_zone, tour_origin, MD.

  • Choosers: at-work tours
  • Alternatives: all zones
  • Dependent tables: skims, size terms, land use
  • Outputs: alternative zone set for each at-work tour

AtWork Subtour Logsums

This model is the same as the existing workplace location logsums model except it operates on the at-work tours. Skims are indexed as follows: odt_skims = tour_origin, alt_zone, MD and dot_skims = alt_zone, tour_origin, MD.

  • Choosers: at-work tours * number of alternative zones
  • Alternatives: N/A
  • Dependent tables: skims, size terms, household, person, land use, accessibility, work tour
  • Outputs: logsums for the alternative zone set for each at-work tour

AtWork Subtour Location

This model is the same as the existing workplace location model except it operates on the at-work tours. Skims are indexed as follows: odt_skims = tour_origin, alt_zone, MD and dot_skims = alt_zone, tour_origin, MD.

  • Choosers: at-work tours
  • Alternatives: alternative zones from the sample step
  • Dependent tables: skims, size terms, land use
  • Outputs: at-work tour destination zone

AtWork Subtour Departure Time And Duration

This model is the same as the existing mandatory tour scheduling model except it operates on the at-work tours and constrains the alternative set to available person time windows. Skims are indexed as follows: odt_skims = tour_origin, tour_destination, depart_time_alt and dot_skims = tour_destination, tour_origin, arrival_time_back_origin_alt. Unlike the other departure time and duration models, the at-work subtour model does not require mode choice logsums. The at-work subtour frequency model can choose multiple tours so this model must process all first tours and then second tours since isFirstAtWorkTour is an explanatory variable.

  • Choosers: at-work tours
  • Alternatives: alternative departure time and arrival back at origin time pairs WITHIN the work tour departure time and arrival time back at origin AND the person time window. If no time window is available for the tour, make the first and last time periods within the work tour available, make the choice, and log the number of times this occurs.
  • Dependent tables: skims, person, land use, work tour
  • Outputs: at-work tour departure time and arrival back at origin time, updated person time windows

AtWork Subtour Mode

At-work subtour mode choice is essentially already done by tour_mode_choice_simulate, although an explicit model step needs to be added that operates only on at-work tours. Skims are indexed as follows: odt_skims = tour_origin, alt_zone, out_period and dot_skims = alt_zone, tour_origin, in_period.

  • Choosers: at-work tours
  • Alternatives: modes
  • Dependent tables: skims, size terms, household, person, land use, accessibility, work tour
  • Outputs: at-work tour mode