Road Test Demonstration Model¶
Model Operation¶
- emat.model.core_python.core_python_examples.Road_Capacity_Investment(free_flow_time=60, initial_capacity=100, alpha=0.15, beta=4.0, input_flow=100, value_of_time=0.01, unit_cost_expansion=1, interest_rate=0.03, yield_curve=0.01, expand_capacity=10, amortization_period=30, interest_rate_lock=False, debt_type='GO Bond', lane_width=10, **kwargs)[source]¶
A fictitious example model for road capacity investment.
This model simulates a capacity expansion investment on a single network link. The link volume-delay function is governed by the BPR function.
This model is a bit contrived, because it is designed to explicitly demonstrate a wide variety of EMAT features in a transportation planning model that is as simple as possible. For example, the policy levers are structured so that there is one of each dtype (float, int, bool, and categorical).
- Parameters:
free_flow_time (float, default 60) – The free flow travel time on the link.
initial_capacity (float, default 100) – The pre-expansion capacity on the link.
alpha (float, default 0.15) – Alpha parameter to the BPR volume-delay function.
beta (float, default 4.0) – Beta parameter to the BPR volume-delay function.
input_flow (float, default 100) – The future input flow on the link.
value_of_time (float, default 0.01) – The value of a unit of travel time savings per unit of flow on the link.
unit_cost_expansion (float, default 1) – The present marginal cost of adding one unit of capacity to the link (assumes no economies of scale on expansion cost)
interest_rate (float, default 0.03) – The interest rate actually incurred for revenue bonds amortized over 15 years. The interest rate for general obligation bonds is assumed to be 0.0025 less than this value.
yield_curve (float, default 0.01) – The marginal increase in the interest_rate if the amortization period is 50 years instead of 15. The yield curve is assumed to be linearly projected to all other possible amortization periods
expand_capacity (float, default 10) – The amount of capacity expansion actually constructed.
amortization_period (int, default 30) – The time period over which the construction costs are amortized.
interest_rate_lock (bool, default False) – Whether interest rates are locked at the assumed current rate of 0.03 / 0.01 or allowed to float.
debt_type ('GO Bond', 'Rev Bond', 'Paygo') – Type of financing. General obligation bonds are assumed to have a lower interest rate than revenue bonds, but may be politically less desirable. Pay-as-you-go financing incurs no actual interest costs, but requires actually having the funds available.
lane_width (float, default 10) – The width of lanes on the roadway. This parameter is intentionally wacky, causing massive congestion for any value other than 10, to demonstrate what might happen with broken model inputs.
- Returns:
- no_build_travel_time
The average travel time on the link if no capacity expansion was constructed.
- build_travel_time
The average travel time on the link after expansion.
- time_savings
The average travel time savings as a result of the expansion.
- value_of_time_savings
The total value of the travel time savings, accounting for the time savings per traveler, the total flow, and the value of time.
- present_cost_expansion
The present cost of building the expansion
- cost_of_capacity_expansion
The annual payment to finance the expansion, when amortized.
- net_benefits
The value of the time savings minus the annual payment.
- Return type:
Model Scope Definition¶
The model exploratory scope is defined in a YAML text file. In this example, the scope is given by:
1---
2# EMAT Road Test Scope Definition
3
4scope:
5 name: EMAT Road Test
6 desc: prototype run
7
8
9inputs:
10
11 free_flow_time:
12 shortname: Free Flow Time
13 ptype: constant
14 desc: Free flow travel time on road segment
15 dtype: float
16 default: 60
17 dist: constant
18 corr: []
19
20 initial_capacity:
21 shortname: Init Capacity
22 ptype: constant
23 desc: Initial capacity on road segment
24 dtype: float
25 default: 100
26 dist: constant
27 corr: []
28
29 alpha:
30 ptype: uncertainty
31 desc: BPR Alpha parameter
32 dtype: float
33 default: 0.15
34 min: 0.10
35 max: 0.20
36 dist: uniform
37 corr: []
38
39 beta:
40 ptype: uncertainty
41 desc: BPR Beta parameter
42 default: 4.0
43 min: 3.5
44 max: 5.5
45 dist: uniform
46 corr: []
47
48 input_flow:
49 shortname: Input Flow
50 ptype: uncertainty
51 desc: Average Flow input on link
52 default: 100
53 min: 80
54 max: 150
55 dist: uniform
56 corr: []
57
58 value_of_time:
59 shortname: Value of Time
60 ptype: uncertainty
61 desc: Value of a unit of travel time savings per person
62 default: 0.075
63 min: 0.001
64 max: 0.250
65 dist:
66 name: pert
67 peak: 0.075
68 corr: []
69
70 unit_cost_expansion:
71 shortname: Unit Cost Expand
72 ptype: uncertainty
73 desc: Per unit cost of capacity expansion
74 dtype: float
75 default: 100
76 min: 95
77 max: 145
78 dist: uniform
79 corr: []
80
81 expand_capacity:
82 shortname: Expand Amount
83 ptype: policy lever
84 desc: How much to expand capacity
85 dtype: float
86 default: 10.0
87 min: 0
88 max: 100
89
90 amortization_period:
91 shortname: Amortization
92 ptype: policy lever
93 desc: Time period over which the investment is amortized
94 dtype: int
95 default: 30
96 min: 15
97 max: 50
98
99 debt_type:
100 shortname: Debt Type
101 desc: Type of financing
102 ptype: policy lever
103 dtype: cat
104 default: GO Bond
105 values:
106 - GO Bond
107 - Rev Bond
108 - Paygo
109
110 interest_rate_lock:
111 shortname: Rate Lock
112 ptype: policy lever
113 desc: Whether to lock in present interest rates of 0.03 (15 year) to 0.04 (50 years)
114 dtype: bool
115 default: False
116
117 interest_rate:
118 shortname: Interest Rate
119 ptype: uncertainty
120 desc: Interest rate for investment amortization in 15 years
121 dtype: float
122 default: 0.03
123 min: 0.025
124 max: 0.04
125 dist: uniform
126 corr: []
127
128 yield_curve:
129 shortname: Yield Curve
130 ptype: uncertainty
131 desc: Excess interest rate for investment amortization in 50 years
132 dtype: float
133 default: 0.01
134 min: -0.0025
135 max: 0.02
136 dist: uniform
137 corr: []
138
139
140outputs:
141
142 no_build_travel_time:
143 shortname: No Build Time
144 kind: info
145 metamodeltype: logxp-linear(-59)
146
147 build_travel_time:
148 shortname: Build Time
149 kind: minimize
150 metamodeltype: logxp-linear(-59)
151
152 time_savings:
153 shortname: Time Savings
154 kind: maximize
155 metamodeltype: log-linear
156
157 value_of_time_savings:
158 shortname: Value Time Save
159 desc: Implied total value of travel time savings over all travelers
160 kind: maximize
161 metamodeltype: log-linear
162
163 net_benefits:
164 shortname: Net Benefits
165 kind: maximize
166
167 cost_of_capacity_expansion:
168 shortname: Cost of Expand
169 kind: minimize
170 metamodeltype: log-linear
171
172 present_cost_expansion:
173 shortname: Present Cost
174 kind: info
175 metamodeltype: log-linear
176
177...