4_output_data - TUM-VT/FleetPy GitHub Wiki
Output Data
Request Statistics
tbc
Vehicle Trajectory Statistics
tbc
Standard Evaluations
In this section, we provide an overview of the output file parameters.
General notes about units:
- Time: Measured in seconds from midnight, where 0 represents 12 am (midnight), 16871.94 is approximately 4:40 am, and 36600.32 corresponds to around 10:07 am.
- Distance: Measured in meters, unless specified otherwise.
- Fare: Expressed in cents, with 100 cents equaling 1 Euro.
Output file on user statistics
In the following table, parameters of the file 1_user_stats.csv
are described.
parameter | data type | description |
---|---|---|
request_id | If request is for passenger: int, if request if for parcel: string, starting with “p_” | The unique ID of the request |
rq_type | str | The name of the request module based on in the simulation: - BasicRequest (passenger request) - BasicParcelRequest (parcel request) |
number_passenger | int | The number of passengers (set in the input request file) |
rq_time | int | Time of the request in seconds |
earliest_pickup_time | int | Constrain for the earliest pick-up time. Is only filled if different to rq_time, which is the case if in the passenger demand file an extra column is filled for this, see 2_input_data/trips_X.csv |
start | str | Network position representation of the start location. For example, 959;-1;-1 means that the start node is 959 and the starting position is exactly at this node. |
end | str | Network position representation of end location, see “start” |
pickup_location | str | The pick-up location. Generally, this field is not filled as it does not differ from “start”. In order for it to be filled, one had to create a fleet control module. |
dropoff_location | str | The drop-off location. Analogous logic as pickup_location |
access_time | float | The time from start to pickup_location. This is only filled if pickup_location is filled |
egress_time | float | The time from end to dropoff_location. This is only filled if dropoff_location is filled |
direct_route_travel_time | float | Fastest travel time from start to end at request_time (in seconds) |
direct_route_distance | float | Distance of the fastest route from start to end at request_time (in meters) |
offers | str | A list of offers that have been made. For example, if only one offer has been made: 0:t_wait:12.3;t_drive:98.2;fare:100 Operator 0 offers to pickup the costumer in 12.3 seconds, drive her to the destination in 98.2 seconds and demand 1 Euro for it. |
decision_time | float | Time that a request accepts an offer (request time if not specified) |
chosen_operator_id | id | TODO Only filled if request has been served |
operator_id | id | Operator id that served the request Only filled if request has been served |
vehicle_id | id | The id of the vehicle that executed the request Only filled if request has been served |
pickup_time | float | Time of the actual pick-up in seconds Only filled if request has been served |
dropoff_time | float | Time of the actual drop-off in seconds Only filled if request has been served |
fare | integer | Fare in cents Only filled if request has been served |
modal_state | integer | 0 if monomodal trip, else TODO |
Output file for general evaluations
The parameters in the file standard_eval.csv
are described in the following table:
parameter | data type | description |
---|---|---|
operator_id | int | Unique ID of the operator |
number users | int | Number of bookings made with the operator |
number travelers | int | Number of travellers. This can be different from the number of users if there were group bookings (i.e. more than one person is on a booking) |
modal split | float | Fraction of travellers that have been served by the operator |
modal split rq | float | Fraction of bookings that have been served by the operator |
reservation users | int | Number of pre-booked bookings |
reservation pax | int | Number of pre-booked travellers |
served reservation users [%] | float | Fraction of those pre-booked bookings, that the operator served |
served reservation pax [%] | float | Fraction of those pre-booked traveller bookings, that the operator served |
online users | int | Number of on-demand bookings |
online pax | int | Number of on-demand travellers |
served online users [%] | float | Fraction of those on-demand bookings, that the operator served |
served online pax [%] | float | Fraction of those on-demand travellers, that the operator served |
% created offers | float | Fraction of bookings that have received an offer by the operator. This is different to the parameter modal_split, since passengers can also reject the offer by the operator. |
utility | float | TODO (outdated) |
travel time | float | Average travel time for all bookings served by this operator in seconds ($ \frac{1}{number_users} \sum_{i \in R_{served}} (\text{drop_off_time}_i - \text{pick_up_time}_i)$ ) |
travel distance | float | Average distance for all bookings served by this operator in seconds TODO (Currently not computed) |
waiting time | float | Average waiting time (difference between request and pickup time) in seconds ($ \frac{1}{number_users} \sum_{i \in R_{served}} (\text{pick_up_time}_i - \text{rq_time}_i)$ ) |
waiting time (median) | float | Median waiting time (difference between request and pickup time) in seconds |
waiting time (90% quantile) | float | 90% quantile for waiting time (difference between request and pickup time) in seconds |
waiting time from ept | float | Average waiting time (difference between earliest pickup and pickup time) in seconds ($ \frac{1}{number_users} \sum_{i \in R_{served}} (\text{pick_up_time}_i - \text{earliest_pick_up_time}_i)$ ) |
detour time | float | Average detour time (difference between travel time and direct travel time) in seconds ($ \frac{1}{number_users} \sum_{i \in R_{served}} (\text{drop_off_time}_i - \text{pick_up_time}_i - \text{direct_travel_time}_i) - \text{boarding_time}$ ) |
rel detour | float | Average relative detour ($ \frac{100 [%]}{number_users} \sum_{i \in R_{served}} ( (\text{drop_off_time}_i - \text{pick_up_time}_i - \text{direct_travel_time}_i - \text{boarding_time} ) / \text{direct_travel_time}_i )$ ) |
% fleet utilization | float | Fraction of simulation time fleet vehicles are not idle |
vehicle revenue hours [Fzg h] | float | Overall vehicle hours spent by vehicles actively serve bookings (states: boarding, waiting, route, repositioning) |
rides per veh rev hours | float | The number of travellers divided by the revenue hours |
rides per veh rev hours rq | float | The number of bookings divided by the revenue hours |
total vkm | float | Total kilometres driven by all vehicles of the operator |
occupancy | float | Distance weighted average number of passengers in the vehicle ($\sum_{i \in vehicle_driving_legs}N_i^{passengers} \cdot \text{driven_distance}i / \sum{i \in vehicle_driving_legs} \text{driven_distance}_i$) |
occupancy rq | float | Distance weighted average number of bookings in the vehicle ($\sum_{i \in vehicle_driving_legs}N_i^{bookings} \cdot \text{driven_distance}i / \sum{i \in vehicle_driving_legs} \text{driven_distance}_i$) |
% empty vkm | float | Percentage of km that vehicles drove around empty. This includes both repositioning (see next parameter) and empty trips when approaching to a booking. |
% repositioning vkm | float | Percentage of vehicle km only used for repositioning |
customer direct distance [km] | float | Sum of all served traveller distances on their corresponding fastest route |
saved distance [%] | float | Meassure for pooling efficiency. This is computed in this way: $\frac{\text{customer direct distance} - \text{fleet vkm}}{\text{customer direct distance}}$ |
trip distance per fleet distance | float | This is computed in this way: $\frac{\text{customer direct distance}}{\text{total vehicle km}}$ |
trip distance per fleet distance (no reloc) | float | This is computed in this way: $\frac{\text{customer direct distance}}{\text{total vehicle km} * (1 - \% \text{ reposition vkm})}$ |
avg driving velocity [km/h] | float | Average vehicle velocity |
avg trip velocity [km/h] | float | This is computed in this way: $\frac{\text{customer direct distance}}{\text{total travel times}}$ This can be useful for comparing travel speeds of different modes of transport |
total toll | int | If there is a toll in a region, then this is the total toll that has been paid by the operator during the simulation |
mod revenue | int | Sum of all booking fares |
mod fix costs | int | Sum of fixed costs of the operator |
mod var costs | int | Sum of variable costs of the operator. This is computed based on the driven distance |
total CO2 emissions [t] | float | OUTDATED |
total external emission costs | int | OUTDATED |
parking cost | int | OUTDATED |
toll | int | OUTDATED |
customer in vehicle distance | float | Sum of kilometres travelled by costumers. Note that is is different to the distance that vehicles drove with a costumer in them: If two costumers shared a ride, this ride is counted double into this parameter. |
shared rides [%] | float | Percentage of bookings that shared part of their ride with at least one other booking |