Scenario File Parameters

Scenario File Parameters#

All top-level parameters are first read by POLARIS through the scenario_abm.json file (or simple the scenario file). Parameters in this file include high-level flags to turn on and off large features, and also filenames to point to additional parameter files that are specific to enable or control a feature.

Top Level Parameters#

These are the top level parameters that are available in the scenario.json file which is the first argument to the POLARIS exectuable.

These parameters are read in in the Scenario_Methods.h header file.

Category

Parameter Name

Description

Default

Data Type

ABM Controls

read_trip_factors

Controls the percentage of trips that need to be read in from the demand database by trip type (External, TNC, or Fixed)

nan

nan

activity_start_time_model_file_name

initialize start time model with file path in Integrated_Model

start_time_duration_data_new.txt

string

mode_choice_model_file

pass parameter into mode_choice_option_type::static_initialize in Integrated_Model

0

string

activity_generation_model_file

activity generation activity rates by person type in json format

0

string

destination_choice_model_file

pass parameter into destination_choice_option_type::static_initialize in Integrated_Model

0

string

telecommute_choice_model_file

pass parameter into telecommute_chooser_type::static_initialize in Integrated_Model

0

string

transit_pass_choice_model_file

pass parameter into ecommerce_chooser_type::static_initialize in Integrated_Model

0

string

escooter_use_level_choice_model_file

Escooter use related model parameters

0

string

ecommerce_choice_model_file

pass parameter into ecommerce_chooser_type::static_initialize in Integrated_Model

0

string

cav_wtp_model_file

pass parameter into vehicle_technology_chooser_type::static_initialize in Integrated_Model

0

string

vehicle_reduction_model_file

Model to lower HH vehicle ownership using Menon et al.'s probit model. Used primarily by UT only.

nan

nan

use_on_demand_delivery

Controls turning on and off ODD demand

FALSE

bool

delivery_choice_model_file

On-demand delivery related parameters for estimating demand only

nan

nan

utility_based_choice

boolean flag indicating that location choice should be based on maximum individual utility with consistently seeded random utility

FALSE

bool

Capacity Adjustments

capacity_adjustment_highway

if _link_type is EXPRESSWAY or FREEWAY, then save parameter as capacity_adjustment_factor in Link_Implementation

1

double

capacity_adjustment_arterial

if _link_type is ARTERIAL, then save parameter as capacity_adjustment_factor in Link_Implementation

1

double

EV Controls

use_retail_electricity_rates

Flag to set whether retail or wholesale rates are used for electricity pricing

FALSE

bool

Public_Charger_Access_For_Fleets

Flag that allows shared vehicles to charge at public EVCS

FALSE

bool

Private_Charger_Access_For_PVs

Flag that allows personal vehicles to charge at private EVCS

FALSE

bool

EVCS Generator Controls

GENERATE_EVCS

Flag to enable heuristic EVCS generation

FALSE

bool

evcs_generator_file_name

File that holds parameters related to heuristic EVCS generation

nan

string

General simulation controls

model_directory

The top-level directory in which the simulation is running

Directory in which the scenario.json resides

Path

input_directory

The directory containing the inputs for the current simulation (i.e. previous iteration)

model_directory

Path

starting_time_hh_mm

The first time step to consider within the simulation

0

int

ending_time_hh_mm

The last time step to consider within the simulation

172800

int

simulation_interval_length_in_second

How long (in seconds) is each step through the simulation

6

int

use_link_based_routing

true = restrict routing to activity locations to link+dir, false = route to an activity location on a link using either direction

FALSE

bool

seed

seed = abs( sin( iseed( ) + _internal_id + 1 ) ) in Intersection_Implementation

0

unsigned long

skim_seed

Parameter to change initial seed for location sampling for car skim generation

0

unsigned long

zone_sample_fraction

Parameter to adjust size of destination choice set per person and activity. Note this is a fraction of total zones and the actual number of zones used will be calculated as max(1.0, number_of_zones * zone_sample_fraction).

1

float

database_name

the prefix used in all database filenames, i.e. **Chicago**-Supply.sqlite

0

string

input_directory

Directory in which input databases can be found, generally a previous iteration or a backup folder; if a relative path is provided it will be interpreted relative to the model_directory

nan

string

num_simulation_intervals_per_assignment_interval

parameter * simulation_interval_length = assignment_interval_length

50

int

early_exit

Causes the simulation to exit the simulation after the specified operation, valid options are: {after_pop_synth, after_loc_choice, after_activity_gen}

nan

nan

Network simulation controls

merging_mode

Used to determine intersection supply allocation from multiple incoming flows, one of {0: DRIVING_RULE, 1: PROPORTION_TO_DEMAND, 2: PROPORTION_TO_LINK, 3: PROPORTION_TO_LANE, 4: PRIORITY_BASED}

PROPORTION_TO_DEMAND

int

node_control_flag

when set, indicates that read_intersection_control_data is available, else intersection_type = NO_CONTROL and control_plan is allocated and initialized

0

int

ramp_metering_flag

if true, then read from ramp_metering_data

FALSE

bool

input_result_database_name

required for time-dependent routing

0

string

jam_density_constraints_enforced

if true, then enforce jam density constraints when computing intersection flow

TRUE

bool

maximum_flow_rate_constraints_enforced

if true, then whether to enforce maximum flow rate constraints when computing intersection flow

TRUE

bool

pretrip_informed_market_share

_has_pretrip_information = (Uniform_RNG.Next_Rand < parameter) in Person_Implementations

0.5

double

realtime_informed_vehicle_market_share

if (Uniform_RNG.Next_Rand <= parameter), then _enroute_information_type = WITH_REALTIME_INFORMATION, else NO_REALTIME_INFORMATION in Vehicle_Implementation

0.5

double

information_compliance_rate_mean

what average proportion of travelers respond to the ITS warnings

1

double

information_compliance_rate_standard_deviation

standard deviation for information_compliance_rate_mean

0.5

double

minimum_travel_time_saving_mean

saved as mtts mean to compute triangular_random_variable in Vehicle_Implemenation

1

double

use_realtime_travel_time_for_enroute_switching

if true, then call realtime_forward_link_turn_travel_time; set as use_realtime_travel_time in Turn_Movement_Implementation

FALSE

bool

minimum_delay_ratio_for_enroute_switching

threshold for the ratio of delay time / travel time before agents will consider switching route due to outside information

3

double

minimum_delay_seconds_for_enroute_switching

threshold for the absolute delay time before agents will consider switching route due to outside information

300

double

enroute_switching_on_excessive_delay

whether to enable enroute switching for travelers who have been delayed significantly

TRUE

bool

fix_connectivity_penetration_rate_cv

if true then the CV fleet will be synthesized using a fixed proportion of connected vehicles. The rate to be used is specified in the 'connectivity_penetration_rate_cv' parameter

nan

nan

connectivity_penetration_rate_cv

Specifies the fixed proportion of connected vehicles in the synthesized CV fleet (if fix_connectivity_penetration_rate_cv is true)

nan

nan

minimum_seconds_from_arrival_for_enroute_switching

0

300

double

jam_density

Jam density (for all road types) in vehicles per mile per lane

0

integer

convergence_mode

Sets up a special mode of fixed-trips (no mode choice, etc) for DTA convergence

nan

nan

capacity_expressway

Maximum throughput of expressway in veh/h/lane

0

integer

capacity_arterial

maximum throughput of arterials in veh/h/lane

0

integer

capacity_local

maximum throughput of locals in veh/h/lane

0

integer

traffic_midblock_start_end

Trips start and end at midblock as opposed to starting at the beggining of first link and ending when enters the last link.

nan

boolean

force_no_street_parking_in_all_links

Curb impacts (next parameter) applies when the road has no street parking. Forcing it not to have will make all links prone to vehicles to block lanes when finishing its trip

nan

boolean

curb_hold_for_curb_time

vehicles block up to one lane by a certain time when the trip ends

nan

boolean

curb_lanes_blocked

value between 0 and 1 stating the share of a lane capacity is lost by a stopped vehicle

nan

float

curb_time_sov_seconds

Time in which lane is blocked by the end of the trip for SOV vehicles

nan

integer

curb_time_tnc_seconds

Time in which lane is blocked by the end of the trip for TNC vehicles

nan

integer

curb_time_freight_seconds

Time in which lane is blocked by the end of the trip for freight vehicles

nan

integer

speed_delta_logging

when traffic model == "LAGRANGIAN" it sets as threshold for storing speed trajectory. Consecutive sample speeds within the threshold may be grouped

nan

float

threshold_conflicting_all_stop_seconds

0

0

0

threshold_conflicting_two_way_stop_seconds

0

0

0

threshold_conflicting_signalized_seconds

0

0

0

spacing_shift_by_mode

A dictionary from mode string to the desired spacing shift to be used in the traffic simulation

nan

string

Output controls

deflate_level

The compression level to use for HDF outputs, higher levels give better compression at the expense of runtime

3

int

write_activity_output

if true, then log Person_Scheduler_Implementations and output with Person_Data_Logger_Implementations

FALSE

bool

write_demand_to_database

if true, then write person data log to demand sqlite database

FALSE

bool

count_integrated_in_network_vehicles_only

if true, then decrement or increment in-network vehicles counter in Link_Implementation

FALSE

bool

output_directory

The directory into which all simulation outputs will be writen; if a relative path is provided it will be interpreted relative to the model_directory

0

string

write_node_control_state

if true, then run function by the same name in Network_Implementation_Results

FALSE

bool

write_network_link_flow

if true, then run function by the same name in Network_Implementation_Results

FALSE

bool

write_network_link_turn_time

if true, then run function by the same name in Network_Implementation_Results

FALSE

bool

write_output_summary

if true, then run function by the same name in Network_Implementation_Results

TRUE

bool

output_link_moe_for_simulation_interval

if true, then output link moe in each simulation interval

FALSE

bool

output_turn_movement_moe_for_simulation_interval

if true, then output link moe to database and output turn movement moe in Network_Implementation_Results

FALSE

bool

output_network_moe_for_simulation_interval

if true, then output network level MOE stats to csv at each simulation interval

FALSE

bool

write_vehicle_trajectory

if true, write a sample of vehicles trajectories to the Path tables

FALSE

bool

vehicle_trajectory_sample_rate

the proportion of vehicles to write trajectory data for

1

double

write_skim_tables

if true, then open output files: highway, transit, and highway cost in NetworkModel

FALSE

bool

output_highway_skim_file

one of three files written when write_skim_tables is true in NetworkModel

highway_skim_file_out.txt

string

output_transit_skim_file

one of three files written when write_skim_tables is true in NetworkModel

transit_skim_file_out.txt

string

write_planned_activity_table

if true, then write activities at plan time to Planned_Activity table. Includes dropped activities due to planning failures. This is mainly used for debuging.

FALSE

bool

output_link_moe_for_assignment_interval

if true, then output link moe to database in Network_Implementation_Results

FALSE

bool

output_turn_movement_moe_for_assignment_interval

if true, then output turn movement moe to database in Network_Implementation_Results

FALSE

bool

Population synthesizer controls

read_population_from_database

Controls how population is generated, read from Demand database (True) or synthesized (False)

FALSE

bool

percent_to_synthesize

The population sampling rate, it should be balanced by an appropriate traffic_scale_factor. It also affects the proportion of population read from the database when not synthesising.

1

double

ipf_tolerance

assigned to Tolerance in Solver_Settings_Implementation

0.01

double

marginal_tolerance

...

5

int

maximum_iterations

assigned to Iterations in Solver_Settings_Implementation

100

int

write_marginal_output

if true, then write data to "marginal_distributions.csv" and also output parameters used

FALSE

bool

write_full_output

if true, then write data to "joint_distributions.csv" and also output parameters used

FALSE

bool

popsyn_control_file

initialize PopSyn_Implementations with file path

popsyn_control_file.txt

string

use_external_popsyn_solver

Use user-provided PopSynth IPF/Integerization functions from external DLL/SO

FALSE

bool

external_popsyn_solver_filename

filename of the external PopSynth funcationality DLL/SO

PopSynAPI.dll

string

replan

Controls whether various sub-models are re-run against a population read from database or if previous outputs from the DB are used. Allowed sub-keys are 'workplaces', 'transit_pass_holding', 'escooter_participation', 'vehicle_ownership', telecommute_frequency' and the default if not provided is false

FALSE

dict[string,bool]

replan_workplaces

DEPRECATED, use replan parameter instead

nan

nan

replan_mobility_options

DEPRECATED, use replan parameter instead

nan

nan

replan_delivery_options

DEPRECATED, use replan parameter instead

nan

nan

traffic_scale_factor

Scale for the traffic flow model for traffic flow discretization; value 1 means no scaling applied; lower value updates capacity and jam density linearly

0

float

Routing and skimming controls

aggregate_routing

if true, then reset route planning in Activity_Implementations and used to determine aggregation properties in Person_Mover_Prototype

FALSE

bool

input_highway_skim_file

one of three files read when write_skim_tables is true in NetworkModel

0

string

input_transit_skim_file

one of three files read when write_skim_tables is true in NetworkModel

0

string

read_skim_tables

if do_skimming is true, then set parameter to read_input; if read_input is true then set read_transit and read_highway_cost = true, but set to false if corresponding input file cannot be opened

FALSE

bool

skim_averaging_factor

Weight applied to skims generated during simulation before averaging with (1-weight) applied to skims read in from input

nan

nan

skim_minimum_sov_speed

A mimimum speed threshold to be applied to the skimmed travel times (relative to the skimmed distance)

5

float

skim_interval_endpoint_minutes

if parameter is not found, then use_skim_intervals = false and search for skim_interval_length_minutes and set do_skimming = true in Scenario_Prototype

0

IntArray

skim_interval_length_minutes

if skim_interval_endpoint_minutes is not found, then read parameter

1440

int

enroute_switching_enabled

if true, then call check_enroute_switching in Vehicle_Implementation

TRUE

bool

time_dependent_routing

if true, then call initialize_moe_data; if true, then call construct_time_dependent_routable_network in Network_Implementation;if false, then call compute_static_network_path, else call compute_time_dependent_network_path in Routing_Implementation and Vehicle_Implementation

FALSE

bool

time_dependent_routing_weight_shape

save as _ttime_weight_shape in Routable_Network_Implementation

2

double

time_dependent_routing_weight_scale

save as _ttime_weight_scale in Routable_Network_Implementation

1000

double

time_dependent_routing_weight_factor

save as _ttime_weight_factor in Routable_Network_Implementation

1

double

time_dependent_routing_weight_factor_affects_choice

If true, MSA based approach (factor=1/iteration_num) is applied in conjunction with the gap based approach for rerouting decision. If false - only gap is used.

nan

nan

time_dependent_routing_weight_factor_affects_calculation

If true, information mixing on link travel time calculation is affected by the TDR weight factor (i.e. 1/iteration_num).

nan

nan

time_dependent_routing_gap_calculation_strategy

time_dependent_routing_gap_calculation_strategy

nan

nan

long_distance_trip_threshold_in_miles

The threshold (crow-flies miles) above which a trip is considered 'long-distance' for adding additional 'stop' penalties at traffic signals or stop signs

nan

float

long_distance_freight_stopping_penalty

The additional routing 'stop' penalty (seconds) added to 'long-distance' freight trips at traffic signals or stop signs

nan

float

long_distance_passenger_stopping_penalty

The additional routing 'stop' penalty (seconds) added to 'long-distance' passenger trips at traffic signals or stop signs

nan

float

multimodal_routing

enable multimodal logic

0

bool

EV_charging

Flag to control if detailed electric vehicle behavior is modeled (includes discharging, queueing at charging station, SoC tracking)

nan

nan

use_ML_model_for_battery_discharge

Flag to control whether the TensorflowLite model is used for predicting electric vehicle discharging

nan

nan

ML_model_filename

TensorflowLite model name to predict link-level electric vehicle discharging

nan

nan

use_heterogenous_VOT

Allows person and trip-specific VOT values for weight in the generalized cost of routing

nan

nan

multimodal_routing_model_file

pass parameter into routable_network_type

0

string

Scenario controls

cav_market_penetration

if Next_Rand <= parameter, then autonomous vehicle capability is set true, else is set false in Vehicle_Implementation

0

double

cav_vott_adjustment

if autonomous vehicle capability is set true, then return parameter from Value_of_Travel_Time_Adjustment in Person_Properties_Implementation

1

double

simulate_cacc

if parameter is true, then update capacity_adjustment_factor in Link_Implementation

FALSE

bool

flexible_work_percentage

if Uniform_RNG.Next_Rand < parameter, then set flex_work = 1.0 in Telecommute_Choice_Implementation

0.12

double

use_tmc

if use_network_events is true, then if parameter is true, then initialize Traffic_Management_Center interface in Integrated_Model

FALSE

bool

use_network_events

if true, then initialize Network_Event_Manager interface; if true then subscribe events in Integrated_Model

FALSE

bool

Shared Mobility Controls

use_micromobility

Enable using micromobility operators and dockless fleets

FALSE

bool

micromobility_fleet_model_file

Micromobility operations-related parameter file name

nan

string

TNC Controls

tnc_operator_chooser_model_file

File name that holds parameters related to the operator chooser choice model

nan

string

tnc_fleet_model_file

File name that holds parameters needed to initialize and run the TNC module

nan

string

use_tnc_system

Boolean that sets whether we use the on-demand TNC module

nan

boolean

tnc_feedback

Boolean to improve TNC operations using historical data

nan

boolean

tnc_driver_model_file

File name that holds parameters related to modeling human drivers in the TNC module

nan

nan

Unknown Grouping

simulation_year

The year in which the simulation is occurring

nan

nan

snapshot_period

interval of time (seconds) between network snapshot write events

300

int

do_planner_routing

if true, then Schedule_New_Routing and assign the movement plan to the persons activity schedule in Activity_Implementations

FALSE

bool

vehicle_tracking_list_file_name

if parameter is not found, then use_vehicle_tracking_list = false, else vehicle_trajectory_sample_rate = 0.0 and use_vehicle_tracking_list = true

0

string

compare_with_historic_moe

if true and start_of_current_simulation_interval_absolute % assignment_interval_length == 0, then call read_historic_link_moe function in Network_Implementation

FALSE

bool

historic_network_moe_file_path_name

if compare_with_historic_moe is true, then open input file and throw exception if not successful in Scenario_Prototype

historic_realtime_moe_network.csv

string

historic_link_moe_file_path_name

if compare_with_historic_moe is true, then open input file and throw exception if not successful in Scenario_Prototype

historic_moe_link.csv

string

read_normal_day_link_moe

if true and start_of_current_simulation_interval_absolute % assignment_interval_length == 0, then call function with same name in Network_Implementation

FALSE

bool

normal_day_link_moe_file_path_name

if read_normal_day_link_moe is true, then open input file and throw exception if not successful in Scenario_Prototype

normal_day_moe_link.csv

string

historic_demand_moe_directory

0

0

string

output_network_moe_for_assignment_interval

if true, then output network moe to database in Network_Implementation_Results

FALSE

bool

load_analyze_link_groups_from_file

if true, then call read_analyze_link_groups in Network_Implemenetation

FALSE

bool

analyze_link_groups_file_path_name

0

analyze_link_groups

string

write_ttime_distribution_from_network_model

if true, then call write_ttime_distribution function in Network_Implementation

FALSE

bool

vehicle_trajectory_output_threshold

0

-1

int

vehicle_taking_action

if true, then make_suggestion( MOVE_TO_NEXT_LINK ) in Turn_Movement_Implementation;if true, then call start_agent function in Vehicle_Implementation

FALSE

bool

relative_indifference_band_route_choice_mean

saved as rib mean to compute triangular_random_variable in Vehicle_Implementation

0.1

double

multimodal_network_input

if false, then call clean_isolated_intersections; if true then set do_this_link = true; if true then set do_this_connection = true in Network_DB_Reader_Implementations

FALSE

bool

enroute_excessive_delay_factor

used in above condition for minimum_delay_ratio_form_enroute_switching

1

double

EV_default_Wh_per_mile

Default value to convert Wh needed to travel one mile in an electric vehicle

nan

nan

accident_event_duration_reduction

save as _end_time = _end_time * accident_event_duration_reduction in Network_Event_Implementations

1

double

calculate_realtime_moe

if true, then call calculate_moe_for_simulation_interval in Intersection_Implementation; call calculate_realtime_network_moe and output_moe_for_simulation_interval in Network_Implementation

TRUE

bool

buildings_geometry_file

if parameter is not found, then use_buildings = false in Scenario_Prototype

0

string

Vehicle Choice Model

vehicle_distribution_file_name

initialize vehicle choice model with parameter in Integrated_Model

vehicle_distribution.txt

string

EVCS Generation Parameters#

These are the electric vehicle charging station (EVCS) Generation parameters that control siting and sizing new EVCS. The parameters are contained within the file that is specified in the scenario.json via parameter evcs_generator_file_name.

These parameters are read in in the EV_Charging_Station_Generator_Methods.h header file.

Category

Parameter Name

Description

Default

Data Type

EVCS Generator Controls

generator_strategy

String that specifies which strategy is being loaded for EVCS siting

nan

string

MAX_EVCS_DIST_MILES

Maximum distance in miles to reach the next nearby EVCS, instead of instantly generating a new one

10

float

MAX_EVCS_WAIT_MINUTES

Maximum wait time in minutes at an EVCS before a new DCFC plug is generated

30

float

capital_cost_evcs_gen

One-time cost in dollars to generate a new EVCS

100000

float

evcs_life_span

Expected duration of operations of an EVCS for cost comparison

10

float

capital_cost_added_plug

One-time cost in dollars of generating a new DCFC plug

1000

float

land_cost_evcs_gen

Vector of land cost by area type to consider when siting an EVCS

nan

FloatArray

default_unit_price_charged_per_kwh

Default cost in dollar per KWh charged when using a newly generated charging station

0

float

EVCS_MAX_DCFC_PLUGS

Max number of DCFC plugs allowed for generation at any single EVCS

nan

integar

EVCS_MIN_DCFC_PLUGS

Starting default number of plugs at a generated EVCS

3

integar

EVCS_MAX_QUEUE

Threshold of queue length beyond which an additional plug is added if generating new EVCS

nan

integar