From 66fb7818e7d84588e93ee41f2be50147afbb8ebe Mon Sep 17 00:00:00 2001 From: jfdman Date: Wed, 30 Mar 2022 16:54:58 -0400 Subject: [PATCH 01/26] Modified trnAssign.bat to build AAM skims --- model-files/scripts/skims/trnAssign.bat | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/model-files/scripts/skims/trnAssign.bat b/model-files/scripts/skims/trnAssign.bat index bb818e3a5..9a4d166e9 100644 --- a/model-files/scripts/skims/trnAssign.bat +++ b/model-files/scripts/skims/trnAssign.bat @@ -9,14 +9,14 @@ set TRNASSIGNMODE=NORMAL set TOTMAXTRNITERS=30 set MAXPATHTIME=240 set PCT=%% -set PYTHONPATH=%USERPROFILE%\Documents\GitHub\NetworkWrangler;%USERPROFILE%\Documents\GitHub\NetworkWrangler\_static +set PYTHONPATH=E:\Projects\Clients\gm\models\NetworkWrangler;E:\Projects\Clients\gm\models\NetworkWrangler\_static set TRN_ERRORLEVEL=0 :: AverageNetworkVolumes.job uses PREV_ITER=1 for ITER=1 set PREV_TRN_ITER=%PREV_ITER% IF %ITER% EQU 1 SET PREV_TRN_ITER=0 - -set ALLTRIPMODES=wlk_com_wlk drv_com_wlk wlk_com_drv wlk_hvy_wlk drv_hvy_wlk wlk_hvy_drv wlk_lrf_wlk drv_lrf_wlk wlk_lrf_drv wlk_exp_wlk drv_exp_wlk wlk_exp_drv wlk_loc_wlk drv_loc_wlk wlk_loc_drv +:: RSG 2022-01-21 TM1.5 add advanced air mobility mode +set ALLTRIPMODES=wlk_aam_wlk drv_aam_wlk wlk_aam_drv wlk_com_wlk drv_com_wlk wlk_com_drv wlk_hvy_wlk drv_hvy_wlk wlk_hvy_drv wlk_lrf_wlk drv_lrf_wlk wlk_lrf_drv wlk_exp_wlk drv_exp_wlk wlk_exp_drv wlk_loc_wlk drv_loc_wlk wlk_loc_drv set ALLTOURMODES=wlk_trn_wlk drv_trn_wlk wlk_trn_drv IF NOT DEFINED TRNFASTERTHANFREEFLOW (set TRNFASTERTHANFREEFLOW=0) @@ -223,7 +223,7 @@ if %ITER% EQU %MAXITERATIONS% ( cd .. cd .. -set PATH=%RUNTIME%;%JAVA_PATH%/bin;%TPP_PATH%;%GAWK_PATH%/bin;%PYTHON_PATH% +set PATH=%RUNTIME%;%JAVA_PATH%\bin;%TPP_PATH%;%GAWK_PATH%\bin;%PYTHON_PATH%\envs\py27tm1;%PYTHON_PATH%\condabin;%PYTHON_PATH%\envs :: pass on errorlevel EXIT /B %TRN_ERRORLEVEL% \ No newline at end of file From e1d4a957cfe1be1610e3c272bead159feb2b0c40 Mon Sep 17 00:00:00 2001 From: tedlini Date: Wed, 30 Mar 2022 17:18:45 -0400 Subject: [PATCH 02/26] modified TransitSkims.job to build AAM skims --- model-files/scripts/skims/TransitSkims.job | 285 +++++++++++++-------- 1 file changed, 180 insertions(+), 105 deletions(-) diff --git a/model-files/scripts/skims/TransitSkims.job b/model-files/scripts/skims/TransitSkims.job index 9f7853cf0..4d0fd6f9f 100644 --- a/model-files/scripts/skims/TransitSkims.job +++ b/model-files/scripts/skims/TransitSkims.job @@ -1,25 +1,26 @@ ; ---------------------------------------------------------------------------------------------------------------- ; ; TransitSkims.job -; -; TP+ script to create transit skim tables for five time periods, three access/egress combinations, and six line- +; RSG 2022-01-21 TM1.5 add advanced air mobility mode +; TP+ script to create transit skim tables for five time periods, three access/egress combinations, and seven line- ; haul mode combinations. The script first loops through the five time periods, which are: (a) early AM, before ; 6 am; (b) AM peak period, 6 am to 10 am; (c) midday, 10 am to 3 pm; (d) PM peak period, 3 pm to 7 pm; and, (e) ; evening, after 7 pm. Next the script loops through three access/egress combinations, which are: -; walk/transit/walk; drive/transit/walk; and walk/transit/drive. Next, the script loops through six line-haul -; mode combinations, which are: (a) long-haul premium or commuter rail; (b) medium-haul premium or heavy rail -; (BART) (c) medium-haul basic or express bus; (d) short-haul premium or light rail; (e) short-haul basic -; or local bus; and, (f) a generic transit path used to calculate accessibility that does not weight specific modes -; in an effort to create different, reasonable travel choices. +; walk/transit/walk; drive/transit/walk; and walk/transit/drive. Next, the script loops through seven line-haul +; mode combinations, which are: (a) long-haul advanced air mobility; (b) long-haul premium or commuter rail; +; (c) medium-haul premium or heavy rail (BART) (d) medium-haul basic or express bus; (e) short-haul premium or +; light rail; (f) short-haul basic or local bus; and, (g) a generic transit path used to calculate accessibility +; that does not weight specific modes in an effort to create different, reasonable travel choices. ; ; Please note that ferry is included in the short-haul premium or light rail line-haul options. This was done to ; reduce the number of skims that need to be created. Because light rail and ferry do not compete with each other, ; travelers in corridors with light rail are presented with the light rail choice and travelers in corridors with ; ferry are presented with the ferry choice. ; -; The hierarchy used to create transit path options is as follows: (1) long-haul premium; (2) medium-haul premium; -; (3) medium-haul basic; (4) short-haul premium; and, (5) short-haul basic. Using more traditional mode names: -; (1) commuter rail; (2) heavy rail; (3) express bus; (4) light rail/ferry; (5) local bus. All modes lower than +; The hierarchy used to create transit path options is as follows: (1) long-haul advanced air mobility; +; (2) long-haul premium; (3) medium-haul premium; (4) medium-haul basic; (5) short-haul premium; and, +; (6) short-haul basic. Using more traditional mode names: (1) advanced air mobility, (2)) commuter rail; +; (3) heavy rail; (4) express bus; (5) light rail/ferry; (6) local bus. All modes lower than ; the line-haul mode are made available when skimming the line-haul mode path, in an effort to create a set of ; reasonable transit paths for the mode choice model to assess for each traveler. ; @@ -38,7 +39,8 @@ ; (100) through (109) ferry service, coded by provider; ; (110) through (119) light rail, coded by provider; ; (120) through (129) heavy rail, coded by provider; -; (130) through (139) commuter rail, coded by provider. +; (130) through (139) commuter rail, coded by provider; +; (140) advanced air mobility. ; ; Input: (1) A highway network with the variable BUS_TIME that represents link bus times; ; (2) A .block file listing all of the origin/destination fare files that contain the o/d fares (transit_faremat.block); @@ -51,7 +53,7 @@ ; is less than plus or minus five minutes (transit_combined_headways.block); ; (9) A .block file containing access- and egress-mode-specific transfer prohibitor tables (transferprohibitors*.block); -; Output: (A) A 16-table skim for each time-of-day, access/egress, and line-haul mode combination, containing the following: +; Output: (A) A 17-table skim for each time-of-day, access/egress, and line-haul mode combination, containing the following: ; (1) Transit in-vehicle time, time (minutes x 100), ivt; ; (2) Initial wait time, time (minutes x 100), iwait; ; (3) Transfer wait time, time (minutes x 100), xwait; @@ -67,7 +69,8 @@ ; (13) Express bus in-vehicle time (modes 80 through 99), time (minutes x 100), ivtEXP; ; (14) Heavy rail in-vehicle time (modes 120 trhough 129), time (minutes x 100), ivtHVY; ; (15) Commuter rail in-vehicle time (modes 130 through 139), time (minutes x 100), ivtCOM, -; (16) Ferry in-vehicle time (modes 100 through 109), time (minutes x 100), ivtFerry. +; (16) Advanced air mobility in-vehicle time (mode 140), time (minutes x 100), ivtAAM, +; (17) Ferry in-vehicle time (modes 100 through 109), time (minutes x 100), ivtFerry, ; ; Notes: (1) Script modified to use a single computer ; @@ -130,19 +133,42 @@ loop period = 1,5 DistributeMultistep processid = "ctramp", processnum = counter, commpath = '%COMMPATH%' ; line haul loop - loop path = 1,6 + loop path = 1,7 - ; commuter rail or long-haul premium + ; advanced air mobility if (path = 1) + token_path = 'aam' + token_ivt = 'ivtAAM' + token_real_path = 'aam' + ; no transit modes are excluded from this path + token_skipmodes = '; do not skip any modes for this path' + + ; mode-specific perceived time factors + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0, 1*1.0' + + ; drive access/egress links to this mode (';' means no) + ; allow higher-class PNRs to be read in case of shared lots + token_drivelinks_express_bus = ';' + token_drivelinks_light_rail = ';' + token_drivelinks_ferry = ';' + token_drivelinks_heavy_rail = ';' + token_drivelinks_commuter_rail = ';' + token_drivelinks_advanced_air_mobility = ' ' + + ; KNR access links to local bus + token_bus_acclinks_KNR = ';' + + elseif (path = 2) token_path = 'com' token_ivt = 'ivtCOM' token_real_path = 'com' ; no transit modes are excluded from this path - token_skipmodes = '; do not skip any modes for this path' + token_skipmodes = 'skipmodes = 140' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0, 1*1.5' ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -151,21 +177,22 @@ loop period = 1,5 token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ';' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ';' ; heavy rail or medium-haul premium - elseif (path = 2) + elseif (path = 3) token_path = 'hvy' token_ivt = 'ivtHVY' token_real_path = 'hvy' ; commuter rail excluded from this path - token_skipmodes = 'skipmodes = 130-139' + token_skipmodes = 'skipmodes = 140,130-139' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.0, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.0, 10*1.5, 1*1.5' ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -174,21 +201,22 @@ loop period = 1,5 token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ';' ; express bus or medium-haul basic - elseif (path = 3) + elseif (path = 4) token_path = 'exp' token_ivt = 'ivtEXP' token_real_path = 'exp' ; commuter rail and heavy rail excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139' + token_skipmodes = 'skipmodes = 140,130-139,120-139' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.0, 10*1.5, 10*1.5, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.0, 10*1.5, 10*1.5, 10*1.5, 10*1.5, 1*1.5' ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -197,21 +225,22 @@ loop period = 1,5 token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ';' ; light rail (or ferry) or short-haul premium - elseif (path = 4) + elseif (path = 5) token_path = 'lrf' token_ivt = 'ivtLRF' token_real_path = 'lrf' ; commuter rail, heavy rail, and express bus excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139,80-99' + token_skipmodes = 'skipmodes = 140,130-139,120-139,80-99' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.5, 10*1.0, 10*1.0, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.5, 10*1.0, 10*1.0, 10*1.5, 10*1.5, 1*1.5' ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -220,21 +249,22 @@ loop period = 1,5 token_drivelinks_ferry = ' ' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ';' ; local bus or short-haul basic - elseif (path = 5) + elseif (path = 6) token_path = 'loc' token_ivt = 'ivtLOC' token_real_path = 'loc' ; commuter rail, heavy rail, express bus, light rail, and ferry excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139,80-99,100-119' + token_skipmodes = 'skipmodes = 140,130-139,120-139,80-99,100-119' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.5, 10*1.5, 10*1.5, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.5, 10*1.5, 10*1.5, 10*1.5, 10*1.5, 1*1.5' ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -243,12 +273,13 @@ loop period = 1,5 token_drivelinks_ferry = ' ' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus - token_bus_acclinks_KNR = ' ' + token_bus_acclinks_KNR = ' ' ; all transit treated equally - elseif (path = 6) + elseif (path = 7) token_path = 'trn' token_ivt = 'ivt' token_real_path = 'com' ; this is necessary since cube doesn't seem to like a reference to a nonexistent matrix, even if it's in an unused else code block @@ -256,8 +287,8 @@ loop period = 1,5 token_skipmodes = '; do not skip any modes for this path' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.0, 10*1.0, 10*1.0, 10*1.0, 10*1.0' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.0, 10*1.0, 10*1.0, 10*1.0, 10*1.0, 1*1.0' ; KNR access links to local bus token_bus_acclinks_KNR = ' ' @@ -294,6 +325,7 @@ loop period = 1,5 @token_drivelinks_ferry@ read file = @token_period@_transit_suplinks_ferry.dat @token_drivelinks_heavy_rail@ read file = @token_period@_transit_suplinks_heavy_rail.dat @token_drivelinks_commuter_rail@ read file = @token_period@_transit_suplinks_commuter_rail.dat + @token_drivelinks_advanced_air_mobility@ read file = @token_period@_transit_suplinks_advanced_air_mobility.dat ; read in the generated KNR links for local bus @token_bus_acclinks_KNR@ READ FILE = @TOKEN_PERIOD@_BUS_ACCLINKS_KNR.DAT @@ -327,10 +359,10 @@ loop period = 1,5 @token_boardpen@ ; perceived time factors: initial wait time is equivalent to 2.0 minutes of ride time for modes 10 through 255 - factor iwaitfac = 9*0, 130*2.0 + factor iwaitfac = 9*0, 131*2.0 ; perceived time factors: transfer wait time is equivalent to 2.0 minutes of ride time for modes 1 through 255 (xxx why not same as above xxx) - factor xwaitfac = 139*2.0 + factor xwaitfac = 140*2.0 ; perceived time factors: use token_skipmodes to remove modes from the network per the hierarchy @token_skipmodes@ @@ -346,8 +378,8 @@ loop period = 1,5 ; set the desired output matrices name = ivt, iwait, xwait, wait, wacc, waux, wegr, dtime, ddist, fare, boards, - ivtLOC, ivtLRF, ivtEXP, ivtHVY, ivtCOM, ivtFerry, ivtMUNILoc, ivtMUNIMet, - distLOC, distLRF, distEXP, distHVY, distCOM, distFerry, firstMode, + ivtLOC, ivtLRF, ivtEXP, ivtHVY, ivtCOM, ivtAAM, ivtFerry, ivtMUNILoc, ivtMUNIMet, + distLOC, distLRF, distEXP, distHVY, distCOM, distAAM, distFerry, firstMode, ; in-vehicle time for all transit modes, use TP+ code 1001 mw[1] = time(1001), ; initial wait time, use TP+ code 'iwait' @@ -380,26 +412,30 @@ loop period = 1,5 mw[15] = time(120,121,122,123,124,125,126,127,128,129), ; commuter rail in-vehicle time (modes 130 through 139) mw[16] = time(130,131,132,133,134,135,136,137,138,139), + ; advanced air mobility in-vehicle time (mode 140) + mw[17] = time(140), ; capture the ferry in-vehicle time in order to distinguish between ferry paths and light rail paths in the light rail/ferry choice (modes 100 to 109) - mw[17] = time(100,101,102,103,104,105,106,107,108,109), + mw[18] = time(100,101,102,103,104,105,106,107,108,109), ; muni local time - mw[18] = time(20,21), + mw[19] = time(20,21), ; muni metro time - mw[19] = time(110), + mw[20] = time(110), ; local bus distance (modes 10 through 79) - mw[20] = dist(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79), + mw[21] = dist(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79), ; light rail and/or ferry distance (modes 100 through 119) - mw[21] = dist(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119), + mw[22] = dist(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119), ; express bus distance (modes 80 through 99) - mw[22] = dist(80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99), + mw[23] = dist(80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99), ; heavy rail (BART) distance (modes 120 through 129) - mw[23] = dist(120,121,122,123,124,125,126,127,128,129), + mw[24] = dist(120,121,122,123,124,125,126,127,128,129), ; commuter rail distance (modes 130 through 139) - mw[24] = dist(130,131,132,133,134,135,136,137,138,139), + mw[25] = dist(130,131,132,133,134,135,136,137,138,139), + ; advanced air mobility distance (mode 140) + mw[26] = dist(140), ; capture the ferry distance in order to distinguish between ferry paths and light rail paths in the light rail/ferry choice (modes 100 to 109) - mw[25] = dist(100,101,102,103,104,105,106,107,108,109), + mw[27] = dist(100,101,102,103,104,105,106,107,108,109), ; first transit mode - mw[26] = modet1 + mw[28] = modet1 ; trace a selection of o/d pairs for debugging select trace=(i=@token_debug_origin@ && j=@token_debug_destination@) @@ -414,10 +450,12 @@ loop period = 1,5 FILEI MATI[2]=trnskm@token_period@_@token_access@_@token_path@_@token_egress@.iter@token_trnassigniter@.tpp ; current travel times + FILEI MATI[3]=trnskm@token_period@_@token_access@_@token_path@_@token_egress@.avg.iter@token_prevtrnassigniter@.tpp ; bring in averaged travel times - FILEO MATO[1]=trnskm@token_period@_@token_access@_@token_path@_@token_egress@.avg.iter@token_trnassigniter@.tpp, MO=1-26, + FILEO MATO[1]=trnskm@token_period@_@token_access@_@token_path@_@token_egress@.avg.iter@token_trnassigniter@.tpp, MO=1-28, NAME=ivt, iwait, xwait, wait, wacc, waux, wegr, dtime, ddist, fare, boards, - ivtLOC, ivtLRF, ivtEXP, ivtHVY, ivtCOM, ivtFerry, ivtMUNILoc, ivtMUNIMet, - distLOC, distLRF, distEXP, distHVY, distCOM, distFerry, firstMode + ivtLOC, ivtLRF, ivtEXP, ivtHVY, ivtCOM, ivtAAM, ivtFerry, ivtMUNILoc, ivtMUNIMet, + distLOC, distLRF, distEXP, distHVY, distCOM, distAAM, distFerry, firstMode + FILEO MATO[2]=trnskm@token_period@_@token_access@_@token_path@_@token_egress@_debug.tpp, MO=12,13,50,51,52,10, + NAME=ivtLOC, ivtLRF, ivtNonLoc, dist, fareOrig, fareNew FILEO PRINTO[1]=PHT_total_trnskm@token_period@_@token_access@_@token_path@_@token_egress@.csv, APPEND=T @@ -426,7 +464,7 @@ loop period = 1,5 ; @token_path@ is 'trn', even though the else block isn't executing IF ('@token_path@'='trn') IF (I=1) print LIST='WTF3 @token_path@ @token_real_path@' - MW[50] = MI.1.@token_access@_com_@token_egress@ + MI.1.@token_access@_hvy_@token_egress@ + MI.1.@token_access@_exp_@token_egress@ + MI.1.@token_access@_lrf_@token_egress@ + MI.1.@token_access@_loc_@token_egress@ + MW[50] = MI.1.@token_access@_aam_@token_egress@ + MI.1.@token_access@_com_@token_egress@ + MI.1.@token_access@_hvy_@token_egress@ + MI.1.@token_access@_exp_@token_egress@ + MI.1.@token_access@_lrf_@token_egress@ + MI.1.@token_access@_loc_@token_egress@ ELSE IF (I=1) print LIST='WTF4 @token_path@ @token_real_path@' MW[50] = MI.1.@token_access@_@token_real_path@_@token_egress@ @@ -452,16 +490,18 @@ loop period = 1,5 MW[14] =(MI.2.ivtEXP *LAMBDA)+((1-LAMBDA)*MI.3.ivtEXP ) MW[15] =(MI.2.ivtHVY *LAMBDA)+((1-LAMBDA)*MI.3.ivtHVY ) MW[16] =(MI.2.ivtCOM *LAMBDA)+((1-LAMBDA)*MI.3.ivtCOM ) - MW[17] =(MI.2.ivtFerry *LAMBDA)+((1-LAMBDA)*MI.3.ivtFerry ) - MW[18] =(MI.2.ivtMUNILoc*LAMBDA)+((1-LAMBDA)*MI.3.ivtMUNILoc) - MW[19] =(MI.2.ivtMUNIMet*LAMBDA)+((1-LAMBDA)*MI.3.ivtMUNIMet) - MW[20] =(MI.2.distLOC *LAMBDA)+((1-LAMBDA)*MI.3.distLOC ) - MW[21] =(MI.2.distLRF *LAMBDA)+((1-LAMBDA)*MI.3.distLRF ) - MW[22] =(MI.2.distEXP *LAMBDA)+((1-LAMBDA)*MI.3.distEXP ) - MW[23] =(MI.2.distHVY *LAMBDA)+((1-LAMBDA)*MI.3.distHVY ) - MW[24] =(MI.2.distCOM *LAMBDA)+((1-LAMBDA)*MI.3.distCOM ) - MW[25] =(MI.2.distFerry *LAMBDA)+((1-LAMBDA)*MI.3.distFerry ) - MW[26] =(MI.2.firstMode *LAMBDA)+((1-LAMBDA)*MI.3.firstMode ) + MW[17] =(MI.2.ivtAAM *LAMBDA)+((1-LAMBDA)*MI.3.ivtAAM ) + MW[18] =(MI.2.ivtFerry *LAMBDA)+((1-LAMBDA)*MI.3.ivtFerry ) + MW[19] =(MI.2.ivtMUNILoc*LAMBDA)+((1-LAMBDA)*MI.3.ivtMUNILoc) + MW[20] =(MI.2.ivtMUNIMet*LAMBDA)+((1-LAMBDA)*MI.3.ivtMUNIMet) + MW[21] =(MI.2.distLOC *LAMBDA)+((1-LAMBDA)*MI.3.distLOC ) + MW[22] =(MI.2.distLRF *LAMBDA)+((1-LAMBDA)*MI.3.distLRF ) + MW[23] =(MI.2.distEXP *LAMBDA)+((1-LAMBDA)*MI.3.distEXP ) + MW[24] =(MI.2.distHVY *LAMBDA)+((1-LAMBDA)*MI.3.distHVY ) + MW[25] =(MI.2.distCOM *LAMBDA)+((1-LAMBDA)*MI.3.distCOM ) + MW[26] =(MI.2.distAAM *LAMBDA)+((1-LAMBDA)*MI.3.distAAM ) + MW[27] =(MI.2.distFerry *LAMBDA)+((1-LAMBDA)*MI.3.distFerry ) + MW[28] =(MI.2.firstMode *LAMBDA)+((1-LAMBDA)*MI.3.firstMode ) _BOTH = _BOTH+1 ELSEIF (MI.2.@token_ivt@>0) MW[1 ] =MI.2.ivt @@ -480,16 +520,18 @@ loop period = 1,5 MW[14] =MI.2.ivtEXP MW[15] =MI.2.ivtHVY MW[16] =MI.2.ivtCOM - MW[17] =MI.2.ivtFerry - MW[18] =MI.2.ivtMUNILoc - MW[19] =MI.2.ivtMUNIMet - MW[20] =MI.2.distLOC - MW[21] =MI.2.distLRF - MW[22] =MI.2.distEXP - MW[23] =MI.2.distHVY - MW[24] =MI.2.distCOM - MW[25] =MI.2.distFerry - MW[26] =MI.2.firstMode + MW[17] =MI.2.ivtAAM + MW[18] =MI.2.ivtFerry + MW[19] =MI.2.ivtMUNILoc + MW[20] =MI.2.ivtMUNIMet + MW[21] =MI.2.distLOC + MW[22] =MI.2.distLRF + MW[23] =MI.2.distEXP + MW[24] =MI.2.distHVY + MW[25] =MI.2.distCOM + MW[26] =MI.2.distAAM + MW[27] =MI.2.distFerry + MW[28] =MI.2.firstMode _ITERONLY = _ITERONLY+1 ELSEIF (MI.3.@token_ivt@>0) MW[1 ] =MI.3.ivt @@ -507,20 +549,53 @@ loop period = 1,5 MW[13] =MI.3.ivtLRF MW[14] =MI.3.ivtEXP MW[15] =MI.3.ivtHVY - MW[16] =MI.3.ivtCOM - MW[17] =MI.3.ivtFerry - MW[18] =MI.3.ivtMUNILoc - MW[19] =MI.3.ivtMUNIMet - MW[20] =MI.3.distLOC - MW[21] =MI.3.distLRF - MW[22] =MI.3.distEXP - MW[23] =MI.3.distHVY - MW[24] =MI.3.distCOM - MW[25] =MI.3.distFerry - MW[26] =MI.3.firstMode + MW[16] =MI.3.ivtCOM + MW[17] =MI.3.ivtAAM + MW[18] =MI.3.ivtFerry + MW[19] =MI.3.ivtMUNILoc + MW[20] =MI.3.ivtMUNIMet + MW[21] =MI.3.distLOC + MW[22] =MI.3.distLRF + MW[23] =MI.3.distEXP + MW[24] =MI.3.distHVY + MW[25] =MI.3.distCOM + MW[26] =MI.3.distAAM + MW[27] =MI.3.distFerry + MW[28] =MI.3.firstMode _AVGONLY = _AVGONLY+1 ENDIF - + + ; integrated fares + ; => calculate non-loc IVT + MW[50] = MW[18] + MW[14] + MW[15] + MW[16] + MW[17]; ivtFerry + ivtEXP + ivtHVY + ivtCOM + ivtAAM + ; => calculate dist + MW[51] = MW[21] + MW[22] + MW[23] + MW[24] + MW[25] + MW[26] + ; debug: copy of original fares + MW[52] = MW[10] + + ; local/LRT IVT only => flat fare of $2.50 (2019$) = $1.55 ($2000) + if ((MW[12]+MW[13] > 0) & (MW[50] = 0)) + MW[10] = 155 + ELSEIF ((MW[51] > 0) & (MW[51] <= 1000)) + ; $3.50 (2019$) = $2.17 ($2000) + MW[10] = 217 + ELSEIF ((MW[51] > 1000) & (MW[51] <= 2000)) + ; $4.50 (2019$) = $2.80 ($2000) + MW[10] = 280 + ELSEIF ((MW[51] > 2000) & (MW[51] <= 3000)) + ; $5.50 (2019$) = $3.42 ($2000) + MW[10] = 342 + ELSEIF ((MW[51] > 3000) & (MW[51] <= 4000)) + ; $6.50 (2019$) = $4.04 ($2000) + MW[10] = 404 + ELSEIF ((MW[51] > 4000) & (MW[51] <= 5000)) + ; $7.50 (2019$) = $4.66 ($2000) + MW[10] = 466 + ELSEIF (MW[51] > 5000) + ; $8.50 (2019$) = $5.28 ($2000) + MW[10] = 528 + ENDIF + IF (MW[3]>0 && MW[50]>0) ; PMT = Person Minutes Travelled MW[32] = (MI.2.ivt + MI.2.iwait + MI.2.xwait + MI.2.wacc + MI.2.waux + MI.2.wegr + MI.2.dtime)/100.0 ; Total Time (min) @@ -567,7 +642,7 @@ loop period = 1,5 list = ' ', file = @token_debug_filename@.@token_period@.@token_access@.@token_path@.@token_egress@.debug list = ' time access egress path ivt iwait xwait wacc waux wegr dtime ddist fare', - ' boards ivtLOC ivtLRF ivtEXP ivtHVY ivtCOM ivtFerry', + ' boards ivtLOC ivtLRF ivtEXP ivtHVY ivtCOM ivtAAM ivtFerry', file = @token_debug_filename@.@token_period@.@token_access@.@token_path@.@token_egress@.debug list = ' ----- ------- ------- ----- ------- ------- ------- ------- ------- ------- ------- ------- -------', ' ------- ------- ------- ------- ------- ------- --------', @@ -581,7 +656,7 @@ loop period = 1,5 list = ' @token_period@ @token_access@ @token_egress@ @token_path@', mi.1.ivt(8.0), mi.1.iwait(8.0), mi.1.xwait(8.0), mi.1.wacc(8.0), mi.1.waux(8.0), mi.1.wegr(8.0), mi.1.dtime(8.0), mi.1.ddist(8.0), mi.1.fare(8.0), - mi.1.boards(8.0),mi.1.ivtLOC(8.0), mi.1.ivtLRF(8.0), mi.1.ivtEXP(8.0), mi.1.ivtHVY(8.0), mi.1.ivtCOM(8.0), mi.1.ivtFerry(9.0), + mi.1.boards(8.0),mi.1.ivtLOC(8.0), mi.1.ivtLRF(8.0), mi.1.ivtEXP(8.0), mi.1.ivtHVY(8.0), mi.1.ivtCOM(8.0), mi.1.ivtAAM(8.0), mi.1.ivtFerry(9.0), file = @token_debug_filename@.@token_period@.@token_access@.@token_path@.@token_egress@.debug endif endjloop @@ -602,23 +677,23 @@ wait4files files = ctramp1.script.end, ctramp2.script.end, ctramp3.script.end, ; combine all the debug output -* copy @token_debug_filename@.ea.wlk.com.wlk.debug+@token_debug_filename@.ea.wlk.hvy.wlk.debug+@token_debug_filename@.ea.wlk.exp.wlk.debug+@token_debug_filename@.ea.wlk.lrf.wlk.debug+@token_debug_filename@.ea.wlk.loc.wlk.debug+@token_debug_filename@.ea.wlk.trn.wlk.debug @token_debug_filename@.ea.wlk.all.wlk.debug -* copy @token_debug_filename@.am.wlk.com.wlk.debug+@token_debug_filename@.am.wlk.hvy.wlk.debug+@token_debug_filename@.am.wlk.exp.wlk.debug+@token_debug_filename@.am.wlk.lrf.wlk.debug+@token_debug_filename@.am.wlk.loc.wlk.debug+@token_debug_filename@.am.wlk.trn.wlk.debug @token_debug_filename@.am.wlk.all.wlk.debug -* copy @token_debug_filename@.md.wlk.com.wlk.debug+@token_debug_filename@.md.wlk.hvy.wlk.debug+@token_debug_filename@.md.wlk.exp.wlk.debug+@token_debug_filename@.md.wlk.lrf.wlk.debug+@token_debug_filename@.md.wlk.loc.wlk.debug+@token_debug_filename@.md.wlk.trn.wlk.debug @token_debug_filename@.md.wlk.all.wlk.debug -* copy @token_debug_filename@.pm.wlk.com.wlk.debug+@token_debug_filename@.pm.wlk.hvy.wlk.debug+@token_debug_filename@.pm.wlk.exp.wlk.debug+@token_debug_filename@.pm.wlk.lrf.wlk.debug+@token_debug_filename@.pm.wlk.loc.wlk.debug+@token_debug_filename@.pm.wlk.trn.wlk.debug @token_debug_filename@.pm.wlk.all.wlk.debug -* copy @token_debug_filename@.ev.wlk.com.wlk.debug+@token_debug_filename@.ev.wlk.hvy.wlk.debug+@token_debug_filename@.ev.wlk.exp.wlk.debug+@token_debug_filename@.ev.wlk.lrf.wlk.debug+@token_debug_filename@.ev.wlk.loc.wlk.debug+@token_debug_filename@.ev.wlk.trn.wlk.debug @token_debug_filename@.ev.wlk.all.wlk.debug +* copy @token_debug_filename@.ea.wlk.aam.wlk.debug+@token_debug_filename@.ea.wlk.com.wlk.debug+@token_debug_filename@.ea.wlk.hvy.wlk.debug+@token_debug_filename@.ea.wlk.exp.wlk.debug+@token_debug_filename@.ea.wlk.lrf.wlk.debug+@token_debug_filename@.ea.wlk.loc.wlk.debug+@token_debug_filename@.ea.wlk.trn.wlk.debug @token_debug_filename@.ea.wlk.all.wlk.debug +* copy @token_debug_filename@.am.wlk.aam.wlk.debug+@token_debug_filename@.am.wlk.com.wlk.debug+@token_debug_filename@.am.wlk.hvy.wlk.debug+@token_debug_filename@.am.wlk.exp.wlk.debug+@token_debug_filename@.am.wlk.lrf.wlk.debug+@token_debug_filename@.am.wlk.loc.wlk.debug+@token_debug_filename@.am.wlk.trn.wlk.debug @token_debug_filename@.am.wlk.all.wlk.debug +* copy @token_debug_filename@.md.wlk.aam.wlk.debug+@token_debug_filename@.md.wlk.com.wlk.debug+@token_debug_filename@.md.wlk.hvy.wlk.debug+@token_debug_filename@.md.wlk.exp.wlk.debug+@token_debug_filename@.md.wlk.lrf.wlk.debug+@token_debug_filename@.md.wlk.loc.wlk.debug+@token_debug_filename@.md.wlk.trn.wlk.debug @token_debug_filename@.md.wlk.all.wlk.debug +* copy @token_debug_filename@.pm.wlk.aam.wlk.debug+@token_debug_filename@.pm.wlk.com.wlk.debug+@token_debug_filename@.pm.wlk.hvy.wlk.debug+@token_debug_filename@.pm.wlk.exp.wlk.debug+@token_debug_filename@.pm.wlk.lrf.wlk.debug+@token_debug_filename@.pm.wlk.loc.wlk.debug+@token_debug_filename@.pm.wlk.trn.wlk.debug @token_debug_filename@.pm.wlk.all.wlk.debug +* copy @token_debug_filename@.ev.wlk.aam.wlk.debug+@token_debug_filename@.ev.wlk.com.wlk.debug+@token_debug_filename@.ev.wlk.hvy.wlk.debug+@token_debug_filename@.ev.wlk.exp.wlk.debug+@token_debug_filename@.ev.wlk.lrf.wlk.debug+@token_debug_filename@.ev.wlk.loc.wlk.debug+@token_debug_filename@.ev.wlk.trn.wlk.debug @token_debug_filename@.ev.wlk.all.wlk.debug -* copy @token_debug_filename@.ea.wlk.com.drv.debug+@token_debug_filename@.ea.wlk.hvy.drv.debug+@token_debug_filename@.ea.wlk.exp.drv.debug+@token_debug_filename@.ea.wlk.lrf.drv.debug+@token_debug_filename@.ea.wlk.loc.drv.debug+@token_debug_filename@.ea.wlk.trn.drv.debug @token_debug_filename@.ea.wlk.all.drv.debug -* copy @token_debug_filename@.am.wlk.com.drv.debug+@token_debug_filename@.am.wlk.hvy.drv.debug+@token_debug_filename@.am.wlk.exp.drv.debug+@token_debug_filename@.am.wlk.lrf.drv.debug+@token_debug_filename@.am.wlk.loc.drv.debug+@token_debug_filename@.am.wlk.trn.drv.debug @token_debug_filename@.am.wlk.all.drv.debug -* copy @token_debug_filename@.md.wlk.com.drv.debug+@token_debug_filename@.md.wlk.hvy.drv.debug+@token_debug_filename@.md.wlk.exp.drv.debug+@token_debug_filename@.md.wlk.lrf.drv.debug+@token_debug_filename@.md.wlk.loc.drv.debug+@token_debug_filename@.md.wlk.trn.drv.debug @token_debug_filename@.md.wlk.all.drv.debug -* copy @token_debug_filename@.pm.wlk.com.drv.debug+@token_debug_filename@.pm.wlk.hvy.drv.debug+@token_debug_filename@.pm.wlk.exp.drv.debug+@token_debug_filename@.pm.wlk.lrf.drv.debug+@token_debug_filename@.pm.wlk.loc.drv.debug+@token_debug_filename@.pm.wlk.trn.drv.debug @token_debug_filename@.pm.wlk.all.drv.debug -* copy @token_debug_filename@.ev.wlk.com.drv.debug+@token_debug_filename@.ev.wlk.hvy.drv.debug+@token_debug_filename@.ev.wlk.exp.drv.debug+@token_debug_filename@.ev.wlk.lrf.drv.debug+@token_debug_filename@.ev.wlk.loc.drv.debug+@token_debug_filename@.ev.wlk.trn.drv.debug @token_debug_filename@.ev.wlk.all.drv.debug +* copy @token_debug_filename@.ea.wlk.aam.drv.debug+@token_debug_filename@.ea.wlk.com.drv.debug+@token_debug_filename@.ea.wlk.hvy.drv.debug+@token_debug_filename@.ea.wlk.exp.drv.debug+@token_debug_filename@.ea.wlk.lrf.drv.debug+@token_debug_filename@.ea.wlk.loc.drv.debug+@token_debug_filename@.ea.wlk.trn.drv.debug @token_debug_filename@.ea.wlk.all.drv.debug +* copy @token_debug_filename@.am.wlk.aam.drv.debug+@token_debug_filename@.am.wlk.com.drv.debug+@token_debug_filename@.am.wlk.hvy.drv.debug+@token_debug_filename@.am.wlk.exp.drv.debug+@token_debug_filename@.am.wlk.lrf.drv.debug+@token_debug_filename@.am.wlk.loc.drv.debug+@token_debug_filename@.am.wlk.trn.drv.debug @token_debug_filename@.am.wlk.all.drv.debug +* copy @token_debug_filename@.md.wlk.aam.drv.debug+@token_debug_filename@.md.wlk.com.drv.debug+@token_debug_filename@.md.wlk.hvy.drv.debug+@token_debug_filename@.md.wlk.exp.drv.debug+@token_debug_filename@.md.wlk.lrf.drv.debug+@token_debug_filename@.md.wlk.loc.drv.debug+@token_debug_filename@.md.wlk.trn.drv.debug @token_debug_filename@.md.wlk.all.drv.debug +* copy @token_debug_filename@.pm.wlk.aam.drv.debug+@token_debug_filename@.pm.wlk.com.drv.debug+@token_debug_filename@.pm.wlk.hvy.drv.debug+@token_debug_filename@.pm.wlk.exp.drv.debug+@token_debug_filename@.pm.wlk.lrf.drv.debug+@token_debug_filename@.pm.wlk.loc.drv.debug+@token_debug_filename@.pm.wlk.trn.drv.debug @token_debug_filename@.pm.wlk.all.drv.debug +* copy @token_debug_filename@.ev.wlk.aam.drv.debug+@token_debug_filename@.ev.wlk.com.drv.debug+@token_debug_filename@.ev.wlk.hvy.drv.debug+@token_debug_filename@.ev.wlk.exp.drv.debug+@token_debug_filename@.ev.wlk.lrf.drv.debug+@token_debug_filename@.ev.wlk.loc.drv.debug+@token_debug_filename@.ev.wlk.trn.drv.debug @token_debug_filename@.ev.wlk.all.drv.debug -* copy @token_debug_filename@.ea.drv.com.wlk.debug+@token_debug_filename@.ea.drv.hvy.wlk.debug+@token_debug_filename@.ea.drv.exp.wlk.debug+@token_debug_filename@.ea.drv.lrf.wlk.debug+@token_debug_filename@.ea.drv.loc.wlk.debug+@token_debug_filename@.ea.drv.trn.wlk.debug @token_debug_filename@.ea.drv.all.wlk.debug -* copy @token_debug_filename@.am.drv.com.wlk.debug+@token_debug_filename@.am.drv.hvy.wlk.debug+@token_debug_filename@.am.drv.exp.wlk.debug+@token_debug_filename@.am.drv.lrf.wlk.debug+@token_debug_filename@.am.drv.loc.wlk.debug+@token_debug_filename@.am.drv.trn.wlk.debug @token_debug_filename@.am.drv.all.wlk.debug -* copy @token_debug_filename@.md.drv.com.wlk.debug+@token_debug_filename@.md.drv.hvy.wlk.debug+@token_debug_filename@.md.drv.exp.wlk.debug+@token_debug_filename@.md.drv.lrf.wlk.debug+@token_debug_filename@.md.drv.loc.wlk.debug+@token_debug_filename@.md.drv.trn.wlk.debug @token_debug_filename@.md.drv.all.wlk.debug -* copy @token_debug_filename@.pm.drv.com.wlk.debug+@token_debug_filename@.pm.drv.hvy.wlk.debug+@token_debug_filename@.pm.drv.exp.wlk.debug+@token_debug_filename@.pm.drv.lrf.wlk.debug+@token_debug_filename@.pm.drv.loc.wlk.debug+@token_debug_filename@.pm.drv.trn.wlk.debug @token_debug_filename@.pm.drv.all.wlk.debug -* copy @token_debug_filename@.ev.drv.com.wlk.debug+@token_debug_filename@.ev.drv.hvy.wlk.debug+@token_debug_filename@.ev.drv.exp.wlk.debug+@token_debug_filename@.ev.drv.lrf.wlk.debug+@token_debug_filename@.ev.drv.loc.wlk.debug+@token_debug_filename@.ev.drv.trn.wlk.debug @token_debug_filename@.ev.drv.all.wlk.debug +* copy @token_debug_filename@.ea.drv.aam.wlk.debug+@token_debug_filename@.ea.drv.com.wlk.debug+@token_debug_filename@.ea.drv.hvy.wlk.debug+@token_debug_filename@.ea.drv.exp.wlk.debug+@token_debug_filename@.ea.drv.lrf.wlk.debug+@token_debug_filename@.ea.drv.loc.wlk.debug+@token_debug_filename@.ea.drv.trn.wlk.debug @token_debug_filename@.ea.drv.all.wlk.debug +* copy @token_debug_filename@.am.drv.aam.wlk.debug+@token_debug_filename@.am.drv.com.wlk.debug+@token_debug_filename@.am.drv.hvy.wlk.debug+@token_debug_filename@.am.drv.exp.wlk.debug+@token_debug_filename@.am.drv.lrf.wlk.debug+@token_debug_filename@.am.drv.loc.wlk.debug+@token_debug_filename@.am.drv.trn.wlk.debug @token_debug_filename@.am.drv.all.wlk.debug +* copy @token_debug_filename@.md.drv.aam.wlk.debug+@token_debug_filename@.md.drv.com.wlk.debug+@token_debug_filename@.md.drv.hvy.wlk.debug+@token_debug_filename@.md.drv.exp.wlk.debug+@token_debug_filename@.md.drv.lrf.wlk.debug+@token_debug_filename@.md.drv.loc.wlk.debug+@token_debug_filename@.md.drv.trn.wlk.debug @token_debug_filename@.md.drv.all.wlk.debug +* copy @token_debug_filename@.pm.drv.aam.wlk.debug+@token_debug_filename@.pm.drv.com.wlk.debug+@token_debug_filename@.pm.drv.hvy.wlk.debug+@token_debug_filename@.pm.drv.exp.wlk.debug+@token_debug_filename@.pm.drv.lrf.wlk.debug+@token_debug_filename@.pm.drv.loc.wlk.debug+@token_debug_filename@.pm.drv.trn.wlk.debug @token_debug_filename@.pm.drv.all.wlk.debug +* copy @token_debug_filename@.ev.drv.aam.wlk.debug+@token_debug_filename@.ev.drv.com.wlk.debug+@token_debug_filename@.ev.drv.hvy.wlk.debug+@token_debug_filename@.ev.drv.exp.wlk.debug+@token_debug_filename@.ev.drv.lrf.wlk.debug+@token_debug_filename@.ev.drv.loc.wlk.debug+@token_debug_filename@.ev.drv.trn.wlk.debug @token_debug_filename@.ev.drv.all.wlk.debug * copy @token_debug_filename@.ea.wlk.all.wlk.debug+@token_debug_filename@.am.wlk.all.wlk.debug+@token_debug_filename@.md.wlk.all.wlk.debug+@token_debug_filename@.pm.wlk.all.wlk.debug+@token_debug_filename@.ev.wlk.all.wlk.debug @token_debug_filename@wlk.all.wlk.debug * copy @token_debug_filename@.ea.drv.all.wlk.debug+@token_debug_filename@.am.drv.all.wlk.debug+@token_debug_filename@.md.drv.all.wlk.debug+@token_debug_filename@.pm.drv.all.wlk.debug+@token_debug_filename@.ev.drv.all.wlk.debug @token_debug_filename@drv.all.wlk.debug From 2bc82b3e592dcc20943180cbe78595b28cca05a1 Mon Sep 17 00:00:00 2001 From: tedlini Date: Wed, 30 Mar 2022 18:31:23 -0400 Subject: [PATCH 03/26] modified PrepAssign.job to build AAM skims --- model-files/scripts/assign/PrepAssign.job | 243 +++++++++++++--------- 1 file changed, 149 insertions(+), 94 deletions(-) diff --git a/model-files/scripts/assign/PrepAssign.job b/model-files/scripts/assign/PrepAssign.job index ae6006ec8..6a1bea5bc 100644 --- a/model-files/scripts/assign/PrepAssign.job +++ b/model-files/scripts/assign/PrepAssign.job @@ -1,7 +1,7 @@ ; ---------------------------------------------------------------------------------------------------------------- ; ; PrepAssign.job -; +; RSG 2022-01-21 TM1.5 add advanced air mobility mode ; TP+ script to convert the trip lists written out by the CT-RAMP software into origin/destination matrices that ; can be assigned to highway and transit networks. The first step goes through the individual trip list and stores ; trips, by mode, that are relevant for each time interval. A fixed format file, sorted first by origin zone and @@ -15,7 +15,7 @@ ; represented for a handful of travel purposes as described below. ; ; The third and final step reads in the fixed format data from steps one and two and stores the data as a TP+ matrix -; with 23 tables (see Output below for details). Note that the trips are scaled up by the sampling rate -- if the +; with 26 tables (see Output below for details). Note that the trips are scaled up by the sampling rate -- if the ; model was run on only half the synthetic population, then each resulting trip is counted twice, which allows for ; a fully representative quantity of demand to be assigned to the roadway and transit networks. ; @@ -48,10 +48,10 @@ ; (16) trip_mode - travel mode code, where 1 - "Drive alone free", 2 - "Drive alone pay", 3 - "Shared ride 2 free", ; 4 - "Shared ride 2 pay", 5 - "Shared ride 3+ free", 6 - "Shared ride 3+ pay", 7 - "Walk", ; 8 - "Bike", 9 - "Walk to local bus", 10 - "Walk to light rail or ferry", 11 - "Walk to express bus", -; 12 - "Walk to BART", 13 - "Walk to commuter rail", 14 - "Drive to local bus", -; 15 - "Drive to light rail or ferry", 16 - "Drive to express bus", 17 - "Drive to BART", -; 18 - "Drive to commuter rail" -; new jef 2018-11-10 TM1.5 19 - "Taxi" 20 - "TNC" +; 12 - "Walk to BART", 13 - "Walk to commuter rail", 14 - "Walk to advanced air mobility", +; 15 - "Drive to local bus", 16 - "Drive to light rail or ferry", 17 - "Drive to express bus", +; 18 - "Drive to BART", 19 - "Drive to commuter rail", 20 - "Drive to advanced air mobility", +; new jef 2018-11-10 TM1.5 21 - "Taxi" 22 - "TNC" ; (17) tour_mode - which is not the same as travel mode -- same codes as for trip mode. ; (18) tour_category - Type of tour (MANDATORY, INDIVIDUAL_NON_MANDATORY,AT_WORK) ; (19) avAvailable - new for TM1.5 indicating whether an autonomous vehicle is available for trips on tour @@ -75,10 +75,10 @@ ; (14) trip_mode - travel mode code, where 1 - "Drive alone free", 2 - "Drive alone pay", 3 - "Shared ride 2 free", ; 4 - "Shared ride 2 pay", 5 - "Shared ride 3+ free", 6 - "Shared ride 3+ pay", 7 - "Walk", ; 8 - "Bike", 9 - "Walk to local bus", 10 - "Walk to light rail or ferry", 11 - "Walk to express bus", -; 12 - "Walk to BART", 13 - "Walk to commuter rail", 14 - "Drive to local bus", -; 15 - "Drive to light rail or ferry", 16 - "Drive to express bus", 17 - "Drive to BART", -; 18 - "Drive to commuter rail" -; new jef 2018-11-10 TM1.5 19 - "Taxi" 20 - "TNC" +; 12 - "Walk to BART", 13 - "Walk to commuter rail", 14 - "Walk to advanced air mobility", +; 15 - "Drive to local bus", 16 - "Drive to light rail or ferry", 17 - "Drive to express bus", +; 18 - "Drive to BART", 19 - "Drive to commuter rail", 20 - "Drive to advanced air mobility", +; new jef 2018-11-10 TM1.5 21 - "Taxi" 22 - "TNC" ; (15) num_participants - the number of persons traveling on the joint tour ; (16) tour_mode - which is not necessarily the travel mode -- same codes as for trip mode. ; (17) tour_category - Type of tour (JOINT_NON_MANDATORY) @@ -101,22 +101,25 @@ ; (11) Walk, express bus, walk ; (12) Walk, heavy rail, walk ; (13) Walk, commuter rail, walk -; (14) Drive, local bus, walk -; (15) Drive, light rail/ferry, walk -; (16) Drive, express bus, walk -; (17) Drive, heavy rail, walk -; (18) Drive, commuter rail, walk -; (19) Walk, local bus, drive -; (20) Walk, light rail/ferry, drive -; (21) Walk, express bus, drive -; (22) Walk, heavy rail, drive -; (23) Walk, commuter rail, drive -; (24) Drive alone, TNC (includes zero-passenger deadheading trips) -; (25) Shared ride 2, TNC (includes zero-passenger deadheading trips) -; (26) Shared ride 3+, TNC (includes zero-passenger deadheading trips) -; (27) Drive alone, owned autonomous vehicles (includes zero-passenger deadheading trips) -; (28) Shared ride 2, owned autonomous vehicles (includes zero-passenger deadheading trips) -; (29) Shared ride 3+, owned autonomous vehicles (includes zero-passenger deadheading trips) +; (14) Walk, advanced air mobility, walk +; (15) Drive, local bus, walk +; (16) Drive, light rail/ferry, walk +; (17) Drive, express bus, walk +; (18) Drive, heavy rail, walk +; (19) Drive, commuter rail, walk +; (20) Drive, advanced air mobility, walk +; (21) Walk, local bus, drive +; (22) Walk, light rail/ferry, drive +; (23) Walk, express bus, drive +; (24) Walk, heavy rail, drive +; (25) Walk, commuter rail, drive +; (26) Walk, advanced air mobility, drive +; (27) Drive alone, TNC (includes zero-passenger deadheading trips) +; (28) Shared ride 2, TNC (includes zero-passenger deadheading trips) +; (29) Shared ride 3+, TNC (includes zero-passenger deadheading trips) +; (30) Drive alone, owned autonomous vehicles (includes zero-passenger deadheading trips) +; (31) Shared ride 2, owned autonomous vehicles (includes zero-passenger deadheading trips) +; (32) Shared ride 3+, owned autonomous vehicles (includes zero-passenger deadheading trips) ; ; Notes: (1) ; @@ -244,18 +247,21 @@ loop period = 1, 5 array wlk_exp_wlk = @token_zones_by_zones@ array wlk_hvy_wlk = @token_zones_by_zones@ array wlk_com_wlk = @token_zones_by_zones@ + array wlk_aam_wlk = @token_zones_by_zones@ array drv_loc_wlk = @token_zones_by_zones@ array drv_lrf_wlk = @token_zones_by_zones@ array drv_exp_wlk = @token_zones_by_zones@ array drv_hvy_wlk = @token_zones_by_zones@ array drv_com_wlk = @token_zones_by_zones@ + array drv_aam_wlk = @token_zones_by_zones@ array wlk_loc_drv = @token_zones_by_zones@ array wlk_lrf_drv = @token_zones_by_zones@ array wlk_exp_drv = @token_zones_by_zones@ array wlk_hvy_drv = @token_zones_by_zones@ array wlk_com_drv = @token_zones_by_zones@ + array wlk_aam_drv = @token_zones_by_zones@ array taxi = @token_zones_by_zones@ array single_tnc = @token_zones_by_zones@ @@ -264,6 +270,10 @@ loop period = 1, 5 array s2_av = @token_zones_by_zones@ array s3_av = @token_zones_by_zones@ + + + + ; create a unique index for each origin destination pair od_position = @token_zones@ * (ri.orig_taz-1) + ri.dest_taz @@ -323,55 +333,67 @@ loop period = 1, 5 elseif (ri.trip_mode = 13) wlk_com_wlk[od_position] = wlk_com_wlk[od_position] + (1/ri.sampleRate) + ; - walk, advanced air mobility, walk + elseif (ri.trip_mode = 14) + wlk_aam_wlk[od_position] = wlk_aam_wlk[od_position] + (1/ri.sampleRate) + ; - drive, local, walk (outbound) - elseif (ri.trip_mode = 14 && ri.inbound = 0) + elseif (ri.trip_mode = 15 && ri.inbound = 0) drv_loc_wlk[od_position] = drv_loc_wlk[od_position] + (1/ri.sampleRate) ; - drive, light rail/ferry, walk (outbound) - elseif (ri.trip_mode = 15 && ri.inbound = 0) + elseif (ri.trip_mode = 16 && ri.inbound = 0) drv_lrf_wlk[od_position] = drv_lrf_wlk[od_position] + (1/ri.sampleRate) ; - drive, express bus, walk (outbound) - elseif (ri.trip_mode = 16 && ri.inbound = 0) + elseif (ri.trip_mode = 17 && ri.inbound = 0) drv_exp_wlk[od_position] = drv_exp_wlk[od_position] + (1/ri.sampleRate) ; - drive, heavy rail, walk (outbound) - elseif (ri.trip_mode = 17 && ri.inbound = 0) + elseif (ri.trip_mode = 18 && ri.inbound = 0) drv_hvy_wlk[od_position] = drv_hvy_wlk[od_position] + (1/ri.sampleRate) ; - drive, commuter rail, walk (outbound) - elseif (ri.trip_mode = 18 && ri.inbound = 0) + elseif (ri.trip_mode = 19 && ri.inbound = 0) drv_com_wlk[od_position] = drv_com_wlk[od_position] + (1/ri.sampleRate) + ; - drive, advanced air mobility, walk (outbound) + elseif (ri.trip_mode = 20 && ri.inbound = 0) + drv_aam_wlk[od_position] = drv_aam_wlk[od_position] + (1/ri.sampleRate) + ; - walk, local, drive (inbound) - elseif (ri.trip_mode = 14 && ri.inbound = 1) + elseif (ri.trip_mode = 15 && ri.inbound = 1) wlk_loc_drv[od_position] = wlk_loc_drv[od_position] + (1/ri.sampleRate) ; - walk, light rail/ferry, drive (inbound) - elseif (ri.trip_mode = 15 && ri.inbound = 1) + elseif (ri.trip_mode = 16 && ri.inbound = 1) wlk_lrf_drv[od_position] = wlk_lrf_drv[od_position] + (1/ri.sampleRate) ; - walk, express bus, drive (inbound) - elseif (ri.trip_mode = 16 && ri.inbound = 1) + elseif (ri.trip_mode = 17 && ri.inbound = 1) wlk_exp_drv[od_position] = wlk_exp_drv[od_position] + (1/ri.sampleRate) ; - walk, heavy rail, drive (inbound) - elseif (ri.trip_mode = 17 && ri.inbound = 1) + elseif (ri.trip_mode = 18 && ri.inbound = 1) wlk_hvy_drv[od_position] = wlk_hvy_drv[od_position] + (1/ri.sampleRate) ; - walk, commuter rail, drive (inbound) - elseif (ri.trip_mode = 18 && ri.inbound = 1) + elseif (ri.trip_mode = 19 && ri.inbound = 1) wlk_com_drv[od_position] = wlk_com_drv[od_position] + (1/ri.sampleRate) - ; - taxi - elseif (ri.trip_mode = 19) + ; - walk, advanced air mobility, drive (inbound) + elseif (ri.trip_mode = 20 && ri.inbound = 1) + wlk_aam_drv[od_position] = wlk_aam_drv[od_position] + (1/ri.sampleRate) + + ; - taxi + elseif (ri.trip_mode = 21) taxi[od_position] = taxi[od_position] + (1/ri.sampleRate) - ; - TNC single - elseif (ri.trip_mode = 20) + ; - TNC single + elseif (ri.trip_mode = 22) single_tnc[od_position] = single_tnc[od_position] + (1/ri.sampleRate) - elseif (ri.trip_mode = 21) + elseif (ri.trip_mode = 23) shared_tnc[od_position] = shared_tnc[od_position] + (1/ri.sampleRate) ; - drive alone, no value toll @@ -429,16 +451,19 @@ loop period = 1, 5 wlk_exp_wlk[position](20.4lrs), wlk_hvy_wlk[position](20.4lrs), wlk_com_wlk[position](20.4lrs), + wlk_aam_wlk[position](20.4lrs), drv_loc_wlk[position](20.4lrs), drv_lrf_wlk[position](20.4lrs), drv_exp_wlk[position](20.4lrs), drv_hvy_wlk[position](20.4lrs), drv_com_wlk[position](20.4lrs), + drv_aam_wlk[position](20.4lrs), wlk_loc_drv[position](20.4lrs), wlk_lrf_drv[position](20.4lrs), wlk_exp_drv[position](20.4lrs), wlk_hvy_drv[position](20.4lrs), wlk_com_drv[position](20.4lrs), + wlk_aam_drv[position](20.4lrs), taxi[position](20.4lrs), single_tnc[position](20.4lrs), shared_tnc[position](20.4lrs), @@ -500,18 +525,21 @@ loop period = 1, 5 array wlk_exp_wlk = @token_zones_by_zones@ array wlk_hvy_wlk = @token_zones_by_zones@ array wlk_com_wlk = @token_zones_by_zones@ + array wlk_aam_wlk = @token_zones_by_zones@ array drv_loc_wlk = @token_zones_by_zones@ array drv_lrf_wlk = @token_zones_by_zones@ array drv_exp_wlk = @token_zones_by_zones@ array drv_hvy_wlk = @token_zones_by_zones@ array drv_com_wlk = @token_zones_by_zones@ + array drv_aam_wlk = @token_zones_by_zones@ array wlk_loc_drv = @token_zones_by_zones@ array wlk_lrf_drv = @token_zones_by_zones@ array wlk_exp_drv = @token_zones_by_zones@ array wlk_hvy_drv = @token_zones_by_zones@ array wlk_com_drv = @token_zones_by_zones@ + array wlk_aam_drv = @token_zones_by_zones@ array taxi = @token_zones_by_zones@ array single_tnc = @token_zones_by_zones@ @@ -579,55 +607,67 @@ loop period = 1, 5 elseif (ri.trip_mode = 13) wlk_com_wlk[od_position] = wlk_com_wlk[od_position] + (ri.num_participants/ri.sampleRate) + ; - walk, advanced air mobility, walk + elseif (ri.trip_mode = 14) + wlk_aam_wlk[od_position] = wlk_aam_wlk[od_position] + (ri.num_participants/ri.sampleRate) + ; - drive, local, walk (outbound) - elseif (ri.trip_mode = 14 && ri.inbound = 0) + elseif (ri.trip_mode = 15 && ri.inbound = 0) drv_loc_wlk[od_position] = drv_loc_wlk[od_position] + (ri.num_participants/ri.sampleRate) ; - drive, light rail/ferry, walk (outbound) - elseif (ri.trip_mode = 15 && ri.inbound = 0) + elseif (ri.trip_mode = 16 && ri.inbound = 0) drv_lrf_wlk[od_position] = drv_lrf_wlk[od_position] + (ri.num_participants/ri.sampleRate) ; - drive, express bus, walk (outbound) - elseif (ri.trip_mode = 16 && ri.inbound = 0) + elseif (ri.trip_mode = 17 && ri.inbound = 0) drv_exp_wlk[od_position] = drv_exp_wlk[od_position] + (ri.num_participants/ri.sampleRate) ; - drive, heavy rail, walk (outbound) - elseif (ri.trip_mode = 17 && ri.inbound = 0) + elseif (ri.trip_mode = 18 && ri.inbound = 0) drv_hvy_wlk[od_position] = drv_hvy_wlk[od_position] + (ri.num_participants/ri.sampleRate) ; - drive, commuter rail, walk (outbound) - elseif (ri.trip_mode = 18 && ri.inbound = 0) + elseif (ri.trip_mode = 19 && ri.inbound = 0) drv_com_wlk[od_position] = drv_com_wlk[od_position] + (ri.num_participants/ri.sampleRate) + ; - drive, advanced air mobility, walk (outbound) + elseif (ri.trip_mode = 20 && ri.inbound = 0) + drv_aam_wlk[od_position] = drv_aam_wlk[od_position] + (ri.num_participants/ri.sampleRate) + ; - walk, local, drive (inbound) - elseif (ri.trip_mode = 14 && ri.inbound = 1) + elseif (ri.trip_mode = 15 && ri.inbound = 1) wlk_loc_drv[od_position] = wlk_loc_drv[od_position] + (ri.num_participants/ri.sampleRate) ; - walk, light rail/ferry, drive (inbound) - elseif (ri.trip_mode = 15 && ri.inbound = 1) + elseif (ri.trip_mode = 16 && ri.inbound = 1) wlk_lrf_drv[od_position] = wlk_lrf_drv[od_position] + (ri.num_participants/ri.sampleRate) ; - walk, express bus, drive (inbound) - elseif (ri.trip_mode = 16 && ri.inbound = 1) + elseif (ri.trip_mode = 17 && ri.inbound = 1) wlk_exp_drv[od_position] = wlk_exp_drv[od_position] + (ri.num_participants/ri.sampleRate) ; - walk, heavy rail, drive (inbound) - elseif (ri.trip_mode = 17 && ri.inbound = 1) + elseif (ri.trip_mode = 18 && ri.inbound = 1) wlk_hvy_drv[od_position] = wlk_hvy_drv[od_position] + (ri.num_participants/ri.sampleRate) ; - walk, commuter rail, drive (inbound) - elseif (ri.trip_mode = 18 && ri.inbound = 1) + elseif (ri.trip_mode = 19 && ri.inbound = 1) wlk_com_drv[od_position] = wlk_com_drv[od_position] + (ri.num_participants/ri.sampleRate) + ; - walk, advanced air mobility, drive (inbound) + elseif (ri.trip_mode = 20 && ri.inbound = 1) + wlk_aam_drv[od_position] = wlk_aam_drv[od_position] + (ri.num_participants/ri.sampleRate) + ; - taxi - elseif (ri.trip_mode = 19) + elseif (ri.trip_mode = 21) taxi[od_position] = taxi[od_position] + (ri.num_participants/ri.sampleRate) ; - TNC single - elseif (ri.trip_mode = 20) + elseif (ri.trip_mode = 22) single_tnc[od_position] = single_tnc[od_position] + (ri.num_participants/ri.sampleRate) - elseif (ri.trip_mode = 21) + elseif (ri.trip_mode = 23) shared_tnc[od_position] = shared_tnc[od_position] + (ri.num_participants/ri.sampleRate) ; - drive alone, no value toll @@ -685,16 +725,19 @@ loop period = 1, 5 wlk_exp_wlk[position](20.4lrs), wlk_hvy_wlk[position](20.4lrs), wlk_com_wlk[position](20.4lrs), + wlk_aam_wlk[position](20.4lrs), drv_loc_wlk[position](20.4lrs), drv_lrf_wlk[position](20.4lrs), drv_exp_wlk[position](20.4lrs), drv_hvy_wlk[position](20.4lrs), drv_com_wlk[position](20.4lrs), + drv_aam_wlk[position](20.4lrs), wlk_loc_drv[position](20.4lrs), wlk_lrf_drv[position](20.4lrs), wlk_exp_drv[position](20.4lrs), wlk_hvy_drv[position](20.4lrs), wlk_com_drv[position](20.4lrs), + wlk_aam_drv[position](20.4lrs), taxi[position](20.4lrs), single_tnc[position](20.4lrs), shared_tnc[position](20.4lrs), @@ -729,11 +772,11 @@ loop period = 1, 5 ; write out a matrix that combines the individual and joint trips for assignment - fileo mato[1] = main\trips@token_period@_no_zpv.tpp, mo = 1-29, name = da, datoll, sr2, sr2toll, sr3, sr3toll, + fileo mato[1] = main\trips@token_period@_no_zpv.tpp, mo = 1-32, name = da, datoll, sr2, sr2toll, sr3, sr3toll, walk, bike, - wlk_loc_wlk, wlk_lrf_wlk, wlk_exp_wlk, wlk_hvy_wlk, wlk_com_wlk, - drv_loc_wlk, drv_lrf_wlk, drv_exp_wlk, drv_hvy_wlk, drv_com_wlk, - wlk_loc_drv, wlk_lrf_drv, wlk_exp_drv, wlk_hvy_drv, wlk_com_drv, + wlk_loc_wlk, wlk_lrf_wlk, wlk_exp_wlk, wlk_hvy_wlk, wlk_com_wlk, wlk_aam_wlk, + drv_loc_wlk, drv_lrf_wlk, drv_exp_wlk, drv_hvy_wlk, drv_com_wlk, drv_aam_wlk, + wlk_loc_drv, wlk_lrf_drv, wlk_exp_drv, wlk_hvy_drv, wlk_com_drv, wlk_aam_drv, da_tnc, s2_tnc, s3_tnc, da_av, s2_av, s3_av ; load lookup values for factoring taxi and TNC modes @@ -785,53 +828,62 @@ loop period = 1, 5 ; walk, commuter rail, walk mw[13] = (mi.1.13 + mi.2.13) + mi.3.wlk_com_wlk + ; walk, advanced air mobility, walk (no trips to/from HSR) + mw[14] = (mi.1.14 + mi.2.14) + ; drive, local bus, walk - mw[14] = (mi.1.14 + mi.2.14) + mi.3.drv_loc_wlk + mw[15] = (mi.1.15 + mi.2.15) + mi.3.drv_loc_wlk ; drive, light rail/ferry, walk - mw[15] = (mi.1.15 + mi.2.15) + mi.3.drv_lrf_wlk + mw[16] = (mi.1.16 + mi.2.16) + mi.3.drv_lrf_wlk ; drive, express bus, walk - mw[16] = (mi.1.16 + mi.2.16) + mi.3.drv_exp_wlk + mw[17] = (mi.1.17 + mi.2.17) + mi.3.drv_exp_wlk ; drive, heavy rail, walk - mw[17] = (mi.1.17 + mi.2.17) + mi.3.drv_hvy_wlk + mw[18] = (mi.1.18 + mi.2.18) + mi.3.drv_hvy_wlk ; drive, commuter rail, walk - mw[18] = (mi.1.18 + mi.2.18) + mi.3.drv_com_wlk + mw[19] = (mi.1.19 + mi.2.19) + mi.3.drv_com_wlk + + ; drive, advanced air mobility, walk (no trips to/from HSR) + mw[20] = (mi.1.20 + mi.2.20) ; walk, local bus, drive - mw[19] = (mi.1.19 + mi.2.19) + mi.3.wlk_loc_drv + mw[21] = (mi.1.21 + mi.2.21) + mi.3.wlk_loc_drv ; walk, light rail/ferry, drive - mw[20] = (mi.1.20 + mi.2.20) + mi.3.wlk_lrf_drv + mw[22] = (mi.1.22 + mi.2.22) + mi.3.wlk_lrf_drv ; walk, express bus, drive - mw[21] = (mi.1.21 + mi.2.21) + mi.3.wlk_exp_drv + mw[23] = (mi.1.23 + mi.2.23) + mi.3.wlk_exp_drv ; walk, heavy rail, drive - mw[22] = (mi.1.22 + mi.2.22) + mi.3.wlk_hvy_drv + mw[24] = (mi.1.24 + mi.2.24) + mi.3.wlk_hvy_drv ; walk, commuter rail, drive - mw[23] = (mi.1.23 + mi.2.23) + mi.3.wlk_com_drv + mw[25] = (mi.1.25 + mi.2.25) + mi.3.wlk_com_drv + + ; walk, advanced air mobility, drive (no trips to/from HSR) + mw[26] = (mi.1.26 + mi.2.26) ; da_tnc single tnc shared tnc - mw[24] = ((mi.1.25 + mi.2.25) * occ_factors(2, 1) + (mi.1.26 + mi.2.26) * occ_factors(3, 1)) + mw[27] = ((mi.1.28 + mi.2.28) * occ_factors(2, 1) + (mi.1.29 + mi.2.29) * occ_factors(3, 1)) ; s2_tnc single tnc shared tnc - mw[25] = ((mi.1.25 + mi.2.25) * occ_factors(2, 2) + (mi.1.26 + mi.2.26) * occ_factors(3, 2)) + mw[28] = ((mi.1.28 + mi.2.28) * occ_factors(2, 2) + (mi.1.29 + mi.2.29) * occ_factors(3, 2)) ; s3_tnc single tnc shared tnc - mw[26] = ((mi.1.25 + mi.2.25) * occ_factors(2, 3) + (mi.1.26 + mi.2.26) * occ_factors(3, 3)) + mw[29] = ((mi.1.28 + mi.2.28) * occ_factors(2, 3) + (mi.1.29 + mi.2.29) * occ_factors(3, 3)) ; da_av - mw[27] = (mi.1.27+mi.2.27) + mw[30] = (mi.1.30+mi.2.30) ; s2_av - mw[28] = (mi.1.28+mi.2.28) + mw[31] = (mi.1.31+mi.2.31) ; s3_av - mw[29] = (mi.1.29+mi.2.29) + mw[32] = (mi.1.32+mi.2.32) endrun ; step four: create zero passenger trips @@ -854,11 +906,11 @@ loop period = 1, 5 filei mati[1] = main\trips@token_period@_no_zpv.tpp filei mati[2] = main\trips@token_period@_zpv.tpp - fileo mato[1] = main\trips@token_period@.tpp, mo = 1-29, name = da, datoll, sr2, sr2toll, sr3, sr3toll, + fileo mato[1] = main\trips@token_period@.tpp, mo = 1-32, name = da, datoll, sr2, sr2toll, sr3, sr3toll, walk, bike, - wlk_loc_wlk, wlk_lrf_wlk, wlk_exp_wlk, wlk_hvy_wlk, wlk_com_wlk, - drv_loc_wlk, drv_lrf_wlk, drv_exp_wlk, drv_hvy_wlk, drv_com_wlk, - wlk_loc_drv, wlk_lrf_drv, wlk_exp_drv, wlk_hvy_drv, wlk_com_drv, + wlk_loc_wlk, wlk_lrf_wlk, wlk_exp_wlk, wlk_hvy_wlk, wlk_com_wlk, wlk_aam_wlk, + drv_loc_wlk, drv_lrf_wlk, drv_exp_wlk, drv_hvy_wlk, drv_com_wlk, drv_aam_wlk, + wlk_loc_drv, wlk_lrf_drv, wlk_exp_drv, wlk_hvy_drv, wlk_com_drv, wlk_aam_drv, da_tnc, s2_tnc, s3_tnc, da_av, s2_av, s3_av @@ -875,22 +927,25 @@ loop period = 1, 5 mw[11] = mi.1.wlk_exp_wlk mw[12] = mi.1.wlk_hvy_wlk mw[13] = mi.1.wlk_com_wlk - mw[14] = mi.1.drv_loc_wlk - mw[15] = mi.1.drv_lrf_wlk - mw[16] = mi.1.drv_exp_wlk - mw[17] = mi.1.drv_hvy_wlk - mw[18] = mi.1.drv_com_wlk - mw[19] = mi.1.wlk_loc_drv - mw[20] = mi.1.wlk_lrf_drv - mw[21] = mi.1.wlk_exp_drv - mw[22] = mi.1.wlk_hvy_drv - mw[23] = mi.1.wlk_com_drv - mw[24] = mi.1.da_tnc + mi.2.zpv_tnc - mw[25] = mi.1.s2_tnc - mw[26] = mi.1.s3_tnc - mw[27] = mi.1.da_av + mi.2.zpv_av - mw[28] = mi.1.s2_av - mw[29] = mi.1.s3_av + mw[14] = mi.1.wlk_aam_wlk + mw[15] = mi.1.drv_loc_wlk + mw[16] = mi.1.drv_lrf_wlk + mw[17] = mi.1.drv_exp_wlk + mw[18] = mi.1.drv_hvy_wlk + mw[19] = mi.1.drv_com_wlk + mw[20] = mi.1.drv_aam_wlk + mw[21] = mi.1.wlk_loc_drv + mw[22] = mi.1.wlk_lrf_drv + mw[23] = mi.1.wlk_exp_drv + mw[24] = mi.1.wlk_hvy_drv + mw[25] = mi.1.wlk_com_drv + mw[26] = mi.1.wlk_aam_drv + mw[27] = mi.1.da_tnc + mi.2.zpv_tnc + mw[28] = mi.1.s2_tnc + mw[29] = mi.1.s3_tnc + mw[30] = mi.1.da_av + mi.2.zpv_av + mw[31] = mi.1.s2_av + mw[32] = mi.1.s3_av endrun From 3882c344d8840056fa4bd161fcaeb0d2e1b62f34 Mon Sep 17 00:00:00 2001 From: tedlini Date: Wed, 30 Mar 2022 18:33:18 -0400 Subject: [PATCH 04/26] modified TransitAssign.job to build AAM skims --- model-files/scripts/assign/TransitAssign.job | 131 ++++++++++++------- 1 file changed, 83 insertions(+), 48 deletions(-) diff --git a/model-files/scripts/assign/TransitAssign.job b/model-files/scripts/assign/TransitAssign.job index ba76c0bb8..697114933 100644 --- a/model-files/scripts/assign/TransitAssign.job +++ b/model-files/scripts/assign/TransitAssign.job @@ -1,25 +1,25 @@ ; ---------------------------------------------------------------------------------------------------------------- ; ; TransitAssign.job -; +; RSG 2022-01-21 TM1.5 add advanced air mobility mode ; TP+ script to perform a transit assignment. A total of 75 assignments are performed, accounting for five time ; periods, three access/egress combinations, and five line-haul mode combinations. The script first loops ; through five time periods, which are: (a) early AM, before 6 am; (b) AM peak period, 6 am to 10 am; (c) midday, ; 10 am to 3 pm; (d) PM peak period, 3 pm to 7 pm; and, (e) evening, after 7 pm. Next the script loops through ; three access/egress combinations, which are: walk/transit/walk; drive/transit/walk; and walk/transit/drive. -; Next, the script loops through six line-haul mode combinations, which are: (a) long-haul premium or commuter -; rail; (b) medium-haul premium or heavy rail (BART) (c) medium-haul basic or express bus; (d) short-haul premium -; or light rail; (e) short-haul basic or local bus. +; Next, the script loops through six line-haul mode combinations, which are: (a) long-haul advanced air mobility; +; (b) long-haul premium or commuter rail; (c) medium-haul premium or heavy rail (BART) (d) medium-haul basic or +; express bus; (e) short-haul premium or light rail; (f) short-haul basic or local bus. ; ; Please note that ferry is included in the short-haul premium or light rail line-haul options. This was done to ; reduce the number of skims that need to be created. Because light rail and ferry do not compete with each other, ; travelers in corridors with light rail are presented with the light rail choice and travelers in corridors with ; ferry are presented with the ferry choice. ; -; The hierarchy used to create transit path options is as follows: (1) long-haul premium; (2) medium-haul premium; -; (3) medium-haul basic; (4) short-haul premium; and, (5) short-haul basic. Using more traditional mode names: -; (1) commuter rail; (2) heavy rail; (3) express bus; (4) light rail/ferry; (5) local bus. All modes lower than -; the line-haul mode are made available when assigning the line-haul mode path, in an effort to create a set of +; The hierarchy used to create transit path options is as follows: (1) advanced air mobility; (2) long-haul premium; +; (3) medium-haul premium; (4) medium-haul basic; (5) short-haul premium; and, (6) short-haul basic. Using more traditional mode names: +; (1) advaned air mobility; (2) commuter rail; (3) heavy rail; (4) express bus; (5) light rail/ferry; (6) local bus. +; All modes lower than the line-haul mode are made available when assigning the line-haul mode path, in an effort to create a set of ; reasonable transit paths for the mode choice model to assess for each traveler. ; ; The transit network coding uses the following mode codes: @@ -38,6 +38,7 @@ ; (110) through (119) light rail, coded by provider; ; (120) through (129) heavy rail, coded by provider; ; (130) through (139) commuter rail, coded by provider. +; (140) advanced air mobility. ; ; Input: (A) A trip table with travel segmented into the following origin-destination trips: ; (1) Drive alone non-value-toll paying @@ -53,21 +54,24 @@ ; (11) Walk - light rail/ferry - walk ; (12) Walk - heavy rail - walk ; (13) Walk - commuter rail - walk -; (14) Drive - local bus - walk -; (15) Drive - express bus - walk -; (16) Drive - light rail/ferry - walk -; (17) Drive - heavy rail - walk -; (18) Drive - commuter rail - walk -; (19) Walk - local bus - drive -; (20) Walk - express bus - drive -; (21) Walk - light rail/ferry - drive -; (22) Walk - heavy rail - drive -; (23) Walk - commuter rail - drive +; (14) Walk - advanced air mobility - walk +; (15) Drive - local bus - walk +; (16) Drive - express bus - walk +; (17) Drive - light rail/ferry - walk +; (18) Drive - heavy rail - walk +; (19) Drive - commuter rail - walk +; (20) Drive - advanced air mobility - walk +; (21) Walk - local bus - drive +; (22) Walk - express bus - drive +; (23) Walk - light rail/ferry - drive +; (24) Walk - heavy rail - drive +; (25) Walk - commuter rail - drive +; (26) Walk - advanced air mobility - drive ; (B) A .block file listing all of the origin/destination fare files for transit services that ; charge o/d fares (transit_faremat.block); ; (C) Origin/destination fare files listed in the .block file above (.far files); ; (D) A .far file setting fares to links as necessary to account for all the odd fares in the bay area (Farelinks.far); -; (E) A .far file setting the transfer fares for all the 139 by 139 modal interchanges (xfare.far); +; (E) A .far file setting the transfer fares for all the 140 by 140 modal interchanges (xfare.far); ; (F) A transit line file and a transit link file ; (G) Numerous support link files that connect zones to transit stations via walking or bicycling (*transit_suplinks*.dat); ; (I) A .block file that lists commands to combine headways for all line-haul modes when the difference in path time @@ -171,9 +175,9 @@ loop period = 1, 5 endif ; line haul loop - loop path = 1, 5 - - ; commuter rail or long-haul premium + loop path = 1, 6 + + ; advanced air mobility if (path = 1) ; drive access/egress links to this mode (';' means no) @@ -182,7 +186,8 @@ loop period = 1, 5 token_drivelinks_light_rail = ';' token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ';' - token_drivelinks_commuter_rail = ' ' + token_drivelinks_commuter_rail = ';' + token_drivelinks_advanced_air_mobility = ' ' ; no KNR access links to local bus token_bus_acclinks_KNR = ';' @@ -191,14 +196,39 @@ loop period = 1, 5 token_skipmodes = '; do not skip any modes for this path' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0, 1*1.0' + + ; three-letter path name + token_path = 'aam' + + ; commuter rail or long-haul premium + elseif (path = 2) + + ; drive access/egress links to this mode (';' means no) + ; allow higher-class PNRs to be read in case of shared lots + token_drivelinks_express_bus = ';' + token_drivelinks_light_rail = ';' + token_drivelinks_ferry = ';' + token_drivelinks_heavy_rail = ';' + token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' + + ; no KNR access links to local bus + token_bus_acclinks_KNR = ';' + + ; advanced air mobility and commuter rail excluded from this path + token_skipmodes = 'skipmodes = 140' + + ; mode-specific perceived time factors + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.1, 10*1.0, 1*1.5' ; three-letter path name token_path = 'com' ; heavy rail or medium-haul premium - elseif (path = 2) + elseif (path = 3) ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -207,22 +237,23 @@ loop period = 1, 5 token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; no KNR access links to local bus token_bus_acclinks_KNR = ';' - ; commuter rail excluded from this path - token_skipmodes = 'skipmodes = 130-139' + ; advanced air mobility and commuter rail excluded from this path + token_skipmodes = 'skipmodes = 140,130-139' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.0, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.2, 10*1.1, 10*1.1, 10*1.0, 10*1.5, 1*1.5' ; three-letter path name token_path = 'hvy' ; express bus or medium-haul basic - elseif (path = 3) + elseif (path = 4) ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -231,23 +262,24 @@ loop period = 1, 5 token_drivelinks_ferry = ';' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ';' - ; commuter rail and heavy rail excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139' + ; advanced air mobility, commuter rail and heavy rail excluded from this path + token_skipmodes = 'skipmodes = 140,130-139,120-140' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.0, 10*1.5, 10*1.5, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.0, 10*1.5, 10*1.5, 10*1.5, 10*1.5, 1*1.5' ; three-letter path name token_path = 'exp' ; light rail (or ferry) or short-haul premium - elseif (path = 4) + elseif (path = 5) ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -256,22 +288,23 @@ loop period = 1, 5 token_drivelinks_ferry = ' ' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; no KNR access links to local bus token_bus_acclinks_KNR = ';' - ; commuter rail, heavy rail, and express bus excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139,80-99' + ; advanced air mobility, commuter rail, heavy rail, and express bus excluded from this path + token_skipmodes = 'skipmodes = 140-140,130-139,120-139,80-99' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.5, 10*1.0, 10*1.0, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.5, 20*1.5, 10*1.0, 10*1.0, 10*1.5, 10*1.5, 1*1.5' ; three-letter path name token_path = 'lrf' ; local bus or short-haul basic - elseif (path = 5) + elseif (path = 6) ; drive access/egress links to this mode (';' means no) ; allow higher-class PNRs to be read in case of shared lots @@ -280,16 +313,17 @@ loop period = 1, 5 token_drivelinks_ferry = ' ' token_drivelinks_heavy_rail = ' ' token_drivelinks_commuter_rail = ' ' + token_drivelinks_advanced_air_mobility = ' ' ; KNR access links to local bus token_bus_acclinks_KNR = ' ' - ; commuter rail, heavy rail, express bus, light rail, and ferry excluded from this path - token_skipmodes = 'skipmodes = 130-139,120-139,80-99,100-119' + ; advanced air mobility, commuter rail, heavy rail, express bus, light rail, and ferry excluded from this path + token_skipmodes = 'skipmodes = 140-140,130-139,120-139,80-99,100-119' ; mode-specific perceived time factors - ; support loc bus exp bus ferry lt rail hvy rail com rail - token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.5, 10*1.5, 10*1.5, 10*1.5, 10*1.5' + ; support loc bus exp bus ferry lt rail hvy rail com rail air mobility + token_modefac = 'modefac = 9*2.0, 70*1.0, 20*1.5, 10*1.5, 10*1.5, 10*1.5, 10*1.5, 1*1.5' ; three-letter path name token_path = 'loc' @@ -308,7 +342,7 @@ loop period = 1, 5 ; use the highway network with the computed bus times filei neti = @token_period@_transit_background.net - ; read in the 23-table matrix created by prepAssign.job (see header for content details) + ; read in the 26-table matrix created by prepAssign.job (see header for content details) filei mati = "@token_model_dir@\main\trips@token_period@.tpp" ; path parameter: do not list (write out) all of the subsequent input @@ -344,6 +378,7 @@ loop period = 1, 5 @token_drivelinks_ferry@ read file = @token_period@_transit_suplinks_ferry.dat @token_drivelinks_heavy_rail@ read file = @token_period@_transit_suplinks_heavy_rail.dat @token_drivelinks_commuter_rail@ read file = @token_period@_transit_suplinks_commuter_rail.dat + @token_drivelinks_advanced_air_mobility@ read file = @token_period@_transit_suplinks_advanced_air_mobility.dat ; read in the generated KNR links for local bus @token_bus_acclinks_KNR@ READ FILE = @token_period@_bus_acclinks_KNR.DAT @@ -378,10 +413,10 @@ loop period = 1, 5 @token_boardpen@ ; perceived time factors: initial wait time is equivalent to 2.8 minutes of ride time for modes 10 through 255 - factor iwaitfac = 9*0, 130*2.8 + factor iwaitfac = 9*0, 131*2.8 ; perceived time factors: transfer wait time is equivalent to 2.8 minutes of ride time for modes 1 through 255 - factor xwaitfac = 139*2.8 + factor xwaitfac = 140*2.8 ; use token_skipmodes to remove modes from the network per the hierarchy @token_skipmodes@ From e231ad4e4a6d2552486ae22485239424eae6df4d Mon Sep 17 00:00:00 2001 From: Joel Freedman Date: Wed, 30 Mar 2022 18:37:02 -0700 Subject: [PATCH 05/26] Modified tour and trip mode choice UECs to add advanced air mobility mode. Changed MtcModelStructure class to recode modes according to new uecs. First commit, will check for bugs! --- .../com/pb/mtc/ctramp/MtcModelStructure.java | 10 +++++----- model-files/model/ModeChoice.xls | Bin 1172992 -> 1254912 bytes model-files/model/TripModeChoice.xls | Bin 1160704 -> 1265152 bytes 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/projects/mtc/src/java/com/pb/mtc/ctramp/MtcModelStructure.java b/core/projects/mtc/src/java/com/pb/mtc/ctramp/MtcModelStructure.java index d6e134814..8592bcf00 100644 --- a/core/projects/mtc/src/java/com/pb/mtc/ctramp/MtcModelStructure.java +++ b/core/projects/mtc/src/java/com/pb/mtc/ctramp/MtcModelStructure.java @@ -138,13 +138,13 @@ public class MtcModelStructure extends ModelStructure { public static final int[] WALK_ALTS = { 7 }; public static final int[] BIKE_ALTS = { 8 }; public static final int[] NON_MOTORIZED_ALTS = { 7, 8 }; - public static final int[] TRANSIT_ALTS = { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 }; + public static final int[] TRANSIT_ALTS = { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,20 }; public static final int[] WALK_LOCAL_ALTS = { 9 }; - public static final int[] WALK_PREMIUM_ALTS = { 10, 11, 12, 13 }; - public static final int[] DRIVE_TRANSIT_ALTS = { 14, 15, 16, 17, 18 }; + public static final int[] WALK_PREMIUM_ALTS = { 10, 11, 12, 13, 14 }; + public static final int[] DRIVE_TRANSIT_ALTS = { 15, 16, 17, 18, 19, 20 }; public static final int[] SCHOOL_BUS_ALTS = {}; - public static final int[] RIDE_HAIL_ALTS = {19, 20, 21}; - public static final int MAXIMUM_TOUR_MODE_ALT_INDEX = 21; + public static final int[] RIDE_HAIL_ALTS = {21, 22, 23}; + public static final int MAXIMUM_TOUR_MODE_ALT_INDEX = 23; public static final int NUM_INCOME_CATEGORIES = 4; diff --git a/model-files/model/ModeChoice.xls b/model-files/model/ModeChoice.xls index 214d2004887a8bb95400e08b93326878b2b079ab..bc0181bbae771eed0b1cf47b9f82969428d2877c 100644 GIT binary patch literal 1254912 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