Skip to content

TVPB Design

Ben Stabler edited this page Aug 6, 2020 · 27 revisions

Design specification for Support for Three Zone Systems and Transit Virtual Path Building

Example Data

There are two example data sets for testing:

Transit Virtual Path Builder

The user specifies a new file

# transit virtual path builder (tvpb.yaml)

DEMOGRAPHIC_SEGMENTS:
  high_income:
    CONSTANTS:
      c_ivt_high_income: -0.028
      c_cost_high_income: -0.00112
  low_income:
    CONSTANTS:
      c_ivt_low_income: -0.028
      c_cost_low_income: -0.00112

MAZ_TAP_MODES:
  walk:
    maz_taps_file: walk_maz_taps.csv
    SPEC: tvpb_walk_maz_tap.csv
    CHOOSER_COLUMNS:
      - walk_time
  drive:
    maz_taps_file: drive_maz_taps.csv
    SPEC: tvpb_drive_maz_tap.csv
    CHOOSER_COLUMNS:
      - drive_time
      - DIST

TAP_TAP_SETS:
  skims: tap_skims.omx
  tap_tap_sets:
    - fastest
    - cheapest
    - shortest
  PREPROCESSOR:
    SPEC: tvpb_tap_tap_annotate_choosers_preprocessor.csv
    DF: df

TVPB_SETTINGS:
  PATH_SETS:
    WTW:
      access: walk
      egress: walk
      max_best_paths_across_tap_sets: 3
      max_paths_for_logsum_per_tap_set: 1
      path_nesting_coefficient: 0.24
    DTW:
      access: drive
      egress: walk
      max_best_paths_across_tap_sets: 1
      max_paths_for_logsum_per_tap_set: 1
      path_nesting_coefficient: 0.24
    WTD:
      access: walk
      egress: drive
      max_best_paths_across_tap_sets: 1
      max_paths_for_logsum_per_tap_set: 1
      path_nesting_coefficient: 0.24
  CONSTANTS:
    c_wait: 1.5
    c_walk: 1.7
    c_drive: 1.5
    c_auto_operating_cost_per_mile: 18.29
    C_UNAVAILABLE: -999

revised tour mode choice model

  • tour mode choice expression file and trip mode choice expression file usage

  • los.get_tvpb_logsum_odt(DEMOGRAPHIC_SEGMENT, PATH_SETS), for example los.get_tvpb_logsum_odt("high_income", "WTW")

  • returns logsum of max_best_paths for all paths across all skims sets (consistent with the max_paths_for_logsum) for mode utility

  • if mode selected, also return the path id '<access_tap>-<tap_to_tap_set>-<egress_tap>', for example '1000-fastest-1010'

  • for walk in tour mode choice - los.get_tvpb_logsum_odt(DEMOGRAPHIC_SEGMENT, WTW) + los.get_tvpb_logsum_dot(DEMOGRAPHIC_SEGMENT, WTW)

  • for drive in tour mode choice - los.get_tvpb_logsum_odt(DEMOGRAPHIC_SEGMENT, DTW) + los.get_tvpb_logsum_dot(DEMOGRAPHIC_SEGMENT, WTD)

  • for walk in trip mode choice - los.get_tvpb_logsum_odt(DEMOGRAPHIC_SEGMENT, WTW)

  • for drive in trip mode choice - los.get_tvpb_logsum_odt(DEMOGRAPHIC_SEGMENT, DTW)

  • go ahead and get it working with relculating the best paths each time and then we can figure out what and when to pre-calculate, cache, etc.

  • note users should trim the set of taps for each maz to remove maz-tap pairs that serve the same transit lines

  • for example, transit line 5 serves MAZ 100 via TAP 1000 and TAP 1010 and TAP 1000 is closer to MAZ 100. Make

  • sure to remove the MAZ 100 to TAP 1010 entry from the MAZ to TAP file to avoid unnecessary calculations.

Clone this wiki locally