Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimum value toll #71

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft
3 changes: 3 additions & 0 deletions model-files/scripts/block/hwyParam.block
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,6 @@ Means_Based_Tolling_Q1Factor = xx.xx ; a factor between 0 to 1 indicati
Means_Based_Tolling_Q2Factor = xx.xx ; a factor between 0 to 1 indicating the toll discount by income group
Means_Based_Cordon_Tolling_Q1Factor = xx.xx ; a factor between 0 to 1 indicating the cordon toll discount by income group
Means_Based_Cordon_Tolling_Q2Factor = xx.xx ; a factor between 0 to 1 indicating the cordon toll discount by income group

; set by RuntimeConfiguration.py -- Minimum value toll, in 2000 cents
min_vtoll = xx.xx
9 changes: 9 additions & 0 deletions model-files/scripts/preprocess/RuntimeConfiguration.py
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,15 @@ def config_auto_opcost(params_filename, params_contents, for_logsums, replacemen
filepath = os.path.join("CTRAMP","runtime","logsums.properties")
replacements[filepath]["(\nAuto.Operating.Cost[ \t]*=[ \t]*)(\S*)"] = r"\g<1>%.2f" % auto_opc


# find the minimum value toll
MinimumValueToll = float(get_property(params_filename, params_contents, "min_vtoll"))

# put them into the CTRAMP\scripts\block\hwyParam.block
filepath = os.path.join("CTRAMP","scripts","block","hwyParam.block")
replacements[filepath]["(\nmin_vtoll[ \t]*=[ \t]*)(\S*)"] = r"\g<1>%.2f" % MinimumValueToll


# put it into the UECs
config_uec("%.2f" % auto_opc)

Expand Down
68 changes: 60 additions & 8 deletions model-files/scripts/skims/HwySkims.job
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,9 @@ loop period = 1, 5

; give each period thread more threads to work with
;DistributeIntrastep processid = 'ctramp', processlist = 1-4, commpath = '%COMMPATH%', saveprn = f

; block file containing highway parameters
read file=ctramp\scripts\block\hwyparam.block

; drive alone skim
mati[1] = skims\DA_@token_period@.tpp
Expand Down Expand Up @@ -405,7 +408,14 @@ loop period = 1, 5
mw[4] = mi.1.TOLLTIMEDA
mw[5] = mi.1.TOLLDISTDA
mw[6] = mi.1.TOLLBTOLLDA
mw[7] = mi.1.TOLLVTOLLDA
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.1.TOLLVTOLLDA[j]=0)
mw[7][j] = 0
else
mw[7][j] = max(mi.1.TOLLVTOLLDA[j], min_vtoll)
endif
endjloop

; shared ride 2
mw[8] = mi.2.TIMES2
Expand All @@ -414,16 +424,30 @@ loop period = 1, 5
mw[11] = mi.2.TOLLTIMES2
mw[12] = mi.2.TOLLDISTS2
mw[13] = mi.2.TOLLBTOLLS2
mw[14] = mi.2.TOLLVTOLLS2

; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.2.TOLLVTOLLS2[j]=0)
mw[14][j] = 0
else
mw[14][j] = max(mi.2.TOLLVTOLLS2[j], min_vtoll)
endif
endjloop

; shared ride 3+
mw[15] = mi.3.TIMES3
mw[16] = mi.3.DISTS3
mw[17] = mi.3.BTOLLS3
mw[18] = mi.3.TOLLTIMES3
mw[19] = mi.3.TOLLDISTS3
mw[20] = mi.3.TOLLBTOLLS3
mw[21] = mi.3.TOLLVTOLLS3
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.3.TOLLVTOLLS3[j]=0)
mw[21][j] = 0
else
mw[21][j] = max(mi.3.TOLLVTOLLS3[j], min_vtoll)
endif
endjloop

; very small trucks
mw[22] = mi.4.TIMEVSM
Expand All @@ -432,7 +456,14 @@ loop period = 1, 5
mw[25] = mi.4.TOLLTIMEVSM
mw[26] = mi.4.TOLLDISTVSM
mw[27] = mi.4.TOLLBTOLLVSM
mw[28] = mi.4.TOLLVTOLLVSM
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.4.TOLLVTOLLVSM[j]=0)
mw[28][j] = 0
else
mw[28][j] = max(mi.4.TOLLVTOLLVSM[j], min_vtoll)
endif
endjloop

; small trucks
mw[29] = mi.5.TIMESML
Expand All @@ -441,7 +472,14 @@ loop period = 1, 5
mw[32] = mi.5.TOLLTIMESML
mw[33] = mi.5.TOLLDISTSML
mw[34] = mi.5.TOLLBTOLLSML
mw[35] = mi.5.TOLLVTOLLSML
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.5.TOLLVTOLLSML[j]=0)
mw[35][j] = 0
else
mw[35][j] = max(mi.5.TOLLVTOLLSML[j], min_vtoll)
endif
endjloop

; medium trucks
mw[36] = mi.6.TIMEMED
Expand All @@ -450,7 +488,14 @@ loop period = 1, 5
mw[39] = mi.6.TOLLTIMEMED
mw[40] = mi.6.TOLLDISTMED
mw[41] = mi.6.TOLLBTOLLMED
mw[42] = mi.6.TOLLVTOLLMED
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.6.TOLLVTOLLMED[j]=0)
mw[42][j] = 0
else
mw[42][j] = max(mi.6.TOLLVTOLLMED[j], min_vtoll)
endif
endjloop

; large trucks
mw[43] = mi.7.TIMELRG
Expand All @@ -459,7 +504,14 @@ loop period = 1, 5
mw[46] = mi.7.TOLLTIMELRG
mw[47] = mi.7.TOLLDISTLRG
mw[48] = mi.7.TOLLBTOLLLRG
mw[49] = mi.7.TOLLVTOLLLRG
; set minimum toll, except when vtoll is 0 as it indicates no toll path
jloop
if (mi.7.TOLLVTOLLLRG[j]=0)
mw[49][j] = 0
else
mw[49][j] = max(mi.7.TOLLVTOLLLRG[j], min_vtoll)
endif
endjloop

endrun

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,3 +196,17 @@ Free_Parking_Eligibility_OnOff = -9999.0
# Note HSR intraregional travel represented with network project
# Set to 0 to leave trips ON, set to 1 to DISABLE
HSR_Interregional_Disable = 0


# Minimum toll
# Existing express lanes in real life charge users a minimum toll, because operators need to recover the costs of operations
# From what we know, the minimum tolls in the region are as follows:
# Express lanes operated by MTC (in current prices): $0.50
# I-580 opened in Feb 2016 operated by ACTC (in current prices): $0.30 (2016, in our 2015 network); $0.50 (since 2017)
# Legacy I-680 operated by ACTC (in current prices): <$0.50 (2015); $0.50 (since 2017)
# Express lanes operated by VTA (in current prices): $0.30 (always)
# Caveat: The current model implementation accept only one minimum toll for all express lanes in the region

# 50 cents in 2023$ = 50 cents/1.87 = 26.74 cents in 2000$
# based on inflation assumptions stated here: https://github.com/BayAreaMetro/modeling-website/wiki/InflationAssumptions
min_vtoll = 26.74
Original file line number Diff line number Diff line change
Expand Up @@ -185,3 +185,20 @@ Free_Parking_Eligibility_OnOff = 0.0
# Note HSR intraregional travel represented with network project
# Set to 0 to leave trips ON, set to 1 to DISABLE
HSR_Interregional_Disable = 0


# Minimum toll
# Existing express lanes in real life charge users a minimum toll, because operators need to recover the costs of operations
# Asana task: https://app.asana.com/0/0/1206460470095669/f
# From information we gathered, the minimum tolls in the region are as follows:
# Express lanes operated by MTC (in current prices): $0.50
# I-580 opened in Feb 2016 operated by ACTC (in current prices): $0.30 (2016, in our 2015 network); $0.50 (since 2017)
# Legacy I-680 operated by ACTC (in current prices): <$0.50 (2015); $0.50 (since 2017)
# Express lanes operated by VTA (in current prices): $0.30 (always)

# In summary, in 2023 the minimum toll is 50 cents for MTC and ACTC vs 30 cents for VTA in the real world
# However, the current model implementation accept only one minimum toll for all express lanes in the region
# Since more operators had 50 cents as the minimum, this is the modeling assumption for 2023
# 50 cents in 2023$ = 50 cents/1.87 = 26.74 cents in 2000$
# based on inflation assumptions stated here: https://github.com/BayAreaMetro/modeling-website/wiki/InflationAssumptions
min_vtoll = 26.74
16 changes: 16 additions & 0 deletions utilities/RTP/config_RTP2025/params_2035_IPA.properties
Original file line number Diff line number Diff line change
Expand Up @@ -196,3 +196,19 @@ Free_Parking_Eligibility_OnOff = -9999.0
# Note HSR intraregional travel represented with network project
# Set to 0 to leave trips ON, set to 1 to DISABLE
HSR_Interregional_Disable = 0

# Minimum toll
# Existing express lanes in real life charge users a minimum toll, because operators need to recover the costs of operations
# From what we know, the minimum tolls in the region are as follows:
# Express lanes operated by MTC (in current prices): $0.50
# I-580 opened in Feb 2016 operated by ACTC (in current prices): $0.30 (2016, in our 2015 network); $0.50 (since 2017)
# Legacy I-680 operated by ACTC (in current prices): <$0.50 (2015); $0.50 (since 2017)
# Express lanes operated by VTA (in current prices): $0.30 (always)
# Caveat: The current model implementation accept only one minimum toll for all express lanes in the region

# 50 cents in 2023$ = 50 cents/1.87 = 26.74 cents in 2000$
# based on inflation assumptions stated here: https://github.com/BayAreaMetro/modeling-website/wiki/InflationAssumptions
min_vtoll = 26.74