-
Notifications
You must be signed in to change notification settings - Fork 100
TVPB Design
Design specification for Support for Three Zone Systems and Transit Virtual Path Building
There are two example data sets for testing:
- ActivitySim TM1 test example with a few small revisions for development of functionality but not performance testing since it isn't a full scale example. The 25 zone test example are downtown San Francisco zones and they are converted to 25 MAZs. Each TAZ is also converted to a TAP numbered 10000+. MAZs 1,2,3,4 are small and adjacent and assigned to TAZ 2 and TAP 10002. MAZs 13,14,15 are small and adjacent and assigned to TAZ 14 and TAP 10014. TAZs 1,3,4,13,15 are removed from the final data set. TAPs 10001,10003,10004,10013,10015 are removed from the final data set.
-
ActivitySim TM1 example with TM1 households reassigned to TM2 zones + using TM2 three zone system network LOS data for performance testing.
- TM1 households are stochastically assigned to
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
-
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.