Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Modes

The modes the agents can choose from are listed in the mode_choice.modes parameter. For each mode, the preferences of the agents are defined by a constant (modes.<mode>.constant) and a value of time (modes.<mode>.alpha), or read from a file (modes.<mode>.preferences_file).

car_driver

The agent is traveling by car. They are driver and presumably have no passenger.

  • PCE = 1
  • HOV lanes cannot be taken
  • Fuel cost = 100%

car_driver_with_passengers

The agent is traveling by car. They are driver and have at least one passenger.

  • PCE = 1
  • HOV lanes can be taken
  • Fuel cost = 100% (the driver pays for the fuel)

car_passenger

The agent is traveling by car but they are not driver.

  • PCE = 0 (congestion is already generated by the driver)
  • HOV lanes can be taken
  • Fuel cost = 0% (the driver pays for the fuel)

car_ridesharing

The agent is traveling by car. There are m persons in the car, where m − 1 is given by vehicle_types.car.ridesharing_passenger_count. It is not known whether the agent is driver or passenger.

  • PCE = 1 / m
  • HOV lanes can be taken
  • Fuel cost = 1 / m

For the three modes with passengers (car_driver_with_passengers, car_passenger and car_ridesharing), a subsidy per trip can be added to the utility with ridesharing.subsidy.

public_transit

The agent is traveling by public transit. Public transit is not congested: travel times are exogenous and they are computed before the simulation, either with OpenTripPlanner or R5 from GTFS data, or by applying a constant speed to the road-network distances (modes.public_transit.road_network_speed). When available, the generalized travel time (e.g., with penalties for walking, waiting or transfers) is used to compute the travel utility.

park_and_ride

The agent drives from home to a park-and-ride facility, parks their car, and continues by public transit. On the way back, they take public transit to the facility and drive home. Intermediary trips of the tour are made by public transit. The facility is the public-transit stop nearest to home, among the stops served by an allowed route (see modes.park_and_ride.allowed_route_types and modes.park_and_ride.allowed_agencies). The same facility is used for the whole tour. Only tours starting and ending at home (or single-trip tours starting from home) can be made by park-and-ride. The mode follows the car-driver availability rules and is not available for joint tours.

  • Car legs: same as car_driver (PCE = 1, HOV lanes cannot be taken, fuel cost = 100%)
  • Public-transit legs: same as public_transit
  • Transfer time between the car and public transit = configurable (modes.park_and_ride.transfer_time)
  • Values of time = those of car_driver and public_transit for the respective legs

walking

The agent is walking. Travel time is the shortest-path distance on the pedestrian network divided by a constant speed (modes.walking.speed).

bicycle

The agent is cycling. Travel time is the shortest-path distance on the pedestrian network divided by a constant speed (modes.bicycle.speed).

outside_option

The agent does not travel: the whole tour is canceled. This alternative only has a constant utility (modes.outside_option.constant). It is typically used to make the demand elastic.

Mode availability

The mode_availability parameters restrict the modes available to each tour, based on the characteristics of the person and their household:

ParameterDefaultEffect
mode_availability.car_driver.requires_cartrueCar-driver modes require at least one car in the household
mode_availability.car_driver.requires_driving_licensetrueCar-driver modes require a driving license
mode_availability.car_driver.min_agenone (0)Minimum age for car-driver modes
mode_availability.car_passenger.requires_cartruecar_passenger requires at least one car in the household
mode_availability.car_ridesharing.requires_cartruecar_ridesharing requires at least one car in the household
mode_availability.no_solo_modes_for_joint_tourstrueCar modes without passenger are not available for tours done jointly with other household members
mode_availability.bicycle.requires_bicyclefalsebicycle requires at least one bicycle in the household
mode_availability.walking.max_distancenone (∞)Maximum tour distance for walking (meters)
mode_availability.bicycle.max_distancenone (∞)Maximum tour distance for bicycle (meters)

The car-driver modes are car_driver, car_driver_with_passengers and park_and_ride. The tour distance is the sum of the Euclidean distances of its trips.

The rules rely on the columns nb_cars, has_driving_license, age and nb_bicycles of the persons and households files, and on the joint-tours file. When a column is missing (e.g., when the demand comes from an origin-destination matrix), the corresponding rule is skipped, with a warning.

The same rules are used when estimating the mode-choice model and when generating the alternatives of the simulation, so that the choice sets are consistent.