diff --git a/docs/design/demand/av-routing.md b/docs/design/demand/av-routing.md new file mode 100644 index 000000000..d9d6bf758 --- /dev/null +++ b/docs/design/demand/av-routing.md @@ -0,0 +1,88 @@ +# Autonomous Vehicle (AV) Routing Model + +The AV routing model simulates how household-owned autonomous vehicles are dispatched to serve household members' travel needs throughout the day. This model runs as a post-processing step after the resident model generates trips for households that own autonomous vehicles. + +## Model Overview + +The AV routing model performs intra-household autonomous vehicle routing, determining which trips are served by the household's AV(s) and how the vehicles reposition between trips. The model operates on a time-period basis, processing trips chronologically throughout the simulated day. + +The model design is shown below: + +![](../../images/design/av_routing_model_design.png) + +## Model Components + +### AV-Trip Matching + +For each time period, the model matches available household AVs to trips that need to be served. The matching process: + +1. **Identifies eligible trips**: Selects driving-mode trips from households with AVs +2. **Constructs alternatives**: Creates all possible AV-to-trip assignments within the household +3. **Evaluates utilities**: Uses skim data (travel time from vehicle location to trip origin) and other factors to score each assignment +4. **Makes choices**: Selects the optimal assignment of trips to AVs using a logit model + +If multiple trips exist on the same tour during a time period, both trips are served by the same AV. If the AV is not at the trip origin, an additional repositioning trip is added. + +### AV Repositioning + +After serving trips, the model determines where each AV should go next. The repositioning alternatives include: + +1. **Stay with person**: The AV waits at the current location with the person it just dropped off +2. **Go home**: The AV returns to the household's home location +3. **Go to remote parking**: The AV travels to a designated parking zone (useful in areas with limited parking) +4. **Service next household trip**: The AV proactively repositions to the origin of an upcoming trip for another household member + +The repositioning choice is made using a utility-based model that considers: +- Travel time to each alternative destination +- Time until the next potential trip +- Parking availability at the current location + +## Vehicle Trip Types + +The model generates several types of vehicle trips: + +| Trip Type | Description | +|-----------|-------------| +| `serving_trip` | AV traveling with a passenger to their destination | +| `going_home` | Empty AV returning to home location | +| `going_to_parking` | Empty AV traveling to remote parking | +| `repositioning` | Empty AV traveling to serve an upcoming trip | + +## Outputs + +The AV routing model produces: + +- **AV Vehicle Trips Table**: A record of all vehicle movements including: + - Vehicle ID and household ID + - Origin and destination zones + - Departure time + - Whether the trip is a deadhead (empty) trip + - Trip type (serving, repositioning, etc.) + +## Relationship to Other Models + +The AV routing model depends on outputs from the [resident model](resident.md), specifically the trip list for households with AVs. It uses skim matrices generated during the travel model run to evaluate travel times for both serving trips and repositioning trips. The AV routing model runs as part of the resident model between trip mode choice and parking location choices models. + +## Integration with Traffic Assignment + +The AV vehicle trips are aggregated into origin-destination matrices for traffic assignment: + +- **EmptyAVTrips.omx**: Contains deadhead/repositioning trips by time period + - `EmptyAV_EA`, `EmptyAV_AM`, `EmptyAV_MD`, `EmptyAV_PM`, `EmptyAV_EV` + +These matrices are imported alongside other demand matrices in the traffic assignment process. See the matrix builder (src/asim/scripts/taxi_tnc_routing/tnc_av_matrix_builder.py) for details on how these matrices are created. + +ActivitySim resident model output matrices account for the trips served by AVs, so only the deadhead trips need to be added separately in this step. + +## Configuration + +The AV routing model is configured through `av_routing.yaml` with key settings including: + +- `AV_TRIP_MATCHING_SPEC`: Specification file for AV trip matching model +- `AV_TRIP_MATCHING_COEFFICIENTS`: Coefficients file for AV trip matching model +- `AV_REPOSITIONING_SPEC`: Specification file for AV repositioning model +- `AV_REPOSITIONING_COEFFICIENTS`: Coefficients file for AV repositioning model +- `DRIVING_MODES`: List of trip modes eligible for AV routing +- `AV_PARKING_ZONE_COLUMN`: Land use column indicating remote AV parking availability +- `NEAREST_ZONE_SKIM`: Skim matrix used to find nearest parking zones + diff --git a/docs/design/demand/resident.md b/docs/design/demand/resident.md index c34b9aefb..2d05106ff 100644 --- a/docs/design/demand/resident.md +++ b/docs/design/demand/resident.md @@ -88,5 +88,5 @@ flowchart TD ``` -At this point, all tours are generated, scheduled, have a primary destination, and a selected tour mode. The next set of models fills in details about the tours - number of intermediate stops, location of each stop, the departure time of each stop, and the mode of each trip on the tour. Finally, the parking location of each auto trip to the central business district (CBD) is determined. +At this point, all tours are generated, scheduled, have a primary destination, and a selected tour mode. The next set of models fills in details about the tours - number of intermediate stops, location of each stop, the departure time of each stop, and the mode of each trip on the tour. For households that own autonomous vehicles, an additional [AV Routing Model](av-routing.md) is run after trip mode choice and before parking location choice. This model simulates how household AVs are dispatched to serve household members' trips throughout the day. Finally, the parking location of each auto trip to the central business district (CBD) is determined. After the model is run, the output files listed above are created. The trip lists are then summarized into origin-destination matrices by time period and vehicle class or transit mode and assigned to the transport network. \ No newline at end of file diff --git a/docs/design/demand/taxi-tnc-routing.md b/docs/design/demand/taxi-tnc-routing.md new file mode 100644 index 000000000..775d94f25 --- /dev/null +++ b/docs/design/demand/taxi-tnc-routing.md @@ -0,0 +1,125 @@ +# Taxi and TNC Routing Model + +The Taxi and Transportation Network Company (TNC) routing model simulates the operation of for-hire vehicle fleets serving passenger trips. This model processes TNC and taxi trips generated by the activity-based demand models and creates realistic vehicle routing patterns including pooled rides, empty repositioning, and refueling trips. + +## Model Overview + +The model operates as a microsimulation of a taxi/TNC fleet, processing trips in chronological order through fine-grained time bins. Key features include: + +- **Trip pooling**: Matches compatible shared-ride requests to reduce vehicle miles traveled +- **Vehicle dispatching**: Assigns vehicles to trips based on proximity and availability +- **Fleet management**: Tracks vehicle locations, mileage, and refueling needs +- **Deadhead routing**: Simulates empty vehicle repositioning between trips + +The model design is shown below: + +![](../../images/design/taxi_tnc_model_design.png) + +## Model Components + +### Trip Pooling + +For shared TNC modes, the model identifies opportunities to combine multiple passenger trips into a single vehicle route: + +1. **Proximity filtering**: Finds trip pairs where both origins and destinations are within a configurable buffer (default: 10 minutes) +2. **Detour calculation**: Evaluates four possible routing scenarios for each pair: + + - Origin i → Origin j → Destination i → Destination j + - Origin j → Origin i → Destination j → Destination i + - Origin i → Origin j → Destination j → Destination i + - Origin j → Origin i → Destination i → Destination j + +3. **Detour validation**: Filters out pairs where either passenger's detour exceeds the maximum allowed (default: 15 minutes) +4. **Mutual best selection**: Uses a recursive algorithm to select trip pairs where both trips prefer each other + +### Vehicle Dispatching + +The model maintains a fleet of vehicles and matches them to trips: + +- **Free vehicles**: Vehicles that have completed their previous trip are matched to new trips based on proximity +- **New vehicles**: When no free vehicle is available within the maximum wait time, a new vehicle is created at the trip origin +- **Wait time tracking**: Records the time passengers wait for vehicle arrival + +### Occupancy Tracking + +Vehicle occupancy is tracked for each trip leg: + +| Occupancy | Description | +|-----------|-------------| +| 0 | Empty/deadhead trip (repositioning or refueling) | +| 1 | Single passenger (or driver in non-AV scenario) | +| 2 | Two passengers | +| 3+ | Three or more passengers | + +### Refueling + +The model tracks cumulative vehicle mileage and routes vehicles to refueling stations when needed: + +- Vehicles exceeding the maximum distance threshold are routed to the nearest zone with refueling stations +- Refueling trips are marked as deadhead trips with occupancy 0 +- After refueling, the vehicle's odometer is reset + +## Configuration + +Key settings in `taxi_tnc_routing_settings.yaml`: + +| Setting | Description | Default | +|---------|-------------|---------| +| `time_bin_size` | Simulation time bin size (minutes) | 10 | +| `pooling_buffer` | Max O-O and D-D time for pooling (minutes) | 10 | +| `max_detour` | Maximum detour time for pooled trips (minutes) | 15 | +| `max_wait_time` | Maximum wait before creating new vehicle (minutes) | 15 | +| `max_refuel_dist` | Maximum distance before refueling (miles) | 300 | +| `shared_tnc_modes` | Modes eligible for pooling | TNC_SHARED | +| `single_tnc_modes` | Solo ride modes | TNC_SINGLE, TAXI | + +## Outputs + +The model produces several output files: + +### TNC Vehicle Trips (`output_tnc_vehicle_trips.csv`) + +Each row represents a vehicle trip leg with columns: +- `vehicle_id`: Unique vehicle identifier +- `origin_taz`, `destination_taz`: Trip endpoints (TAZ level) +- `depart_bin`: Departure time bin +- `occupancy`: Number of passengers +- `trip_type`: pickup, dropoff, refuel, etc. +- `is_deadhead`: Whether the trip is empty + +### Pooled Trips (`output_tnc_pooled_trips.csv`) + +Details of matched trip pairs including: +- Trip IDs for both passengers +- Route scenario used +- Detour times for each passenger +- Stop sequence + +This file is useful for analyzing pooling efficiency and general debugging of the pooling algorithm. + +## Integration with Traffic Assignment + +TNC vehicle trips are aggregated into origin-destination matrices: + +- **TNCVehicleTrips_pp.omx**: One file per period with occupancy-based cores + - `TNC_EA_0`, `TNC_EA_1`, `TNC_EA_2`, `TNC_EA_3` (and similar for AM, MD, PM, EV) + +The matrix builder script (`tnc_av_matrix_builder.py`) reads the vehicle trip outputs and creates OMX matrices that are imported into traffic assignment alongside other demand matrices. + +## Relationship to Other Models + +### Upstream Dependencies + +- **Resident Model**: Generates TNC_SINGLE, TNC_SHARED, and TAXI trips +- **Visitor Model**: Generates visitor TNC/taxi trips +- **Cross-border Model**: Generates cross-border TNC/taxi trips +- **Airport Model**: Generates airport ground access TNC/taxi trips + +### Downstream Integration + +The vehicle trip outputs can be used for: + +- Traffic Assignment: TNC vehicle matrices are assigned to the highway network +- Fleet sizing analysis +- VMT and emissions calculations +- Equity analysis of service availability diff --git a/docs/images/design/av_routing_model_design.png b/docs/images/design/av_routing_model_design.png new file mode 100644 index 000000000..4b46a63b2 Binary files /dev/null and b/docs/images/design/av_routing_model_design.png differ diff --git a/docs/images/design/taxi_tnc_model_design.png b/docs/images/design/taxi_tnc_model_design.png new file mode 100644 index 000000000..2d178f5dd Binary files /dev/null and b/docs/images/design/taxi_tnc_model_design.png differ diff --git a/mkdocs.yml b/mkdocs.yml index 2957683c3..6f3e47395 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -60,6 +60,8 @@ nav: - design/demand/visitor.md - design/demand/cvm.md - design/demand/external.md + - design/demand/av-routing.md + - design/demand/taxi-tnc-routing.md - Supply: - design/supply/index.md - design/supply/bike-logsums.md diff --git a/src/asim/configs/common/constants.yaml b/src/asim/configs/common/constants.yaml index 720a0e274..bbdcd6c90 100644 --- a/src/asim/configs/common/constants.yaml +++ b/src/asim/configs/common/constants.yaml @@ -89,6 +89,9 @@ autoParkingCostFactorAV: {policy-AV-autoParkingCostFactor:} autoCostPerMileFactorAV: {policy-AV-autoCostPerMileFactor:} autoTerminalTimeFactorAV: {policy-AV-autoTerminalTimeFactor:} minAgeDriveAloneAV: {policy-AV-minAgeDriveAlone:} +AV_maxDuration: 1.5 # max duration for keeping car close (hrs) +AV_maxBenefit: 60 # max benefit for keeping car close (mins) +RemoteParkingCostPerHour: 3 #dollar #valueOfTime: 8.00 @@ -278,3 +281,9 @@ SanYsidro_maz_id: {MGRAsOfInterest-portsOfEntry-sanYsidro:} OtayMesa_maz_id: {MGRAsOfInterest-portsOfEntry-otayMesa:} Tecate_maz_id: {MGRAsOfInterest-portsOfEntry-tecate:} OtayMesaEast_maz_id: {MGRAsOfInterest-portsOfEntry-otayMesaEast:} + +# -- AV routing settings -- +# Maximum benefit for keeping car close (min) +AV_maxBenefit: 60 +# Maximum duration for keeping car close (hrs), +AV_maxDuration: 1.5 diff --git a/src/asim/configs/resident/av_repositioning.csv b/src/asim/configs/resident/av_repositioning.csv new file mode 100644 index 000000000..cc94404d2 --- /dev/null +++ b/src/asim/configs/resident/av_repositioning.csv @@ -0,0 +1,32 @@ +Label,Description,Expression,stay_with_person,go_to_parking,go_home,service_next_trip_1,service_next_trip_2,service_next_trip_3 +# stay with person utils,,,,,,,, +util_cost_of_parking,Cost of parking at destination,parkingCost,coef_cost,,,,, +util_time_stay,Stay- Need car soon,"@np.where(df.duration_hrs < AV_maxDuration, (-1)*(AV_maxBenefit + (df.duration_hrs*df.slope)), 0)",coef_ivt,,,,, +# go to parking utils,,,,,,,, +util_remote_park_only_if_park_const,Can only use remote parking if in parking constrained zone,~parkingConstrained,,coef_unavailable,,,, +util_time_park,Remote- Need car soon,"@np.where(df.duration_hrs < AV_maxDuration, (-1)*(AV_maxBenefit + (df.duration_hrs*df.slope)), 0)",,coef_ivt,,,, +util_remote_cost,Remote park - Cost of parking until departure,duration_hrs * RemoteParkingCostPerHour * 100,,coef_cost,,,, +util_remote_ivt,in vehicle time to remote parking location,@v_to_parking_skim['SOV_TR_H_TIME'],,coef_ivt,,,, +util_remote_rel,reliability vehicle location to remote parking location,"@v_to_parking_skim['SOV_TR_H_REL'] * 14 / np.maximum(0.1, v_to_parking_skim['SOV_TR_H_DIST'])",,coef_ivt,,,, +util_remote_auto_cost,auto operating cost from vehicle location to remote parking location,@(v_to_parking_skim['SOV_TR_H_DIST'] * costPerMile * autoCostPerMileFactorAV) + v_to_parking_skim['SOV_TR_H_TOLLCOST'],,coef_cost,,,, +# go home utils,,,,,,,, +util_already_at_home,Unavailable if already at home destination,destination == home_zone_id,,,coef_unavailable,,, +util_home_ivt,in vehicle time to go home,@v_to_home_skim['SOV_TR_H_TIME'],,,coef_ivt,,, +# *14 multiplier to convert from ivt to reliability just like tour mode choice,,,,,,,, +util_home_rel,reliability vehicle location to home,"@v_to_home_skim['SOV_TR_H_REL'] * 14 / np.maximum(0.1, v_to_home_skim['SOV_TR_H_DIST'])",,,coef_ivt,,, +util_home_auto_cost,auto operating cost from vehicle location to home,@(v_to_home_skim['SOV_TR_H_DIST'] * costPerMile * autoCostPerMileFactorAV) + v_to_home_skim['SOV_TR_H_TOLLCOST'],,,coef_cost,,, +# service next trip util 1,,,,,,,, +util_next_trip_available,Unavailable if no next trip,next_trip_id_1 == -1,,,,coef_unavailable,, +util_next1_ivt,in vehicle time to next trip 1 origin,v_to_trip_orig1_time,,,,coef_ivt,, +util_next1_rel,reliability vehicle location to next trip 1 origin,"@df.v_to_trip_orig1_rel * 14 / np.maximum(0.1, df.v_to_trip_orig1_dist)",,,,coef_ivt,, +util_next1_auto_cost,auto operating cost from vehicle location to next trip 1 origin,@(df.v_to_trip_orig1_dist * costPerMile * autoCostPerMileFactorAV) + df.v_to_trip_orig1_toll,,,,coef_cost,, +# service next trip util 2,,,,,,,, +util_next2_trip_available,Unavailable if no next trip,next_trip_id_2 == -1,,,,,coef_unavailable, +util_next2_ivt,in vehicle time to next trip 2 origin,v_to_trip_orig2_time,,,,,coef_ivt, +util_next2_rel,reliability vehicle location to next trip 2 origin,"@df.v_to_trip_orig2_rel * 14 / np.maximum(0.2, df.v_to_trip_orig2_dist)",,,,,coef_ivt, +util_next2_auto_cost,auto operating cost from vehicle location to next trip 2 origin,@(df.v_to_trip_orig2_dist * costPerMile * autoCostPerMileFactorAV) + df.v_to_trip_orig2_toll,,,,,coef_cost, +# service next trip util 3,,,,,,,, +util_next3_trip_available,Unavailable if no next trip 3,next_trip_id_3 == -1,,,,,,coef_unavailable +util_next3_ivt,in vehicle time to next trip 3 origin,v_to_trip_orig3_time,,,,,,coef_ivt +util_next3_rel,reliability vehicle location to next trip 3 origin,"@df.v_to_trip_orig3_rel * 14 / np.maximum(0.3, df.v_to_trip_orig3_dist)",,,,,,coef_ivt +util_next3_auto_cost,auto operating cost from vehicle location to next trip 3 origin,@(df.v_to_trip_orig3_dist * costPerMile * autoCostPerMileFactorAV) + df.v_to_trip_orig3_toll,,,,,,coef_cost diff --git a/src/asim/configs/resident/av_repositioning_coefficients.csv b/src/asim/configs/resident/av_repositioning_coefficients.csv new file mode 100644 index 000000000..6bce0f325 --- /dev/null +++ b/src/asim/configs/resident/av_repositioning_coefficients.csv @@ -0,0 +1,4 @@ +coefficient_name,value,constrain +coef_unavailable,-999.0,F +coef_ivt,-0.03,F +coef_cost,-0.002,F \ No newline at end of file diff --git a/src/asim/configs/resident/av_repositioning_preprocessor.csv b/src/asim/configs/resident/av_repositioning_preprocessor.csv new file mode 100644 index 000000000..675db7b1f --- /dev/null +++ b/src/asim/configs/resident/av_repositioning_preprocessor.csv @@ -0,0 +1,47 @@ +Description,Target,Expression +next trip start time,next_depart,df['trip_id'].map(trips.groupby('tour_id')['depart'].shift(-1).to_dict()) +trip duration,duration_hrs,"np.where(next_depart.isna(), 0, next_depart - df.depart) / 2" +#Parking cost calculation,, +,tour_id,"reindex(trips.tour_id, df.trip_id)" +,tour_type,"reindex(tours.tour_type, tour_id)" +,person_id,"reindex(trips.person_id, df.trip_id)" +,ptype,"reindex(persons.ptype, person_id)" +,free_parking_at_work,"reindex(persons.free_parking_at_work, person_id)" +,free_parking_available,(tour_type == 'work') & free_parking_at_work +,number_of_participants,"reindex(tours.number_of_participants, tour_id)" +,is_indiv,(number_of_participants == 1) +person has free on-site parking at workplace,freeOnsite,"(free_parking_available)*np.where(is_indiv,1,0)" +new reimbursement amount,reimburseProportion,0 +new daily parking cost with reimbursement,parkingCostDayDollars,"reindex(land_use.exp_daily, df.destination)" +new hourly parking cost with reimbursement,parkingCostHourDollars,"reindex(land_use.exp_hourly, df.destination)" +new monthly parking cost with reimbursement,parkingCostMonthDollars,"reindex(land_use.exp_monthly, df.destination)" +daily cost converted to cents,parkingCostDay,parkingCostDayDollars*100 +hourly cost converted to cents,parkingCostHour,parkingCostHourDollars*100 +monthly cost converted to cents,parkingCostMonth,parkingCostMonthDollars*100 +Trip parking cost for full-time workers and university students,_parkingCostBeforeReimb,"ptype.isin([1,3]).values * is_indiv * np.minimum(parkingCostMonth/22, parkingCostDay)" +Trip parking cost for full-time workers and university students,_parkingCostBeforeReimb,"ptype.isin([1,3]).values * is_indiv * np.minimum(_parkingCostBeforeReimb, parkingCostHour * duration_hrs)" +,is_joint,(number_of_participants > 1) +Trip parking cost for other person types,parkingCostBeforeReimb,"np.where((~ptype.isin([1,3]).values * is_indiv) | (is_joint), np.minimum(parkingCostDay, parkingCostHour * duration_hrs), _parkingCostBeforeReimb)" +Reimbursement applies to this tour purpose,reimbursePurpose,tour_type=='work' +Effective parking cost for free parkers,_parkingCost,"0 * np.where(reimbursePurpose*freeOnsite,1,0)" +Effective parking cost for reimbursed parkers,_parkingCost,"np.where(is_indiv*reimbursePurpose*(1-freeOnsite), np.maximum((1-reimburseProportion) * parkingCostBeforeReimb, 0),_parkingCost)" +Effective parking cost,parkingCost,"np.where(is_joint+is_indiv*(1-reimbursePurpose), parkingCostBeforeReimb,_parkingCost)" +Parking cost is 0 if going home,parkingCost,"np.where(df.destination == df.home_zone_id, 0, parkingCost)" +# These following two are from AutonomousVehicleAllocationChoice.xls,, +Slope of benefit calculation,slope,(-1)*(AV_maxBenefit / AV_maxDuration) +# below taken from parametersByYear.csv,, +,RemoteParkingCostPerHour,0.81 +#,, +,parkingConstrained,"reindex(land_use.parking_type,df.destination)==1" +,v_to_trip_orig1_time,"np.where(df.next_trip_id_1 > 0, v_to_trip_orig1_skim['SOV_TR_H_TIME'], 0)" +,v_to_trip_orig2_time,"np.where(df.next_trip_id_2 > 0, v_to_trip_orig2_skim['SOV_TR_H_TIME'], 0)" +,v_to_trip_orig3_time,"np.where(df.next_trip_id_3 > 0, v_to_trip_orig3_skim['SOV_TR_H_TIME'], 0)" +,v_to_trip_orig1_dist,"np.where(df.next_trip_id_1 > 0, v_to_trip_orig1_skim['SOV_TR_H_DIST'], 0)" +,v_to_trip_orig2_dist,"np.where(df.next_trip_id_2 > 0, v_to_trip_orig2_skim['SOV_TR_H_DIST'], 0)" +,v_to_trip_orig3_dist,"np.where(df.next_trip_id_3 > 0, v_to_trip_orig3_skim['SOV_TR_H_DIST'], 0)" +,v_to_trip_orig1_rel,"np.where(df.next_trip_id_1 > 0, v_to_trip_orig1_skim['SOV_TR_H_REL'], 0)" +,v_to_trip_orig2_rel,"np.where(df.next_trip_id_2 > 0, v_to_trip_orig2_skim['SOV_TR_H_REL'], 0)" +,v_to_trip_orig3_rel,"np.where(df.next_trip_id_3 > 0, v_to_trip_orig3_skim['SOV_TR_H_REL'], 0)" +,v_to_trip_orig1_toll,"np.where(df.next_trip_id_1 > 0, v_to_trip_orig1_skim['SOV_TR_H_TOLLCOST'], 0)" +,v_to_trip_orig2_toll,"np.where(df.next_trip_id_2 > 0, v_to_trip_orig2_skim['SOV_TR_H_TOLLCOST'], 0)" +,v_to_trip_orig3_toll,"np.where(df.next_trip_id_3 > 0, v_to_trip_orig3_skim['SOV_TR_H_TOLLCOST'], 0)" diff --git a/src/asim/configs/resident/av_routing.yaml b/src/asim/configs/resident/av_routing.yaml new file mode 100644 index 000000000..e25b1d5f2 --- /dev/null +++ b/src/asim/configs/resident/av_routing.yaml @@ -0,0 +1,37 @@ +# spec and coefficients for AV trip matching model +AV_TRIP_MATCHING_SPEC: av_trip_matching.csv +AV_TRIP_MATCHING_COEFFICIENTS: av_trip_matching_coefficients.csv + +# spec and coefficients for AV repositioning model +AV_REPOSITIONING_SPEC: av_repositioning.csv +AV_REPOSITIONING_COEFFICIENTS: av_repositioning_coefficients.csv + +# needed to pass logit settings validation, but not used in this model +SPEC: None + +# Column in landuse DataFrame that indicates if a zone has AV parking available +AV_PARKING_ZONE_COLUMN: remoteAVParking + +# Skim core for nearest parking zone calculations +NEAREST_ZONE_SKIM: DIST + +# List of modes that are eligible for routing with a household AV +DRIVING_MODES: + - DRIVEALONE + - SHARED2 + - SHARED3 + +av_trip_matching_preprocessor: + SPEC: av_trip_matching_preprocessor.csv + DF: df + TABLES: + - trips + +av_repositioning_preprocessor: + SPEC: av_repositioning_preprocessor.csv + DF: df + TABLES: + - trips + - land_use + - tours + - persons diff --git a/src/asim/configs/resident/av_trip_matching.csv b/src/asim/configs/resident/av_trip_matching.csv new file mode 100644 index 000000000..18e14dc87 --- /dev/null +++ b/src/asim/configs/resident/av_trip_matching.csv @@ -0,0 +1,9 @@ +Label,Description,Expression,coefficient +util_veh_to_trip_origin_time,Time veh to trip origin,"@np.where((df.veh_location == df.origin) | (df.veh_location < 0) | (df.origin < 0), 0, veho_tripo_t_skims['SOV_TR_L_TIME'])",coef_ivt +util_veh_to_trip_origin_cost,cost veh to trip origin,"@np.where((df.veh_location == df.origin) | (df.veh_location < 0) | (df.origin < 0), 0, (df.auto_operating_cost * veho_tripo_t_skims['SOV_TR_L_DIST']) + veho_tripo_t_skims['SOV_TR_L_TOLLCOST'])",coef_cost +# *14 multiplier to convert from ivt to reliability as used in abm2+ uec,,, +util_veh_to_trip_origin_reliability,reliability veh to trip origin,"@np.where((df.veh_location == df.origin) | (df.veh_location < 0) | (df.origin < 0), 0, veho_tripo_t_skims['SOV_NT_L_REL']) * 14",coef_ivt +util_trip_duration,Trip duration,df.duration_benefit,coef_ivt +util_no_vehicle,Alternative unavailable if no vehicle,df.vehicle_id.isna() & (df.trip_number > 0),coef_unavailable +util_no_trip,unavailable if no trip and alt is not idle,df.trip_id.isna() & (df.trip_number > 0),coef_unavailable +util_idle,Do not service any trips,(df.trip_number == 0) & ~df.vehicle_id.isna(),coef_idle diff --git a/src/asim/configs/resident/av_trip_matching_coefficients.csv b/src/asim/configs/resident/av_trip_matching_coefficients.csv new file mode 100644 index 000000000..1fb6e3530 --- /dev/null +++ b/src/asim/configs/resident/av_trip_matching_coefficients.csv @@ -0,0 +1,6 @@ +coefficient_name,value,constrain +coef_unavailable,-999.0,F +coef_one,1.0,F +coef_idle,-10.0,F +coef_ivt,-0.03,F +coef_cost,-0.002,F \ No newline at end of file diff --git a/src/asim/configs/resident/av_trip_matching_preprocessor.csv b/src/asim/configs/resident/av_trip_matching_preprocessor.csv new file mode 100644 index 000000000..f24621207 --- /dev/null +++ b/src/asim/configs/resident/av_trip_matching_preprocessor.csv @@ -0,0 +1,4 @@ +Description,Target,Expression +next trip start time,next_depart,df['trip_id'].map(trips.groupby('tour_id')['depart'].shift(-1).to_dict()) +trip duration,duration_hrs,"np.where(next_depart.isna(), 0, next_depart - df.depart) / 2" +duration benefit,duration_benefit,"-1*np.where((duration_hrs < AV_maxDuration) & (duration_hrs > 0), AV_maxBenefit - (AV_maxBenefit/AV_maxDuration * duration_hrs), 0)" diff --git a/src/asim/configs/resident/parking_location_choice_annotate_trips_preprocessor.csv b/src/asim/configs/resident/parking_location_choice_annotate_trips_preprocessor.csv index 788c992ea..5d42d1688 100644 --- a/src/asim/configs/resident/parking_location_choice_annotate_trips_preprocessor.csv +++ b/src/asim/configs/resident/parking_location_choice_annotate_trips_preprocessor.csv @@ -3,6 +3,6 @@ Person Type,ptype,"reindex(persons.ptype, df.person_id)" Trip mode is drive,drive_trip,"df.trip_mode.isin(['DRIVEALONE', 'SHARED2', 'SHARED3'])" # putting all trips into the same parking segment,, Parking segment,parking_segment,"np.where(df['tour_id'] % 4 == 0, 'segment_1',np.where(df['tour_id'] % 4 == 1, 'segment_2',np.where(df['tour_id'] % 4 == 2, 'segment_3', 'segment_4')))" -Parking eligible trip,is_park_eligible,"(drive_trip & (df.purpose != 'home') & (reindex(land_use.parking_type,df.destination)==1))" +Parking eligible trip,is_park_eligible,"(drive_trip & (df.get('serviced_by_av', False) == False) & (df.purpose != 'home') & (reindex(land_use.parking_type,df.destination)==1))" Next Trip Departure,_next_trip_depart,df.groupby('tour_id')['depart'].shift() Activity duration,activity_duration,"np.where(_next_trip_depart.isna(), 0, _next_trip_depart - df.depart)" diff --git a/src/asim/configs/resident/settings.yaml b/src/asim/configs/resident/settings.yaml index 116be4d73..26f7e1cbf 100644 --- a/src/asim/configs/resident/settings.yaml +++ b/src/asim/configs/resident/settings.yaml @@ -120,6 +120,7 @@ output_tables: - vehicles - proto_disaggregate_accessibility - disaggregate_accessibility + - av_vehicle_trips resume_after: @@ -175,6 +176,7 @@ models: - trip_purpose_and_destination - trip_scheduling - trip_mode_choice + - av_routing - parking_location ### mp_summarize (single process) - write_data_dictionary diff --git a/src/asim/configs/resident/settings_mp.yaml b/src/asim/configs/resident/settings_mp.yaml index 193b6f416..4c615f24f 100644 --- a/src/asim/configs/resident/settings_mp.yaml +++ b/src/asim/configs/resident/settings_mp.yaml @@ -69,6 +69,7 @@ models: - trip_purpose_and_destination - trip_scheduling - trip_mode_choice + - av_routing - parking_location ### mp_summarize (single process) - write_data_dictionary diff --git a/src/asim/extensions/__init__.py b/src/asim/extensions/__init__.py index 971f47368..f937e727e 100644 --- a/src/asim/extensions/__init__.py +++ b/src/asim/extensions/__init__.py @@ -1,4 +1,5 @@ from . import av_ownership +from . import av_routing from . import external_identification from . import external_location_choice from . import transponder_ownership diff --git a/src/asim/extensions/av_routing.py b/src/asim/extensions/av_routing.py new file mode 100644 index 000000000..89b958a3f --- /dev/null +++ b/src/asim/extensions/av_routing.py @@ -0,0 +1,1280 @@ +# ActivitySim +# See full license in LICENSE.txt. +import logging + +import numpy as np +import pandas as pd +import itertools + +from activitysim.core import ( + chunk, + config, + expressions, + logit, + simulate, + tracing, + workflow, + interaction_simulate, + util, +) +from activitysim.core.configuration.base import PreprocessorSettings +from activitysim.core.configuration.logit import LogitComponentSettings + +logger = logging.getLogger(__name__) + +# This is a global variable to store the mapping of zones to the nearest parking zone. +PARKING_ZONE_MAP = {} + + +class AVRoutingSettings(LogitComponentSettings): + """ + Settings for the `AVRouting` component. + """ + + AV_TRIP_MATCHING_SPEC: str + AV_TRIP_MATCHING_COEFFICIENTS: str + + av_trip_matching_preprocessor: PreprocessorSettings | None = None + + AV_REPOSITIONING_SPEC: str + AV_REPOSITIONING_COEFFICIENTS: str + + av_repositioning_preprocessor: PreprocessorSettings | None = None + + AV_PARKING_ZONE_COLUMN: str + + NEAREST_ZONE_SKIM: str = "DIST" + + DRIVING_MODES: list[str] + """List of modes that are eligible for routing with a household AV""" + + explicit_chunk: float = 0 + """ + If > 0, use this chunk size instead of adaptive chunking. + If less than 1, use this fraction of the total number of rows. + If not supplied or None, will default to the chunk size in the location choice model settings. + """ + + MAX_AVS_TO_CONSIDER: int | None = None + """ + Maximum number of AVs to consider per household when constructing alternatives. + If None, all AVs in the household are considered. + Capping this value reduces the combinatorial explosion of alternatives but may + result in some AVs not being assigned trips. Excluded AVs will remain at their + current location for the time period. + """ + + MAX_TRIPS_TO_CONSIDER: int | None = None + """ + Maximum number of trips to consider per household per time period when constructing alternatives. + If None, all trips in the household are considered. + Capping this value reduces the combinatorial explosion of alternatives but may + result in some trips not being matched to an AV. + """ + + MAX_NEXT_TRIPS_TO_CONSIDER: int = 3 + """ + Maximum number of future household trips to consider for AV repositioning. + Default is 3. The AV repositioning specification file (av_repositioning.csv) must + include matching alternatives for each next trip option (e.g., service_next_trip_1, + service_next_trip_2, etc.). If you change this setting, you must also update the + spec file to include or remove the corresponding alternatives. + """ + + +def setup_model_settings(state, model_settings): + """ + Reading the coefficients and spec files so we aren't reading every time period + """ + model_settings.AV_TRIP_MATCHING_SPEC = state.filesystem.read_model_spec( + file_name=model_settings.AV_TRIP_MATCHING_SPEC + ) + model_settings.AV_TRIP_MATCHING_COEFFICIENTS = ( + state.filesystem.read_model_coefficients( + file_name=model_settings.AV_TRIP_MATCHING_COEFFICIENTS + ) + ) + + model_settings.AV_REPOSITIONING_SPEC = state.filesystem.read_model_spec( + file_name=model_settings.AV_REPOSITIONING_SPEC + ) + model_settings.AV_REPOSITIONING_COEFFICIENTS = ( + state.filesystem.read_model_coefficients( + file_name=model_settings.AV_REPOSITIONING_COEFFICIENTS + ) + ) + + return model_settings + + +def setup_skims_trip_matching(state, interaction_df: pd.DataFrame): + """ + Setup skims for AV routing. + """ + network_los = state.get_injectable("network_los") + skim_dict = network_los.get_default_skim_dict() + + # creating skim wrappers + vo_to_t_skim_stack_wrapper = skim_dict.wrap_3d( + orig_key="veh_location", dest_key="origin", dim3_key="out_period" + ) + trip_odt_skim_wrapper = skim_dict.wrap_3d( + orig_key="origin", dest_key="destination", dim3_key="out_period" + ) + + skims = { + "odt_skims": trip_odt_skim_wrapper, + "veho_tripo_t_skims": vo_to_t_skim_stack_wrapper, + } + + # updating interaction_df with skim compliant values + interaction_df["out_period"] = network_los.skim_time_period_label( + interaction_df["depart"].fillna(interaction_df["depart"].mode()[0]) + ) + interaction_df["veh_location"] = ( + pd.to_numeric(interaction_df["veh_location"], errors="coerce") + .fillna(-1) + .astype(int) + ) + interaction_df["origin"] = ( + pd.to_numeric(interaction_df["origin"], errors="coerce").fillna(-1).astype(int) + ) + interaction_df["destination"] = ( + pd.to_numeric(interaction_df["destination"], errors="coerce") + .fillna(-1) + .astype(int) + ) + + simulate.set_skim_wrapper_targets(interaction_df, skims) + + return skims, interaction_df + + +def construct_av_to_trip_alternatives(num_avs, num_trips): + """ + Construct a DataFrame of all possible AV-trips assignments. + + Each row represents a unique assignment of trips to AVs. + The first trip (trip_0) is a placeholder for no trip assigned to an AV. + The remaining trips (trip_1, trip_2, ..., trip_n) represent actual trips. + + Example for 2 AVs and 2 trips: + av_1 av_2 + 0 trip_0 trip_0 + 1 trip_0 trip_1 + 2 trip_0 trip_2 + 3 trip_1 trip_0 + 4 trip_1 trip_2 + 5 trip_2 trip_0 + 6 trip_2 trip_1 + """ + av_columns = [f"av_{i+1}" for i in range(num_avs)] + trip_labels = [f"trip_{i}" for i in range(1, num_trips + 1)] + trip_labels_with_zero = ["trip_0"] + trip_labels + + # All possible assignments (with replacement) of trips (including trip_0) to AVs + all_assignments = itertools.product(trip_labels_with_zero, repeat=num_avs) + + # Filter so that each trip (except trip_0) is assigned at most once + valid_assignments = [ + assignment + for assignment in all_assignments + if len(set([t for t in assignment if t != "trip_0"])) + == len([t for t in assignment if t != "trip_0"]) + ] + + alts = pd.DataFrame(valid_assignments, columns=av_columns) + alts.index.name = "alt" + return alts + + +def build_av_to_trip_interaction_df( + vehicles: pd.DataFrame, + trips: pd.DataFrame, + alts: pd.DataFrame, + choosers: pd.DataFrame, +): + """ + Creating a table that matches a single av trip with a single trip. + This allows us to calculate the partial alternative utilities for each trip-AV combination individually. + + Example for 2 AVs and 1 trip: + household_id | vehicle_id | trip_id | alt | vehicle_info | trip_info + 1 | 1 | 0 | 0 | ... | ... + 1 | 2 | 0 | 0 | ... | ... + 1 | 1 | 1 | 1 | ... | ... + 1 | 2 | 0 | 1 | ... | ... + 1 | 1 | 0 | 2 | ... | ... + 1 | 2 | 1 | 2 | ... | ... + + + Parameters: + vehicles: DataFrame containing vehicle information. + trips: DataFrame containing trip information. + alts: DataFrame containing alternatives (AV-trip combinations). + choosers: DataFrame containing choosers (households). + + Returns: + interaction_df: DataFrame containing the interaction between AVs and trips. + """ + + # Long form alternatives: one row per (alt, av_number) mapping to trip_number + alts_long = alts.reset_index().melt( + id_vars="alt", var_name="av_col", value_name="trip_token" + ) + # Extract integers + alts_long["av_number"] = alts_long["av_col"].str.split("_").str[1].astype(int) + alts_long["trip_number"] = alts_long["trip_token"].str.split("_").str[1].astype(int) + + alts_long = alts_long[["alt", "av_number", "trip_number"]].sort_values( + ["alt", "av_number"] + ) + alt_rows = len(alts_long) + + # Cartesian product households x alts_long + hh_ids = choosers.index.to_numpy() + n_hh = len(hh_ids) + + base = pd.DataFrame( + { + "household_id": np.repeat(hh_ids, alt_rows), + "alt": np.tile(alts_long["alt"].to_numpy(), n_hh), + "av_number": np.tile(alts_long["av_number"].to_numpy(), n_hh), + "trip_number": np.tile(alts_long["trip_number"].to_numpy(), n_hh), + } + ) + + # Fast lookups for vehicle and trip attributes using MultiIndex reindex + veh_lookup = vehicles.reset_index(drop=False).set_index( + ["household_id", "av_number"] + ) + trip_lookup = trips.reset_index(drop=False).set_index( + ["household_id", "trip_number"] + ) + + veh_mi = pd.MultiIndex.from_arrays( + [base["household_id"].to_numpy(), base["av_number"].to_numpy()], + names=["household_id", "av_number"], + ) + trip_mi = pd.MultiIndex.from_arrays( + [base["household_id"].to_numpy(), base["trip_number"].to_numpy()], + names=["household_id", "trip_number"], + ) + + veh_block = veh_lookup.reindex(veh_mi).reset_index(drop=True) + trip_block = trip_lookup.reindex(trip_mi).reset_index(drop=True) + trip_block.columns = [ + col + "_trip" if col in veh_block.columns else col for col in trip_block.columns + ] + + # Concatenate + interaction_df = pd.concat([base, veh_block, trip_block], axis=1) + + # Integrity check: rows per hh should equal alts.shape[0] * alts.shape[1] + expected = alts.shape[0] * alts.shape[1] + counts = interaction_df.groupby("household_id").size() + assert ( + counts == expected + ).all(), f"Row count mismatch (expected {expected} per household)." + + return interaction_df + + +def execute_av_trip_matches( + state, + model_settings: AVRoutingSettings, + choices: pd.DataFrame, + vehicle_trips: pd.DataFrame | None, + trips_in_period: pd.DataFrame, + av_vehicles: pd.DataFrame, +): + """ + Execute the AV trip matches by updating the vehicles DataFrame with the chosen trips. + This function updates the vehicles DataFrame based on the choices made by the AV routing model. + + If two trips exist on the same tour in this time period, both trips are serviced by the AV. + If the AV is not at the origin, an additional repositioning trip is added from the vehicle + location to the trip origin. + + Parameters: + state: The current state of the simulation. + model_settings: The settings for the AV routing model. + choices: The choices made by the AV routing model. + vehicles: The vehicles DataFrame to be updated. + + Returns: + vehicles: The updated vehicles DataFrame. + """ + + if choices.empty: + # no trips to make + return vehicle_trips + + # looping through avs in the household + av_cols = choices.columns[choices.columns.str.startswith("av_")] + + all_veh_trips = [] + + for av_col in av_cols: + av_number = int(av_col.split("_")[1]) + + # drop trip_0 or na from choices since they represent the AV not doing anything + vehicle_choices = ( + choices.loc[choices[av_col] != "trip_0", av_col] + .dropna() + .to_frame(name="av_choice") + .reset_index() + ) + vehicle_choices["trip_number"] = ( + vehicle_choices.av_choice.str.split("_").str[1].astype(int) + ) + vehicle_choices["av_number"] = av_number + + # merge vehicle id so we know which vehicle we are tracking + current_veh_trips = vehicle_choices.merge( + av_vehicles.reset_index()[["household_id", "vehicle_id", "av_number"]], + on=["household_id", "av_number"], + how="left", + validate="1:1", + ) + # merge trip information so we know where the vehicle is going + # will include any additional trips in the tour during this time period + # because the trip_number is the same across those trips in trips_in_period + current_veh_trips = current_veh_trips.merge( + trips_in_period.reset_index()[ + [ + "household_id", + "trip_id", + "depart", + "origin", + "destination", + "trip_number", + ] + ], + on=["household_id", "trip_number"], + how="left", + validate="1:m", + ) + + all_veh_trips.append(current_veh_trips) + + all_veh_trips = pd.concat(all_veh_trips, ignore_index=True) + all_veh_trips["is_deadhead"] = False + assert ( + all_veh_trips.trip_id.notna().all() + ), f"Some AV trips do not have a trip_id after merging with trips_in_period:\n{all_veh_trips[all_veh_trips.trip_id.isna()]}" + all_veh_trips["trip_type"] = "serving_trip" + + # add trip to table if the AV is not at the trip origin! + first_veh_trip = all_veh_trips.drop_duplicates("vehicle_id") + veh_locations = av_vehicles.loc[first_veh_trip.vehicle_id, "veh_location"] + additional_reposition_trips = first_veh_trip[ + first_veh_trip["origin"] != veh_locations.values + ] + + if not additional_reposition_trips.empty: + assert ( + additional_reposition_trips.vehicle_id.is_unique + ), "Each vehicle should only need one repositioning trip" + # destination of the repositioning trip is the origin of the first vehicle trip for this time period + additional_reposition_trips["destination"] = additional_reposition_trips[ + "origin" + ] + additional_reposition_trips["origin"] = av_vehicles.loc[ + additional_reposition_trips.vehicle_id, "veh_location" + ].values + additional_reposition_trips[ + ["trip_number", "av_number", "trip_id", "av_repositioning_choice"] + ] = pd.NA + additional_reposition_trips["is_deadhead"] = True + additional_reposition_trips["trip_type"] = "going_to_matched_trip" + + # merge in the repositioning trips + all_veh_trips = pd.concat( + [additional_reposition_trips, all_veh_trips], ignore_index=True + ) + # sort by vehicle_id will put these new trips at the start + all_veh_trips.sort_values( + by=["vehicle_id", "depart"], inplace=True, ignore_index=True + ) + + # add new trips to existing vehicle trip table + if vehicle_trips is not None: + vehicle_trips = pd.concat([vehicle_trips, all_veh_trips], ignore_index=True) + else: + vehicle_trips = all_veh_trips + + assert ( + all_veh_trips.vehicle_id.notna().all() + ), "There should be a vehicle_id for each trip made by an AV" + + return vehicle_trips + + +def update_vehicle_positions(vehicle_trips, av_vehicles): + """ + Update the vehicle positions based on the trips assigned to each AV. + + Parameters: + vehicle_trips: DataFrame containing trips made by household AVs. + av_vehicles: DataFrame containing the all AV vehicles. + + Returns: + av_vehicles: The updated AV vehicles DataFrame with vehicle_location + """ + # get the rows with the latest depart time for each vehicle (last instance if multiple have same time) + latest_trips = ( + vehicle_trips.groupby(["household_id", "vehicle_id"]) + .tail(1) + .set_index("vehicle_id") + ) + + # update the vehicle_location in av_vehicles with the latest trip's destination + av_vehicles.loc[latest_trips.index, "veh_location"] = latest_trips["destination"] + + assert ( + av_vehicles.veh_location.notna().all() + ), "There should be a vehicle_location for each AV" + + return av_vehicles + + +def _av_trip_matching( + state, + model_settings: AVRoutingSettings, + trips: pd.DataFrame, + vehicles: pd.DataFrame, + alts: pd.DataFrame, + trace_label: str, + chunk_sizer, +) -> pd.DataFrame: + """ + Internal function to match trips to AVs for a single chunk of choosers. + + Parameters: + state: The current state of the simulation. + model_settings: The settings for the AV routing model. + trips: DataFrame containing trips for the current chunk of households. + vehicles: DataFrame containing vehicles for the current chunk of households. + alts: DataFrame containing alternatives (AV-trip combinations). + trace_label: Label for tracing. + chunk_sizer: Chunk sizer for memory tracking. + + Returns: + DataFrame containing the choices for each household in the chunk. + """ + + # the real choosers here are the households with an av that have trips in this time period + choosers = pd.DataFrame(index=trips.household_id.unique()) + choosers.index.name = "household_id" + + model_spec = simulate.eval_coefficients( + state, + model_settings.AV_TRIP_MATCHING_SPEC, + model_settings.AV_TRIP_MATCHING_COEFFICIENTS, + estimator=None, + ) + constants = config.get_model_constants(model_settings) + + trips = util.drop_unused_columns( + trips, + model_spec, + locals_d=constants, + custom_chooser=None, + sharrow_enabled=False, + additional_columns=[ + "trip_number", + "household_id", + "depart", + "tour_id", + "destination", + "origin", + ], + ) + + interaction_df = build_av_to_trip_interaction_df( + vehicles=vehicles, + trips=trips, + alts=alts, + choosers=choosers, + ) + chunk_sizer.log_df(trace_label, "interaction_df", interaction_df) + + have_trace_targets = state.tracing.has_trace_targets( + interaction_df, slicer="household_id" + ) + + # setup skim wrappers + skims, interaction_df = setup_skims_trip_matching(state, interaction_df) + + locals_d = skims + if constants is not None: + locals_d.update(constants) + + expressions.annotate_preprocessors( + state, + df=interaction_df, + locals_dict=locals_d, + skims=None, + model_settings=model_settings, + trace_label=trace_label, + preprocessor_setting_name="av_trip_matching_preprocessor", + ) + + # evaluate expressions from the spec multiply by coefficients and sum + # spec is df with one row per spec expression and one col with utility coefficient + # column names of model_design match spec index values + # utilities has utility value for elements in the cross product of choosers and alternatives + # interaction_utilities is a df with one utility column and one row per row in model_design + if have_trace_targets: + trace_rows, trace_ids = state.tracing.interaction_trace_rows( + interaction_df, choosers, sample_size=None + ) + state.tracing.trace_df( + interaction_df, + tracing.extend_trace_label(trace_label, "interaction_df"), + transpose=False, + ) + # write alternatives to trace folder as well + state.tracing.trace_df( + alts, + tracing.extend_trace_label(trace_label, "alts"), + slicer="NONE", + transpose=False, + ) + else: + trace_rows = trace_ids = None + + ( + interaction_df["utility"], + trace_eval_results, + ) = interaction_simulate.eval_interaction_utilities( + state, + model_spec, + interaction_df, + locals_d, + trace_label, + trace_rows, + estimator=None, + log_alt_losers=False, + compute_settings=model_settings.compute_settings, + ) + + # sum utilities across the alternatives + interaction_utilities = ( + interaction_df.groupby(["household_id", "alt"])["utility"] + .sum() + .reset_index() + .set_index("alt") + ) + chunk_sizer.log_df(trace_label, "interaction_utilities", interaction_utilities) + + del interaction_df + chunk_sizer.log_df(trace_label, "interaction_df", None) + + # make choices based on the summed utilities + # reshape utilities (one utility column and one row per row in model_design) + # to a dataframe with one row per chooser and one column per alternative + utilities = pd.DataFrame( + interaction_utilities.utility.values.reshape(len(choosers), len(alts)), + index=choosers.index, + ) + chunk_sizer.log_df(trace_label, "utilities", utilities) + + if have_trace_targets: + state.tracing.trace_df( + utilities, + tracing.extend_trace_label(trace_label, "utils"), + column_labels=["alternative", "utility"], + ) + + # convert to probabilities (utilities exponentiated and normalized to probs) + # probs is same shape as utilities, one row per chooser and one column for alternative + probs = logit.utils_to_probs( + state, utilities, trace_label=trace_label, trace_choosers=choosers + ) + chunk_sizer.log_df(trace_label, "probs", probs) + + del utilities + chunk_sizer.log_df(trace_label, "utilities", None) + + # make choices + # positions is series with the chosen alternative represented as a column index in probs + # which is an integer between zero and num alternatives in the alternative sample + positions, rands = logit.make_choices( + state, probs, trace_label=trace_label, trace_choosers=choosers + ) + + # need to get from an integer offset into the alternative sample to the alternative index + # that is, we want the index value of the row that is offset by rows into the + # tranche of this choosers alternatives created by cross join of alternatives and choosers + # offsets is the offset into model_design df of first row of chooser alternatives + offsets = np.arange(len(positions)) * len(alts) + # resulting Int64Index has one element per chooser row and is in same order as choosers + choices = interaction_utilities.index.take(positions + offsets) + + # create a series with index from choosers and the index of the chosen alternative + choices = pd.Series(choices, index=choosers.index) + chunk_sizer.log_df(trace_label, "choices", choices) + + if have_trace_targets: + state.tracing.trace_df( + choices, + tracing.extend_trace_label(trace_label, "choices"), + columns=[None, trace_label], + ) + state.tracing.trace_df( + rands, + tracing.extend_trace_label(trace_label, "rands"), + columns=[None, "rand"], + ) + + choices = ( + choices.to_frame(name="alt") + .reset_index() + .merge(alts.reset_index(), how="left", on="alt") + .set_index("household_id") + ) + + return choices + + +def av_trip_matching( + state, + model_settings: AVRoutingSettings, + trips: pd.DataFrame, + vehicles: pd.DataFrame, + trace_label: str, +) -> pd.DataFrame: + """ + Match trips to AVs with optional chunking for memory management. + + First, construct all possible trip-AV combinations within the household for this time period. + Then, use a utility function to select the best AV for each trip. + + Much of the utility and choice logic is taken from activitysim.core.interaction_simulate + (Couldn't just call it because of the extra step here where we combine across alternatives) + + Parameters: + state: The current state of the simulation. + model_settings: The settings for the AV routing model. + trips: DataFrame containing trips to match. + vehicles: DataFrame containing available AV vehicles. + trace_label: Label for tracing. + explicit_chunk_size: If > 0, specifies the chunk size to use when chunking. + If < 1, specifies the fraction of the total number of choosers. + + Returns: + DataFrame containing the choices for each household. + """ + trace_label = tracing.extend_trace_label(trace_label, "av_trip_matching") + + # get the maximum number of AVs and Trips during this time period + max_number_of_avs = vehicles.groupby("household_id").size().max() + max_number_of_trips = trips.groupby("household_id").size().max() + + # apply caps if configured (reduces combinatorial explosion of alternatives) + if model_settings.MAX_AVS_TO_CONSIDER is not None: + if max_number_of_avs > model_settings.MAX_AVS_TO_CONSIDER: + n_excluded_avs = ( + vehicles.groupby("household_id").size() + > model_settings.MAX_AVS_TO_CONSIDER + ).sum() + logger.warning( + f"Capping max AVs from {max_number_of_avs} to {model_settings.MAX_AVS_TO_CONSIDER}. " + f"{n_excluded_avs} households have AVs that will be excluded from matching." + ) + max_number_of_avs = model_settings.MAX_AVS_TO_CONSIDER + # Filter vehicles to only include the first N per household + # av_number is 1-indexed, so we keep av_number <= cap + vehicles = vehicles[ + vehicles.av_number <= model_settings.MAX_AVS_TO_CONSIDER + ] + + if model_settings.MAX_TRIPS_TO_CONSIDER is not None: + if max_number_of_trips > model_settings.MAX_TRIPS_TO_CONSIDER: + n_excluded_trips = ( + trips.groupby("household_id").size() + > model_settings.MAX_TRIPS_TO_CONSIDER + ).sum() + logger.warning( + f"Capping max trips from {max_number_of_trips} to {model_settings.MAX_TRIPS_TO_CONSIDER}. " + f"{n_excluded_trips} households have trips that will be excluded from AV matching." + ) + max_number_of_trips = model_settings.MAX_TRIPS_TO_CONSIDER + # Filter trips to only include the first N per household + # trip_number is 1-indexed, so we keep trip_number <= cap + trips = trips[trips.trip_number <= model_settings.MAX_TRIPS_TO_CONSIDER] + + # construct alternatives once for all chunks + alts = construct_av_to_trip_alternatives(max_number_of_avs, max_number_of_trips) + + # the real choosers here are the households with an av that have trips in this time period + choosers = pd.DataFrame(index=trips.household_id.unique()) + choosers.index.name = "household_id" + + result_list = [] + for ( + i, + chooser_chunk, + chunk_trace_label, + chunk_sizer, + ) in chunk.adaptive_chunked_choosers( + state, choosers, trace_label, explicit_chunk_size=model_settings.explicit_chunk + ): + # filter trips and vehicles to only those in the current chunk + chunk_hh_ids = chooser_chunk.index + trips_chunk = trips[trips.household_id.isin(chunk_hh_ids)] + vehicles_chunk = vehicles[vehicles.household_id.isin(chunk_hh_ids)] + + choices = _av_trip_matching( + state, + model_settings, + trips=trips_chunk, + vehicles=vehicles_chunk, + alts=alts, + trace_label=chunk_trace_label, + chunk_sizer=chunk_sizer, + ) + + result_list.append(choices) + chunk_sizer.log_df(trace_label, "result_list", result_list) + + if len(result_list) > 1: + choices = pd.concat(result_list) + else: + choices = result_list[0] + + assert len(choices.index) == len(choosers.index) + + return choices + + +def get_next_household_trips_to_service( + state, + choosers: pd.DataFrame, + av_eligible_trips: pd.DataFrame, + av_vehicles: pd.DataFrame, + max_next_trips: int = 3, +) -> pd.DataFrame: + """ + Get the next N household trips to service for each AV vehicle. + Eligible trips are those that satisfy the following conditions: + - the trip origin is not at home + - the trip does not have an AV at their current location + - exists in households that had an AV service a trip in this time period + - is the next trip for the person in the household + + Parameters: + state: The current state of the simulation. + choosers: DataFrame containing the choosers (AV vehicles). + av_eligible_trips: DataFrame containing the eligible trips for AV routing. + av_vehicles: DataFrame containing all AV vehicles. + max_next_trips: Maximum number of next trips to consider for repositioning. + + Returns: + choosers with selected next trip info attached as new columns, e.g. + next_trip_id_1, next_trip_depart_1, next_trip_origin_1, next_trip_destination_1, next_trip_id_2,... + """ + + # get the next trip for each person in the household that are not at home + next_hh_trips = ( + av_eligible_trips[ + av_eligible_trips.household_id.isin(choosers.household_id) + & (av_eligible_trips.depart > choosers["depart"].max()) + & (av_eligible_trips.origin != av_eligible_trips.home_zone_id) + ] + .reset_index() + .sort_values(by=["depart", "trip_num"]) + .groupby(["household_id", "person_id"]) + .first() + .reset_index() + .set_index("trip_id") + ) + + # remove the trip if there is already an AV at the trip origin + # this also takes care of the AV trying to reposition to its current location + next_hh_trips_x_av = next_hh_trips.reset_index().merge( + av_vehicles[["household_id", "veh_location"]], + on="household_id", + how="inner", + ) + trips_with_av_at_origin = next_hh_trips_x_av[ + next_hh_trips_x_av.origin == next_hh_trips_x_av.veh_location + ] + next_hh_trips = next_hh_trips[ + ~next_hh_trips.index.isin(trips_with_av_at_origin.trip_id) + ] + + # select only the first N possible trips to reroute to + next_hh_trips = ( + next_hh_trips.groupby("household_id").head(max_next_trips).reset_index() + ) + # number the trips + next_hh_trips["next_trip_number"] = ( + next_hh_trips.groupby("household_id").cumcount() + 1 + ) + + trip_columns_to_keep = [ + "trip_id", + "person_id", + "household_id", + "depart", + "origin", + "destination", + ] + + # loop through next_trip_number and add the trip info to choosers + choosers.reset_index(inplace=True, drop=False) + for next_trip_num in range(1, max_next_trips + 1): + next_trips = next_hh_trips[next_hh_trips.next_trip_number == next_trip_num][ + trip_columns_to_keep + ] + next_trips.columns = [ + f"next_{col}_{next_trip_num}" for col in trip_columns_to_keep + ] + next_trips.rename( + columns={f"next_household_id_{next_trip_num}": "household_id"}, inplace=True + ) + choosers = choosers.merge(next_trips, on="household_id", how="left") + choosers.set_index("repo_chooser_id", inplace=True) + + # fill NaN values with -1 so skims and stuff works with utility expressions + # use infer_objects to avoid FutureWarning about downcasting + choosers = choosers.infer_objects(copy=False) + choosers.fillna(-1, inplace=True) + + # adding home zone so we can use it for go_to_home option + home_zone_map = av_eligible_trips.drop_duplicates(subset="household_id").set_index( + "household_id" + )["home_zone_id"] + choosers["home_zone_id"] = choosers["household_id"].map(home_zone_map) + + return choosers + + +def get_nearest_parking_zone_id( + state, model_settings: AVRoutingSettings, choosers: pd.DataFrame +) -> pd.Series: + """ + Get the nearest parking zone ID for each AV vehicle needing repositioning. + + Parameters: + state: The current state of the simulation. + choosers: DataFrame containing the choosers (AV vehicles). + + Returns: + Series with nearest parking zone IDs indexed by household_id. + """ + # grabbing zones that have parking available + landuse = state.get_table("land_use") + parking_zones = landuse[landuse[model_settings.AV_PARKING_ZONE_COLUMN] == 1].index + + if parking_zones.empty: + logger.warning("No parking zones available for AVs.") + return pd.Series(-1, index=choosers.index, name="nearest_av_parking_zone_id") + + def nearest_skim(skim_dict, skim_name, oz, zones): + # need to pass equal # of origins and destinations to skim_dict + orig_zones = np.full(shape=len(zones), fill_value=oz, dtype=int) + return ( + oz, + zones[np.argmin(skim_dict.lookup(orig_zones, zones, skim_name))], + ) + + # only need to find nearest zone for zones not already in PARKING_ZONE_MAP + unmatched_zones = choosers.destination[ + ~choosers.destination.isin(PARKING_ZONE_MAP.keys()) + ].unique() + + # check if we even need to find any more nearest zones + if unmatched_zones.size == 0: + return choosers.destination.map(PARKING_ZONE_MAP) + + # get nearest zones from skims + skim_dict = state.get_injectable("skim_dict") + nearest_zones = [ + nearest_skim(skim_dict, model_settings.NEAREST_ZONE_SKIM, oz, parking_zones) + for oz in unmatched_zones + ] + + # update PARKING_ZONE_MAP with nearest parking zone for each unmatched zone + PARKING_ZONE_MAP.update(dict(nearest_zones)) + + assert choosers.destination.isin( + PARKING_ZONE_MAP + ).all(), "All vehicle locations should have a corresponding parking zone in PARKING_ZONE_MAP" + + return choosers.destination.map(PARKING_ZONE_MAP) + + +def reposition_avs_from_choice( + state, veh_trips_this_period, choosers, max_next_trips: int = 3 +): + """ + Reposition AVs based on the choices made by the AV routing model. + + Parameters: + state: The current state of the simulation. + veh_trips_this_period: DataFrame containing trips made by household AVs in this time period. + choosers: DataFrame containing the choosers with repositioning choices. + max_next_trips: Maximum number of next trips that were considered for repositioning. + """ + # make sure all choices are one of the expected options + expected_choices = [ + "go_home", + "go_to_parking", + "stay_with_person", + ] + [f"service_next_trip_{i}" for i in range(1, max_next_trips + 1)] + assert ( + choosers["av_repositioning_choice"].isin(expected_choices).all() + ), "All repositioning choices should be one of the expected options" + + # first duplicating all trips in this period + new_veh_trips = choosers.copy()[veh_trips_this_period.columns] + new_veh_trips["origin"] = new_veh_trips["destination"] + new_veh_trips["destination"] = pd.NA + + # updating location to home for vehicles going home + go_home_mask = new_veh_trips["av_repositioning_choice"] == "go_home" + new_veh_trips.loc[go_home_mask, "destination"] = choosers.loc[ + go_home_mask, "home_zone_id" + ] + new_veh_trips.loc[go_home_mask, "trip_type"] = "going_home" + + # updating location to nearest parking zone for vehicles going to remote parking + go_park_mask = new_veh_trips["av_repositioning_choice"] == "go_to_parking" + new_veh_trips.loc[go_park_mask, "destination"] = new_veh_trips.loc[ + go_park_mask, "origin" + ].map(PARKING_ZONE_MAP) + new_veh_trips.loc[go_park_mask, "trip_type"] = "going_to_parking" + + # updating location for those going to the next trip origin + new_veh_trips["next_trip_id"] = np.nan + for next_trip_num in range(1, max_next_trips + 1): + go_next_trip_mask = ( + new_veh_trips["av_repositioning_choice"] + == f"service_next_trip_{next_trip_num}" + ) + new_veh_trips.loc[go_next_trip_mask, "destination"] = choosers.loc[ + go_next_trip_mask, f"next_origin_{next_trip_num}" + ] + new_veh_trips.loc[go_next_trip_mask, "next_trip_id"] = choosers.loc[ + go_next_trip_mask, f"next_trip_id_{next_trip_num}" + ] + new_veh_trips.loc[go_next_trip_mask, "trip_type"] = "going_to_next_trip" + + # remove any vehicles that are not repositioning + # needs to come at the end of the other options to keep indexing correct with choosers + new_veh_trips = new_veh_trips[ + new_veh_trips["av_repositioning_choice"] != "stay_with_person" + ] + + assert ( + new_veh_trips["destination"].notna().all() + ), "All repositioning trips should have a destination set or be filtered out" + + new_veh_trips["is_deadhead"] = True + na_cols = [ + "av_choice", + "av_repositioning_choice", + "trip_number", + "av_number", + "trip_id", + ] + new_veh_trips[na_cols] = np.nan + + # appending the new trips to the existing trips + veh_trips_this_period = pd.concat( + [veh_trips_this_period, new_veh_trips], ignore_index=True + ) + veh_trips_this_period.sort_values( + by=["household_id", "vehicle_id", "depart"], inplace=True + ) + + return veh_trips_this_period + + +def setup_skims_av_repositioning( + state, choosers: pd.DataFrame, max_next_trips: int = 3 +): + """ + Set up skim wrappers for AV Repositioning model. + + Parameters: + state: The current state of the simulation. + choosers: DataFrame containing the choosers (AV vehicles). + max_next_trips: Maximum number of next trips to set up skims for. + """ + network_los = state.get_injectable("network_los") + skim_dict = network_los.get_default_skim_dict() + + # creating skim wrappers + v_to_home_skim_wrapper = skim_dict.wrap_3d( + orig_key="destination", dest_key="home_zone_id", dim3_key="out_period" + ) + v_to_parking_skim_wrapper = skim_dict.wrap_3d( + orig_key="destination", + dest_key="nearest_av_parking_zone_id", + dim3_key="out_period", + ) + + skims = { + "v_to_home_skim": v_to_home_skim_wrapper, + "v_to_parking_skim": v_to_parking_skim_wrapper, + } + + # dynamically add skim wrappers for each next trip option + for i in range(1, max_next_trips + 1): + skims[f"v_to_trip_orig{i}_skim"] = skim_dict.wrap_3d( + orig_key="destination", dest_key=f"next_origin_{i}", dim3_key="out_period" + ) + skims[f"next_trip_od{i}_skim"] = skim_dict.wrap_3d( + orig_key=f"next_origin_{i}", + dest_key=f"next_destination_{i}", + dim3_key="out_period", + ) + + # updating choosers with skim compliant values + choosers["out_period"] = network_los.skim_time_period_label( + choosers["depart"].fillna(choosers["depart"].mode()[0]) + ) + + simulate.set_skim_wrapper_targets(choosers, skims) + + return skims, choosers + + +def av_repositioning( + state, + model_settings: AVRoutingSettings, + veh_trips_this_period: pd.DataFrame, + av_eligible_trips: pd.DataFrame, + av_vehicles: pd.DataFrame, + trace_label: str, +) -> None: + """ + Reposition AVs based on household needs. + + Alternatives are: + 1. Stay with person + 2. Go to remote parking + 3. Go home + 4. Service another household trip (3 options for next trip) + + Choosers of this model are av vehicles who serviced a trip during this time period + as determined by the av_trip_matching model. We are now deciding where to go after + they have dropped off their rider. + + Parameters: + state: The current state of the simulation. + model_settings: The settings for the AV routing model. + veh_trips_this_period: DataFrame containing trips made by household AVs in this time period. + av_eligible_trips: DataFrame containing trips eligible for AV routing. + av_vehicles: DataFrame containing all AV vehicles. + trace_label: Label for tracing the repositioning choices. + + Returns: + veh_trips_this_period: input dataframe with additional repositioning trips appended + """ + + # can have more than one veh trip in this period if the av serviced multiple trips + # so we need to drop duplicates to get only the last trip for each vehicle + choosers = veh_trips_this_period.drop_duplicates(subset=["vehicle_id"], keep="last") + choosers.index.name = "repo_chooser_id" + + choosers["nearest_av_parking_zone_id"] = get_nearest_parking_zone_id( + state, model_settings, choosers + ) + + choosers = get_next_household_trips_to_service( + state, + choosers, + av_eligible_trips, + av_vehicles, + max_next_trips=model_settings.MAX_NEXT_TRIPS_TO_CONSIDER, + ) + + skims, choosers = setup_skims_av_repositioning( + state, choosers, max_next_trips=model_settings.MAX_NEXT_TRIPS_TO_CONSIDER + ) + + model_spec = simulate.eval_coefficients( + state, + model_settings.AV_REPOSITIONING_SPEC, + model_settings.AV_REPOSITIONING_COEFFICIENTS, + estimator=None, + ) + + locals_d = skims + constants = config.get_model_constants(model_settings) + if constants is not None: + locals_d.update(constants) + + state.get_rn_generator().add_channel("av_repositioning", choosers) + + expressions.annotate_preprocessors( + state, + df=choosers, + locals_dict=locals_d, + skims=None, + model_settings=model_settings, + trace_label=trace_label, + preprocessor_setting_name="av_repositioning_preprocessor", + ) + + choices = simulate.simple_simulate( + state, + choosers=choosers, + spec=model_spec, + nest_spec=None, + locals_d=locals_d, + trace_label=trace_label, + trace_choice_name="transponder_ownership", + estimator=None, + compute_settings=model_settings.compute_settings, + ) + + state.get_rn_generator().drop_channel("av_repositioning") + + choosers["av_repositioning_choice"] = model_spec.columns[choices.values] + veh_trips_this_period["av_repositioning_choice"] = choosers[ + "av_repositioning_choice" + ] + + veh_trips_this_period = reposition_avs_from_choice( + state, + veh_trips_this_period, + choosers, + max_next_trips=model_settings.MAX_NEXT_TRIPS_TO_CONSIDER, + ) + + return veh_trips_this_period + + +@workflow.step +def av_routing( + state: workflow.State, + households: pd.DataFrame, + trips: pd.DataFrame, + vehicles: pd.DataFrame, + model_settings: AVRoutingSettings | None = None, + model_settings_file_name: str = "av_routing.yaml", + trace_label: str = "av_routing", + trace_hh_id: bool = False, +) -> None: + """ + This model performs intra-household autonomous vehicle routing. + + The code performs the following: + 1. Select only driving trips from households with AVs + 2. Loop through time periods. For each time period: + a. Match trips to AVs using the av_trip_matching model + b. Execute the trip matches to create vehicle trips + c. Reposition AVs based on the choices made by the av_repositioning model + 4. Combine all vehicle trips into a single DataFrame and add it to the state + """ + if model_settings is None: + model_settings = AVRoutingSettings.read_settings_file( + state.filesystem, + model_settings_file_name, + ) + model_settings = setup_model_settings(state, model_settings) + + av_vehicles = vehicles[vehicles.vehicle_type.str.contains("-AV")].copy() + av_eligible_trips = trips[ + trips.trip_mode.isin(model_settings.DRIVING_MODES) + & trips.household_id.isin(av_vehicles.household_id) + ].copy() + time_periods = av_eligible_trips.depart.unique() + time_periods.sort() + + if av_vehicles.empty or av_eligible_trips.empty: + logger.info("No AVs or trips to process, skipping AV routing.") + return + + # prepping table for models: labeling vehicles and adding init location to home + av_eligible_trips["home_zone_id"] = av_eligible_trips.household_id.map( + households.home_zone_id.to_dict() + ) + av_vehicles["av_number"] = av_vehicles.groupby("household_id").cumcount() + 1 + av_vehicles["veh_location"] = households.home_zone_id.reindex( + av_vehicles.household_id + ).values + vehicle_trips = None + + av_trip_matching_choices = [] + all_veh_trips = [] + + # looping through time periods + for time_period in time_periods: + period_trace_label = tracing.extend_trace_label(trace_label, str(time_period)) + + # trips in the time period + trips_in_period = av_eligible_trips[av_eligible_trips.depart == time_period] + if trips_in_period.empty: + continue + + # keep only the first trip in a tour during this time period + # if selected, all trips in the tour will be serviced by the same av vehicle + trips_per_tour = trips_in_period.groupby("tour_id").cumcount() + 1 + first_trips_in_period = trips_in_period[trips_per_tour == 1] + + # labeling trips in household during this period + first_trips_in_period["trip_number"] = ( + first_trips_in_period.groupby("household_id").cumcount() + 1 + ) + # merging duplicate trip numbers back to trips_in_period to be used in executing_av_trip_matches + trips_in_period["trip_number"] = trips_in_period.tour_id.map( + first_trips_in_period.set_index("tour_id")["trip_number"] + ) + + choices = av_trip_matching( + state, + model_settings, + trips=first_trips_in_period, + vehicles=av_vehicles, + trace_label=tracing.extend_trace_label( + period_trace_label, "av_trip_matching" + ), + ) + + choices["time_period"] = time_period + av_trip_matching_choices.append(choices) + + veh_trips_this_period = execute_av_trip_matches( + state, model_settings, choices, vehicle_trips, trips_in_period, av_vehicles + ) + av_vehicles = update_vehicle_positions(veh_trips_this_period, av_vehicles) + veh_trips_this_period = av_repositioning( + state, + model_settings, + veh_trips_this_period, + av_eligible_trips, + av_vehicles, + trace_label=tracing.extend_trace_label( + period_trace_label, "av_repositioning" + ), + ) + # again update vehicle positions after av_repositioning model + av_vehicles = update_vehicle_positions(veh_trips_this_period, av_vehicles) + all_veh_trips.append(veh_trips_this_period) + + av_trip_matching_choices = pd.concat(av_trip_matching_choices, ignore_index=False) + + # create one table of all vehicle trips and add to pipeline + av_vehicle_trips = pd.concat(all_veh_trips, ignore_index=True) + av_vehicle_trips["av_vehicle_trip_id"] = ( + av_vehicle_trips.vehicle_id * 100 + + av_vehicle_trips.groupby("vehicle_id").cumcount() + ) + av_vehicle_trips.set_index("av_vehicle_trip_id", inplace=True) + state.add_table("av_vehicle_trips", av_vehicle_trips) + + # denote in the trips table which trips were serviced by an AV + # only serving trips have a valid trip_id (deadhead trips have NA) + served_trip_ids = av_vehicle_trips.loc[ + av_vehicle_trips["trip_type"] == "serving_trip", "trip_id" + ].dropna() + trips["serviced_by_av"] = trips.index.isin(served_trip_ids) + state.add_table("trips", trips) \ No newline at end of file diff --git a/src/asim/scripts/taxi_tnc_routing/AV_sensitivity_test_summaries.ipynb b/src/asim/scripts/taxi_tnc_routing/AV_sensitivity_test_summaries.ipynb new file mode 100644 index 000000000..c10dfe4c0 --- /dev/null +++ b/src/asim/scripts/taxi_tnc_routing/AV_sensitivity_test_summaries.ipynb @@ -0,0 +1,8318 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Imports / display settings\n", + "\n", + "from pathlib import Path\n", + "from typing import Dict, List, Optional\n", + "\n", + "import numpy as np\n", + "import pandas as pd\n", + "import plotly.graph_objects as go\n", + "import openmatrix as omx\n", + "\n", + "pd.set_option(\"display.max_columns\", 200)\n", + "pd.set_option(\"display.width\", 200)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading files" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['base', 'deadheading_charge', 'no_cost_remote_parking', 'no_parking_cbd']\n" + ] + } + ], + "source": [ + "# Config (paths, scenario namess)\n", + "\n", + "ROOT_DIR = Path(r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\outputs\\AV_intraHH_sensitivity_tests\")\n", + "\n", + "SCENARIO_FILES = {\n", + " \"households\": \"final_households.csv\",\n", + " \"trips\": \"final_trips.csv\",\n", + " \"av_trips\": \"final_av_vehicle_trips.csv\",\n", + "}\n", + "\n", + "LAND_USE_PATH = Path(\n", + " r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\outputs\\sensitivity_test_run_dir\\final_land_use.csv\"\n", + ")\n", + "\n", + "SKIM_PATH = Path(\n", + " r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\input_data_full\\skims\\traffic_skims_MD.omx\"\n", + ")\n", + "\n", + "SKIM_DIST_CORE = \"SOV_TR_H_DIST__MD\"\n", + "\n", + "DRIVE_MODES = [\"DRIVEALONE\", \"SHARED2\", \"SHARED3\"]\n", + "REPO_CORE_ORDER = [\"stay_with_person\", \"go_to_parking\", \"go_home\"]\n", + "\n", + "DAY_START_HHMM = \"03:00\"\n", + "\n", + "all_dirs = sorted([p.name for p in ROOT_DIR.iterdir() if p.is_dir()])\n", + "\n", + "ALL_SCENARIOS = [\"base\"] + [s for s in all_dirs if s != \"base\"]\n", + "print(ALL_SCENARIOS)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# helpers (no I/O)\n", + "\n", + "def stop_period_to_clock_minutes(stop_period: pd.Series) -> pd.Series:\n", + " sp = pd.to_numeric(stop_period, errors=\"coerce\")\n", + " return (sp - 1) * 30.0\n", + "\n", + "def clock_minutes_to_hhmm(minutes_since_3am: float) -> str:\n", + " if not np.isfinite(minutes_since_3am):\n", + " return \"\"\n", + " total = int(round(minutes_since_3am))\n", + " base_h = 3\n", + " hh = (base_h * 60 + total) % (24 * 60)\n", + " h = hh // 60\n", + " m = hh % 60\n", + " return f\"{h:02d}:{m:02d}\"\n", + "\n", + "def format_time_ticks(fig: go.Figure, minutes: List[int]) -> None:\n", + " fig.update_xaxes(\n", + " tickmode=\"array\",\n", + " tickvals=minutes,\n", + " ticktext=[clock_minutes_to_hhmm(v) for v in minutes],\n", + " title=f\"Time of day)\",\n", + " )\n", + "\n", + "# Plot helpers\n", + "\n", + "def fig_grouped_choice_pct(df: pd.DataFrame, title: str) -> go.Figure:\n", + " fig = go.Figure()\n", + " for scen in df[\"scenario\"].unique():\n", + " sub = df[df[\"scenario\"] == scen]\n", + " fig.add_trace(go.Bar(x=sub[\"choice\"], y=sub[\"pct\"] * 100.0, name=scen))\n", + " fig.update_layout(title=title, barmode=\"group\", xaxis_title=\"Choice\", yaxis_title=\"Percent\")\n", + " return fig\n", + "\n", + "def fig_overlay_time_series(df: pd.DataFrame, title: str, y_col: str) -> go.Figure:\n", + " fig = go.Figure()\n", + " for scen in df[\"scenario\"].unique():\n", + " sub = df[df[\"scenario\"] == scen].sort_values(\"clock_min\")\n", + " fig.add_trace(go.Scatter(x=sub[\"clock_min\"], y=sub[y_col], mode=\"lines\", name=scen))\n", + " fig.update_layout(title=title, yaxis_title=y_col)\n", + " return fig\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded land use: C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\outputs\\sensitivity_test_run_dir\\final_land_use.csv\n", + "Loaded skim: C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\input_data_full\\skims\\traffic_skims_MD.omx\n", + "Skim shape: (4947, 4947)\n", + "TAZ mapping size: 4947\n" + ] + } + ], + "source": [ + "# fixed inputs (land use + skim) (ONE TIME READ)\n", + "\n", + "with omx.open_file(SKIM_PATH, \"r\") as f:\n", + " SKIM_DIST = np.asarray(f[SKIM_DIST_CORE])\n", + "\n", + " map_name = list(f.list_mappings())[0]\n", + " zones = list(f.mapping(map_name))\n", + " TAZ_TO_IDX = {int(z): int(i) for i, z in enumerate(zones)}\n", + "\n", + "print(\"Loaded land use:\", LAND_USE_PATH)\n", + "print(\"Loaded skim:\", SKIM_PATH)\n", + "print(\"Skim shape:\", SKIM_DIST.shape)\n", + "print(\"TAZ mapping size:\", len(TAZ_TO_IDX))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MGRA - TAZ mapping size: 24333\n" + ] + } + ], + "source": [ + "# Build MGRA - TAZ mapping \n", + "LAND_USE = pd.read_csv(LAND_USE_PATH, low_memory=False)\n", + "\n", + "def build_mgra_to_taz(land_use: pd.DataFrame) -> Dict[int, int]:\n", + " mgra_col = \"mgra\"\n", + " taz_col = \"taz\"\n", + "\n", + " mgra = land_use[mgra_col]\n", + " taz = land_use[taz_col]\n", + " mapping = {}\n", + " valid = mgra.notna() & taz.notna()\n", + " for m, t in zip(mgra[valid].astype(int), taz[valid].astype(int)):\n", + " mapping[int(m)] = int(t)\n", + "\n", + " return mapping\n", + "\n", + "MGRA_TO_TAZ = build_mgra_to_taz(LAND_USE)\n", + "print(\"MGRA - TAZ mapping size:\", len(MGRA_TO_TAZ))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded scenarios: ['base', 'deadheading_charge', 'no_cost_remote_parking', 'no_parking_cbd']\n" + ] + } + ], + "source": [ + "# Scenario loader + bulk scenario read\n", + "# This cell reads ALL scenario CSVs into memory exactly once.\n", + "# Everything below will use SCENARIO_DATA_ALL and MUST NOT call read_csv again.\n", + "\n", + "def load_av_scenario_csv(scenario_name: str) -> Optional[dict]:\n", + " sdir = ROOT_DIR / scenario_name\n", + " paths = {k: sdir / v for k, v in SCENARIO_FILES.items()}\n", + "\n", + " # CSV-only, no timers\n", + " households = pd.read_csv(paths[\"households\"], low_memory=False)\n", + " trips = pd.read_csv(paths[\"trips\"], low_memory=False)\n", + " av_trips = pd.read_csv(paths[\"av_trips\"], low_memory=False)\n", + "\n", + " return {\n", + " \"scenario\": scenario_name,\n", + " \"dir\": sdir,\n", + " \"households\": households,\n", + " \"trips\": trips,\n", + " \"av_trips\": av_trips,\n", + " }\n", + "\n", + "SCENARIO_DATA_ALL: Dict[str, dict] = {}\n", + "for scen in ALL_SCENARIOS:\n", + " SCENARIO_DATA_ALL[scen] = load_av_scenario_csv(scen)\n", + "\n", + "print(\"Loaded scenarios:\", list(SCENARIO_DATA_ALL.keys()))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scenarios updated: []\n" + ] + } + ], + "source": [ + "# Update selected scenarios\n", + "# Set to [] or None if no updates are needed.\n", + "\n", + "SCENARIOS_TO_UPDATE = []\n", + "# Examples:\n", + "# SCENARIOS_TO_UPDATE = [\"deadheading_charge\"]\n", + "# SCENARIOS_TO_UPDATE = [\"base\", \"deadheading_charge\"]\n", + "\n", + "if SCENARIOS_TO_UPDATE:\n", + " for scen in SCENARIOS_TO_UPDATE:\n", + " sd = load_av_scenario_csv(scen)\n", + " if sd is not None:\n", + " SCENARIO_DATA_ALL[scen] = sd\n", + "\n", + "print(\"Scenarios updated:\", SCENARIOS_TO_UPDATE)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Trip-dist prep done for: ['base', 'deadheading_charge', 'no_cost_remote_parking', 'no_parking_cbd']\n" + ] + } + ], + "source": [ + "# Trip-dist (run once after initial load; then only for updated scenarios)\n", + "# Behavior:\n", + "# - If run with SCENARIOS_TO_UPDATE = [...] : only runs those scenarios.\n", + "# - If SCENARIOS_TO_UPDATE is empty: it runs ALL scenarios.\n", + "\n", + "def add_otaz_dtaz_idx_from_mgra(df: pd.DataFrame, o_mgra_col: str, d_mgra_col: str) -> pd.DataFrame:\n", + " out = df.copy()\n", + "\n", + " o_mgra = out[o_mgra_col]\n", + " d_mgra = out[d_mgra_col]\n", + "\n", + " o_taz = o_mgra.map(MGRA_TO_TAZ)\n", + " d_taz = d_mgra.map(MGRA_TO_TAZ)\n", + "\n", + " out[\"o_taz\"] = pd.to_numeric(o_taz, errors=\"coerce\")\n", + " out[\"d_taz\"] = pd.to_numeric(d_taz, errors=\"coerce\")\n", + "\n", + " otaz_idx = out[\"o_taz\"].map(TAZ_TO_IDX)\n", + " dtaz_idx = out[\"d_taz\"].map(TAZ_TO_IDX)\n", + "\n", + " out[\"otaz_idx\"] = pd.to_numeric(otaz_idx, errors=\"coerce\")\n", + " out[\"dtaz_idx\"] = pd.to_numeric(dtaz_idx, errors=\"coerce\")\n", + "\n", + " return out\n", + "\n", + "\n", + "def get_trip_dist(df: pd.DataFrame, skim: np.ndarray) -> pd.DataFrame:\n", + " m = df[\"otaz_idx\"].notna() & df[\"dtaz_idx\"].notna()\n", + " i = df.loc[m, \"otaz_idx\"].astype(int).to_numpy()\n", + " j = df.loc[m, \"dtaz_idx\"].astype(int).to_numpy()\n", + " ok = (i >= 0) & (i < skim.shape[0]) & (j >= 0) & (j < skim.shape[1])\n", + " vals = np.full(m.sum(), np.nan, dtype=float)\n", + " vals[ok] = skim[i[ok], j[ok]]\n", + " df[\"trip_dist\"] = np.nan\n", + " df.loc[m, \"trip_dist\"] = vals\n", + " return df\n", + "\n", + "\n", + "def ensure_trip_dist_for_scenario(sd: dict) -> dict:\n", + " trips = sd[\"trips\"]\n", + " av = sd[\"av_trips\"]\n", + "\n", + " trips_o = \"origin\"\n", + " trips_d = \"destination\"\n", + "\n", + " trips2 = add_otaz_dtaz_idx_from_mgra(trips, trips_o, trips_d)\n", + " trips2 = get_trip_dist(trips2, SKIM_DIST)\n", + "\n", + " av_o = \"origin\"\n", + " av_d = \"destination\"\n", + "\n", + " av2 = add_otaz_dtaz_idx_from_mgra(av, av_o, av_d)\n", + " av2 = get_trip_dist(av2, SKIM_DIST)\n", + "\n", + " sd[\"trips\"] = trips2\n", + " sd[\"av_trips\"] = av2\n", + " sd[\"_prepped_trip_dist\"] = True\n", + " return sd\n", + "\n", + "\n", + "# Decide which scenarios to prep:\n", + "# - If SCENARIOS_TO_UPDATE exists and is non-empty: prep only those.\n", + "# - Otherwise: prep ALL scenarios.\n", + "\n", + "if \"SCENARIOS_TO_UPDATE\" in globals() and SCENARIOS_TO_UPDATE:\n", + " _targets = [s for s in SCENARIOS_TO_UPDATE if s in SCENARIO_DATA_ALL]\n", + "else:\n", + " _targets = list(SCENARIO_DATA_ALL.keys())\n", + "\n", + "for s in _targets:\n", + " SCENARIO_DATA_ALL[s] = ensure_trip_dist_for_scenario(SCENARIO_DATA_ALL[s])\n", + "\n", + "print(\"Trip-dist prep done for:\", _targets)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "def metric1_share_driving_served(scenario_data: Dict[str, dict]) -> pd.DataFrame:\n", + " rows = []\n", + " for scen, sd in scenario_data.items():\n", + " trips = sd[\"trips\"]\n", + " av = sd[\"av_trips\"]\n", + "\n", + " total_drive = int(trips[trips[\"trip_mode\"].isin(DRIVE_MODES)].shape[0])\n", + "\n", + " served = av[\"trip_id\"].dropna().nunique()\n", + "\n", + " share = (served / total_drive) if total_drive else np.nan\n", + "\n", + " rows.append({\n", + " \"scenario\": scen,\n", + " \"total_driving_trips\": total_drive,\n", + " \"av_served_driving_trips_unique\": int(served),\n", + " \"share_served\": float(share),\n", + " })\n", + " return pd.DataFrame(rows)\n", + "\n", + "def metric1_share_driving_served_with_why(scenario_data: Dict[str, dict]) -> pd.DataFrame:\n", + " rows = []\n", + " for scen, sd in scenario_data.items():\n", + " trips = sd[\"trips\"]\n", + " av = sd[\"av_trips\"]\n", + "\n", + " drive_trips = trips[trips[\"trip_mode\"].isin(DRIVE_MODES)].copy()\n", + " total_drive = int(len(drive_trips))\n", + "\n", + " av_trip_ids = set(av[\"trip_id\"].dropna().unique())\n", + " served_ids = set(drive_trips.loc[drive_trips[\"trip_id\"].isin(av_trip_ids), \"trip_id\"].dropna().unique())\n", + " served = int(len(served_ids))\n", + "\n", + " non_served = drive_trips.loc[~drive_trips[\"trip_id\"].isin(av_trip_ids)].copy()\n", + "\n", + " veh_hh_links = (\n", + " av.loc[av[\"trip_id\"].notna(), [\"vehicle_id\", \"trip_id\"]]\n", + " .merge(trips[[\"trip_id\", \"household_id\"]], on=\"trip_id\", how=\"left\")\n", + " .dropna(subset=[\"vehicle_id\", \"household_id\"])\n", + " )\n", + " veh_to_hh = (\n", + " veh_hh_links.drop_duplicates(subset=[\"vehicle_id\", \"household_id\"])\n", + " .set_index(\"vehicle_id\")[\"household_id\"]\n", + " )\n", + "\n", + " veh_timepool = (\n", + " av.dropna(subset=[\"vehicle_id\", \"depart\"])\n", + " .groupby(\"vehicle_id\")[\"depart\"]\n", + " .apply(lambda s: set(s.unique()))\n", + " )\n", + "\n", + " hh_to_vehicles = (\n", + " veh_to_hh.reset_index()\n", + " .groupby(\"household_id\")[\"vehicle_id\"]\n", + " .apply(list)\n", + " .to_dict()\n", + " )\n", + "\n", + " if len(non_served):\n", + " vids_series = non_served[\"household_id\"].map(hh_to_vehicles)\n", + " depart_series = non_served[\"depart\"]\n", + "\n", + " unavailable = []\n", + " for vids, depart_bin in zip(vids_series, depart_series):\n", + " if not isinstance(vids, list) or len(vids) == 0:\n", + " unavailable.append(False)\n", + " else:\n", + " unavailable.append(all(depart_bin in veh_timepool.get(v, set()) for v in vids))\n", + "\n", + " non_served[\"unavailable\"] = unavailable\n", + " unavail_ct = int(non_served[\"unavailable\"].sum())\n", + " else:\n", + " unavail_ct = 0\n", + "\n", + " avail_not_used_ct = int(len(non_served) - unavail_ct)\n", + "\n", + " served_pct = (served / total_drive) if total_drive else float(\"nan\")\n", + " unavail_pct = (unavail_ct / total_drive) if total_drive else float(\"nan\")\n", + " avail_not_used_pct = (avail_not_used_ct / total_drive) if total_drive else float(\"nan\")\n", + "\n", + " rows.append({\n", + " \"scenario\": scen,\n", + " \"total_driving_trips\": total_drive,\n", + " \"served_ct\": served,\n", + " \"unavailable_ct\": unavail_ct,\n", + " \"available_not_used_ct\": avail_not_used_ct,\n", + " \"served_pct\": served_pct,\n", + " \"unavailable_pct\": unavail_pct,\n", + " \"available_not_used_pct\": avail_not_used_pct,\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n", + "\n", + "def metric2_reposition_choice(scenario_data: Dict[str, dict]) -> pd.DataFrame:\n", + " all_rows = []\n", + " for scen, sd in scenario_data.items():\n", + " av = sd[\"av_trips\"]\n", + "\n", + " vc = av[\"av_repositioning_choice\"].dropna().value_counts()\n", + " total = float(vc.sum()) if len(vc) else 0.0\n", + "\n", + " present = list(vc.index)\n", + " ordered = [c for c in REPO_CORE_ORDER if c in present] + [c for c in present if c not in REPO_CORE_ORDER]\n", + "\n", + " for c in ordered:\n", + " cnt = int(vc.get(c, 0))\n", + " pct = (cnt / total) if total else np.nan\n", + " all_rows.append({\"scenario\": scen, \"choice\": c, \"count\": cnt, \"pct\": pct})\n", + "\n", + " return pd.DataFrame(all_rows)\n", + "\n", + "def metric3_deadhead_shares(scenario_data: Dict[str, dict]) -> pd.DataFrame:\n", + " rows = []\n", + " for scen, sd in scenario_data.items():\n", + " trips = sd[\"trips\"]\n", + " av = sd[\"av_trips\"]\n", + "\n", + " drive_trips = trips[trips[\"trip_mode\"].isin(DRIVE_MODES)]\n", + " total_av = int(av.shape[0])\n", + " dead_ct = int(av.loc[av[\"is_deadhead\"] == True].shape[0])\n", + "\n", + "\n", + " av_trip_ids = set(av[\"trip_id\"].dropna().unique())\n", + " non_av_drive = drive_trips.loc[~drive_trips[\"trip_id\"].isin(av_trip_ids)]\n", + " non_av_ct = int(non_av_drive.shape[0])\n", + "\n", + " dead_pct_of_av = (dead_ct / total_av) if total_av else np.nan\n", + " dead_pct_of_all_driving = (dead_ct / (total_av + non_av_ct)) if (total_av + non_av_ct) else np.nan\n", + "\n", + " rows.append({\n", + " \"scenario\": scen,\n", + " \"deadhead_av_trips\": dead_ct,\n", + " \"all_av_trips\": total_av,\n", + " \"all_non_av_driving_trips\": non_av_ct,\n", + " \"deadhead_pct_of_av_trips\": float(dead_pct_of_av),\n", + " \"deadhead_pct_of_all_driving\": float(dead_pct_of_all_driving),\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n", + "\n", + "def add_prev_dest_to_cur_orig_dist(\n", + " df: pd.DataFrame,\n", + " prev_dest_mgra_col: str,\n", + " cur_orig_mgra_col: str,\n", + " out_col: str,\n", + ") -> pd.DataFrame:\n", + " out = df.copy()\n", + "\n", + " prev_mgra = out[prev_dest_mgra_col]\n", + " cur_mgra = out[cur_orig_mgra_col]\n", + "\n", + " prev_taz = prev_mgra.map(MGRA_TO_TAZ)\n", + " cur_taz = cur_mgra.map(MGRA_TO_TAZ)\n", + "\n", + " i = prev_taz.map(TAZ_TO_IDX)\n", + " j = cur_taz.map(TAZ_TO_IDX)\n", + "\n", + " i = pd.to_numeric(i, errors=\"coerce\").fillna(-1).astype(np.int64).to_numpy()\n", + " j = pd.to_numeric(j, errors=\"coerce\").fillna(-1).astype(np.int64).to_numpy()\n", + "\n", + " valid = (i >= 0) & (j >= 0) & (i < SKIM_DIST.shape[0]) & (j < SKIM_DIST.shape[1])\n", + "\n", + " dist = np.full(len(out), np.nan, dtype=float)\n", + " dist[valid] = SKIM_DIST[i[valid], j[valid]]\n", + "\n", + " out[out_col] = dist\n", + " return out\n", + "\n", + "def metric4_prev_dest_to_next_origin(scenario_data: Dict[str, dict]):\n", + " overall_rows = []\n", + " profile_rows = []\n", + "\n", + " for scen, sd in scenario_data.items():\n", + " av = sd[\"av_trips\"].copy()\n", + "\n", + " depart_col = \"depart\"\n", + " if depart_col is None:\n", + " overall_rows.append({\"scenario\": scen, \"avg_prev_dest_to_next_origin_dist\": np.nan})\n", + " continue\n", + "\n", + " needed = {\"vehicle_id\", \"origin\", \"destination\", depart_col}\n", + " if any(c not in av.columns for c in needed):\n", + " overall_rows.append({\"scenario\": scen, \"avg_prev_dest_to_next_origin_dist\": np.nan})\n", + " continue\n", + "\n", + " base = av.dropna(subset=[\"vehicle_id\", \"origin\", \"destination\", depart_col]).copy()\n", + "\n", + " if \"is_deadhead\" in base.columns:\n", + " base = base.loc[base[\"is_deadhead\"] == False].copy()\n", + "\n", + " base[\"veh\"] = pd.to_numeric(base[\"vehicle_id\"], errors=\"coerce\").astype(\"Int64\")\n", + " base[\"depart_bin\"] = pd.to_numeric(base[depart_col], errors=\"coerce\")\n", + "\n", + " base = base.sort_values([\"veh\", \"depart_bin\"])\n", + " base[\"prev_dest_mgra\"] = base.groupby(\"veh\")[\"destination\"].shift(1)\n", + "\n", + " base = add_prev_dest_to_cur_orig_dist(\n", + " base,\n", + " prev_dest_mgra_col=\"prev_dest_mgra\",\n", + " cur_orig_mgra_col=\"origin\",\n", + " out_col=\"prevdest_to_curorig_dist\",\n", + " )\n", + "\n", + " arr = pd.to_numeric(base[\"prevdest_to_curorig_dist\"], errors=\"coerce\").to_numpy()\n", + " overall_mean = float(np.nanmean(arr)) if np.isfinite(arr).any() else np.nan\n", + " overall_rows.append({\"scenario\": scen, \"avg_prev_dest_to_next_origin_dist\": overall_mean})\n", + "\n", + " tmp = base.copy()\n", + " tmp[\"clock_min\"] = stop_period_to_clock_minutes(tmp[\"depart_bin\"])\n", + " prof = (\n", + " tmp.groupby(\"clock_min\", dropna=True)[\"prevdest_to_curorig_dist\"]\n", + " .mean()\n", + " .reset_index()\n", + " .rename(columns={\"prevdest_to_curorig_dist\": \"mean_dist\"})\n", + " )\n", + "\n", + " for _, r in prof.iterrows():\n", + " profile_rows.append({\n", + " \"scenario\": scen,\n", + " \"clock_min\": float(r[\"clock_min\"]),\n", + " \"mean_dist\": float(r[\"mean_dist\"]),\n", + " })\n", + "\n", + " return pd.DataFrame(overall_rows), pd.DataFrame(profile_rows)\n", + "\n", + "def metric5_not_served_within_av_households(scenario_data: Dict[str, dict]) -> pd.DataFrame:\n", + " rows = []\n", + " for scen, sd in scenario_data.items():\n", + " hh = sd[\"households\"]\n", + " trips = sd[\"trips\"]\n", + " av = sd[\"av_trips\"]\n", + "\n", + " hh_id_col = \"household_id\"\n", + " trips_hh_col = \"household_id\"\n", + "\n", + " if hh_id_col is None or trips_hh_col is None:\n", + " rows.append({\n", + " \"scenario\": scen,\n", + " \"hh_with_av_count\": 0,\n", + " \"driving_trips_from_av_households\": 0,\n", + " \"driving_trips_not_served_by_av\": 0,\n", + " \"share_not_served_within_av_households\": np.nan,\n", + " })\n", + " continue\n", + "\n", + " av_own_col = \"av_ownership\"\n", + " auto_own_col =\"auto_ownership\"\n", + "\n", + " if av_own_col is None:\n", + " hh_with_av = set()\n", + " else:\n", + " av_own = pd.to_numeric(hh[av_own_col], errors=\"coerce\").fillna(0).ne(0)\n", + " if auto_own_col is not None:\n", + " auto_own = pd.to_numeric(hh[auto_own_col], errors=\"coerce\").fillna(0).ne(0)\n", + " mask = av_own & auto_own\n", + " else:\n", + " mask = av_own\n", + "\n", + " hh_with_av = set(\n", + " pd.to_numeric(hh.loc[mask, hh_id_col], errors=\"coerce\").dropna().astype(int).unique()\n", + " )\n", + "\n", + " hh_drive = trips[\n", + " (trips[trips_hh_col].isin(hh_with_av)) &\n", + " (trips[\"trip_mode\"].isin(DRIVE_MODES))\n", + " ].copy()\n", + "\n", + " av_trip_ids = set(av[\"trip_id\"].dropna().unique())\n", + " non_served = hh_drive.loc[~hh_drive[\"trip_id\"].isin(av_trip_ids)].copy()\n", + "\n", + " total = int(hh_drive.shape[0])\n", + " not_served = int(non_served.shape[0])\n", + " share = (not_served / total) if total else np.nan\n", + "\n", + " rows.append({\n", + " \"scenario\": scen,\n", + " \"hh_with_av_count\": int(len(hh_with_av)),\n", + " \"driving_trips_from_av_households\": total,\n", + " \"driving_trips_not_served_by_av\": not_served,\n", + " \"share_not_served_within_av_households\": float(share),\n", + " })\n", + "\n", + " return pd.DataFrame(rows)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# def run_all_cases(all_data: Dict[str, dict], scenario_order: List[str]) -> None:\n", + "# scenario_data = {s: all_data[s] for s in scenario_order if s in all_data}\n", + "# if not scenario_data:\n", + "# print(\"No scenarios loaded.\")\n", + "# return\n", + "\n", + "# print(\"Using loaded scenarios:\", list(scenario_data.keys()))\n", + "\n", + "# # ---------------- Metric 1 ----------------\n", + "# m1 = metric1_share_driving_served_with_why(scenario_data)\n", + "\n", + "# m1_print = m1.copy()\n", + "# m1_print[\"served_pct\"] = (m1_print[\"served_pct\"] * 100.0).round(2)\n", + "# m1_print[\"unavailable_pct\"] = (m1_print[\"unavailable_pct\"] * 100.0).round(2)\n", + "# m1_print[\"available_not_used_pct\"] = (m1_print[\"available_not_used_pct\"] * 100.0).round(2)\n", + "\n", + "# print(\"\\n[Metric 1] Share of driving trips serviced by AV\")\n", + "# print(m1_print[[\n", + "# \"scenario\",\n", + "# \"total_driving_trips\",\n", + "# \"served_ct\",\n", + "# \"unavailable_ct\",\n", + "# \"available_not_used_ct\",\n", + "# \"served_pct\",\n", + "# \"unavailable_pct\",\n", + "# \"available_not_used_pct\",\n", + "# ]].to_string(index=False))\n", + "\n", + "# m1_plot = m1.set_index(\"scenario\").loc[scenario_order].reset_index()\n", + "\n", + "# y_served = m1_plot[\"served_pct\"] * 100.0\n", + "# y_unav = m1_plot[\"unavailable_pct\"] * 100.0\n", + "# y_avail = m1_plot[\"available_not_used_pct\"] * 100.0\n", + "\n", + "# fig1 = go.Figure()\n", + "# fig1.add_trace(go.Bar(\n", + "# x=m1_plot[\"scenario\"],\n", + "# y=y_served,\n", + "# name=\"Served by AV\",\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_served],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"inside\",\n", + "# insidetextanchor=\"middle\",\n", + "# ))\n", + "# fig1.add_trace(go.Bar(\n", + "# x=m1_plot[\"scenario\"],\n", + "# y=y_unav,\n", + "# name=\"Not served: AV unavailable\",\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_unav],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"inside\",\n", + "# insidetextanchor=\"middle\",\n", + "# ))\n", + "# fig1.add_trace(go.Bar(\n", + "# x=m1_plot[\"scenario\"],\n", + "# y=y_avail,\n", + "# name=\"Not served: AV available, not used\",\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_avail],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"inside\",\n", + "# insidetextanchor=\"middle\",\n", + "# ))\n", + "# fig1.update_layout(\n", + "# barmode=\"stack\",\n", + "# title=\"driving trips breakdown\",\n", + "# xaxis_title=\"Scenario\",\n", + "# yaxis_title=\"Percent\",\n", + "# uniformtext_minsize=9,\n", + "# uniformtext_mode=\"hide\",\n", + "# )\n", + "# fig1.update_traces(\n", + "# texttemplate=\"%{y:.1f}\",\n", + "# textposition=\"inside\",\n", + "# insidetextanchor=\"middle\",\n", + "# textfont=dict(size=14),\n", + "# cliponaxis=False, # prevent text from being clipped by the plot area\n", + "# )\n", + "\n", + "# fig1.update_layout(\n", + "# uniformtext_minsize=14,\n", + "# uniformtext_mode=\"show\", # never hide labels\n", + "# yaxis=dict(range=[0, 105]), # a little headroom; keeps everything comfortably visible\n", + "# margin=dict(t=80),\n", + "# )\n", + "# fig1.show()\n", + "\n", + "# # ---------------- Metric 2 ----------------\n", + "# m2 = metric2_reposition_choice(scenario_data)\n", + "# m2_print = m2.copy()\n", + "# m2_print[\"pct\"] = (m2_print[\"pct\"] * 100.0).round(2)\n", + "# print(\"\\n[Metric 2] AV repositioning choices (percent)\")\n", + "# print(m2_print[[\"scenario\", \"choice\", \"count\", \"pct\"]].to_string(index=False))\n", + "\n", + "# # grouped bars: x=choice, one trace per scenario (with labels)\n", + "# m2_plot = m2.copy()\n", + "# m2_plot[\"pct100\"] = m2_plot[\"pct\"] * 100.0\n", + "\n", + "# # stable ordering (your existing REPO_CORE_ORDER first, then any extras)\n", + "# present = list(m2_plot[\"choice\"].dropna().unique())\n", + "# choice_order = [c for c in REPO_CORE_ORDER if c in present] + [c for c in present if c not in REPO_CORE_ORDER]\n", + "\n", + "# fig2 = go.Figure()\n", + "# for scen in scenario_order:\n", + "# if scen not in scenario_data:\n", + "# continue\n", + "# sub = m2_plot.loc[m2_plot[\"scenario\"] == scen].copy()\n", + "# sub = sub.set_index(\"choice\").reindex(choice_order).reset_index()\n", + "\n", + "# y = sub[\"pct100\"]\n", + "# fig2.add_trace(go.Bar(\n", + "# x=sub[\"choice\"],\n", + "# y=y,\n", + "# name=scen,\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"outside\",\n", + "# ))\n", + "\n", + "# fig2.update_layout(\n", + "# barmode=\"group\",\n", + "# title=\"AV repositioning choice breakdown\",\n", + "# xaxis_title=\"Choice\",\n", + "# yaxis_title=\"Percent\",\n", + "# uniformtext_minsize=9,\n", + "# uniformtext_mode=\"hide\",\n", + "# )\n", + "# fig2.show()\n", + "\n", + "# # ---------------- Metric 3 ----------------\n", + "# m3 = metric3_deadhead_shares(scenario_data)\n", + "# m3_print = m3.copy()\n", + "# m3_print[\"deadhead_pct_of_av_trips\"] = (m3_print[\"deadhead_pct_of_av_trips\"] * 100.0).round(2)\n", + "# m3_print[\"deadhead_pct_of_all_driving\"] = (m3_print[\"deadhead_pct_of_all_driving\"] * 100.0).round(2)\n", + "# print(\"\\n[Metric 3] Deadheading shares (counts-based)\")\n", + "# print(m3_print[[\n", + "# \"scenario\",\n", + "# \"deadhead_av_trips\",\n", + "# \"all_av_trips\",\n", + "# \"all_non_av_driving_trips\",\n", + "# \"deadhead_pct_of_av_trips\",\n", + "# \"deadhead_pct_of_all_driving\",\n", + "# ]].to_string(index=False))\n", + "\n", + "# y = m3[\"deadhead_pct_of_av_trips\"] * 100.0\n", + "# fig3a = go.Figure()\n", + "# fig3a.add_trace(go.Bar(\n", + "# x=m3[\"scenario\"],\n", + "# y=y,\n", + "# name=\"% of trips\",\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"outside\",\n", + "# ))\n", + "# fig3a.update_layout(title=\"Deadheading (% of AV trips)\",\n", + "# xaxis_title=\"Scenario\", yaxis_title=\"Percent\")\n", + "# fig3a.show()\n", + "\n", + "# y = m3[\"deadhead_pct_of_all_driving\"] * 100.0\n", + "# fig3b = go.Figure()\n", + "# fig3b.add_trace(go.Bar(\n", + "# x=m3[\"scenario\"],\n", + "# y=y,\n", + "# name=\"% of VMT\",\n", + "# text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + "# texttemplate=\"%{text}\",\n", + "# textposition=\"outside\",\n", + "# ))\n", + "# fig3b.update_layout(title=\"Deadheading (% of VMT)\",\n", + "# xaxis_title=\"Scenario\", yaxis_title=\"Percent\")\n", + "# fig3b.show()\n", + "\n", + "# # ---------------- Metric 4 ----------------\n", + "# m4_overall, m4_profile = metric4_prev_dest_to_next_origin(scenario_data)\n", + "# print(\"\\n[Metric 4] Avg prev-dest → next-origin distance (overall, served trips)\")\n", + "# print(m4_overall.to_string(index=False))\n", + "\n", + "# fig4 = fig_overlay_time_series(\n", + "# m4_profile,\n", + "# \"Mean prev-dest → next-origin distance by time (served trips)\",\n", + "# y_col=\"mean_dist\",\n", + "# )\n", + "# ticks = list(range(0, 24 * 60, 120))\n", + "# format_time_ticks(fig4, ticks)\n", + "# fig4.update_yaxes(title=\"Miles\")\n", + "# fig4.show()\n", + "def run_all_cases(all_data: Dict[str, dict], scenario_order: List[str]) -> None:\n", + " scenario_data = {s: all_data[s] for s in scenario_order if s in all_data}\n", + " if not scenario_data:\n", + " print(\"No scenarios loaded.\")\n", + " return\n", + "\n", + " print(\"Using loaded scenarios:\", list(scenario_data.keys()))\n", + "\n", + " SCALE = 1.30 # +30% text sizing\n", + "\n", + " # ---------------- Metric 1 ----------------\n", + " m1 = metric1_share_driving_served_with_why(scenario_data)\n", + "\n", + " m1_print = m1.copy()\n", + " m1_print[\"served_pct\"] = (m1_print[\"served_pct\"] * 100.0).round(2)\n", + " m1_print[\"unavailable_pct\"] = (m1_print[\"unavailable_pct\"] * 100.0).round(2)\n", + " m1_print[\"available_not_used_pct\"] = (m1_print[\"available_not_used_pct\"] * 100.0).round(2)\n", + "\n", + " print(\"\\n[Metric 1] Share of driving trips serviced by AV\")\n", + " print(m1_print[[\n", + " \"scenario\",\n", + " \"total_driving_trips\",\n", + " \"served_ct\",\n", + " \"unavailable_ct\",\n", + " \"available_not_used_ct\",\n", + " \"served_pct\",\n", + " \"unavailable_pct\",\n", + " \"available_not_used_pct\",\n", + " ]].to_string(index=False))\n", + "\n", + " m1_plot = m1.set_index(\"scenario\").loc[scenario_order].reset_index()\n", + "\n", + " y_served = m1_plot[\"served_pct\"] * 100.0\n", + " y_unav = m1_plot[\"unavailable_pct\"] * 100.0\n", + " y_avail = m1_plot[\"available_not_used_pct\"] * 100.0\n", + "\n", + " fig1 = go.Figure()\n", + " fig1.add_trace(go.Bar(\n", + " x=m1_plot[\"scenario\"],\n", + " y=y_served,\n", + " name=\"Served\",\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_served],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"inside\",\n", + " insidetextanchor=\"middle\",\n", + " ))\n", + " fig1.add_trace(go.Bar(\n", + " x=m1_plot[\"scenario\"],\n", + " y=y_unav,\n", + " name=\"Not served: unavailable\",\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_unav],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"inside\",\n", + " insidetextanchor=\"middle\",\n", + " ))\n", + " fig1.add_trace(go.Bar(\n", + " x=m1_plot[\"scenario\"],\n", + " y=y_avail,\n", + " name=\"Not served: avail/not used\",\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y_avail],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"inside\",\n", + " insidetextanchor=\"middle\",\n", + " ))\n", + "\n", + " fig1.update_layout(\n", + " barmode=\"stack\",\n", + " width=1600,\n", + " height=780,\n", + " title=None,\n", + " xaxis=dict(title=\"Scenario\", titlefont=dict(size=int(22*SCALE)), tickfont=dict(size=int(18*SCALE))),\n", + " yaxis=dict(title=\"Percent\", titlefont=dict(size=int(22*SCALE)), tickfont=dict(size=int(18*SCALE)), range=[0, 112]),\n", + " legend=dict(\n", + " orientation=\"h\",\n", + " yanchor=\"bottom\",\n", + " y=1.02,\n", + " xanchor=\"left\",\n", + " x=0.0,\n", + " font=dict(size=int(18*SCALE)),\n", + " title_text=\"\",\n", + " ),\n", + " margin=dict(l=95, r=50, t=40, b=95),\n", + " uniformtext_minsize=int(18*SCALE),\n", + " uniformtext_mode=\"show\",\n", + " font=dict(size=int(16*SCALE)),\n", + " )\n", + " fig1.update_traces(textfont=dict(size=int(18*SCALE)), cliponaxis=False)\n", + " fig1.show()\n", + "\n", + " # ---------------- Metric 2 ----------------\n", + " m2 = metric2_reposition_choice(scenario_data)\n", + " m2_print = m2.copy()\n", + " m2_print[\"pct\"] = (m2_print[\"pct\"] * 100.0).round(2)\n", + " print(\"\\n[Metric 2] AV repositioning choices (percent)\")\n", + " print(m2_print[[\"scenario\", \"choice\", \"count\", \"pct\"]].to_string(index=False))\n", + "\n", + " m2_plot = m2.copy()\n", + " m2_plot[\"pct100\"] = m2_plot[\"pct\"] * 100.0\n", + "\n", + " present = list(m2_plot[\"choice\"].dropna().unique())\n", + " choice_order = [c for c in REPO_CORE_ORDER if c in present] + [c for c in present if c not in REPO_CORE_ORDER]\n", + "\n", + " fig2 = go.Figure()\n", + " for scen in scenario_order:\n", + " if scen not in scenario_data:\n", + " continue\n", + " sub = m2_plot.loc[m2_plot[\"scenario\"] == scen].copy()\n", + " sub = sub.set_index(\"choice\").reindex(choice_order).reset_index()\n", + "\n", + " y = sub[\"pct100\"]\n", + " fig2.add_trace(go.Bar(\n", + " x=sub[\"choice\"],\n", + " y=y,\n", + " name=scen,\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"outside\",\n", + " ))\n", + "\n", + " fig2.update_layout(\n", + " barmode=\"group\",\n", + " width=1900,\n", + " height=800,\n", + " title=None,\n", + " xaxis=dict(title=\"Choice\", titlefont=dict(size=int(22*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " yaxis=dict(title=\"Percent\", titlefont=dict(size=int(22*SCALE)), tickfont=dict(size=int(18*SCALE)), range=[0, 110]),\n", + " legend=dict(\n", + " orientation=\"h\",\n", + " yanchor=\"bottom\",\n", + " y=1.02,\n", + " xanchor=\"left\",\n", + " x=0.0,\n", + " font=dict(size=int(18*SCALE)),\n", + " title_text=\"\",\n", + " ),\n", + " margin=dict(l=95, r=50, t=40, b=130),\n", + " uniformtext_minsize=int(14*SCALE),\n", + " uniformtext_mode=\"show\",\n", + " font=dict(size=int(16*SCALE)),\n", + " )\n", + " fig2.update_traces(textfont=dict(size=int(16*SCALE)), cliponaxis=False)\n", + " fig2.show()\n", + "\n", + " # ---------------- Metric 3 ----------------\n", + " m3 = metric3_deadhead_shares(scenario_data)\n", + " m3_print = m3.copy()\n", + " m3_print[\"deadhead_pct_of_av_trips\"] = (m3_print[\"deadhead_pct_of_av_trips\"] * 100.0).round(2)\n", + " m3_print[\"deadhead_pct_of_all_driving\"] = (m3_print[\"deadhead_pct_of_all_driving\"] * 100.0).round(2)\n", + " print(\"\\n[Metric 3] Deadheading shares (counts-based)\")\n", + " print(m3_print[[\n", + " \"scenario\",\n", + " \"deadhead_av_trips\",\n", + " \"all_av_trips\",\n", + " \"all_non_av_driving_trips\",\n", + " \"deadhead_pct_of_av_trips\",\n", + " \"deadhead_pct_of_all_driving\",\n", + " ]].to_string(index=False))\n", + "\n", + " y = m3[\"deadhead_pct_of_av_trips\"] * 100.0\n", + " fig3a = go.Figure()\n", + " fig3a.add_trace(go.Bar(\n", + " x=m3[\"scenario\"],\n", + " y=y,\n", + " name=\"Deadhead (% AV trips)\",\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"outside\",\n", + " ))\n", + " fig3a.update_layout(\n", + " width=1400,\n", + " height=720,\n", + " title=None,\n", + " xaxis=dict(title=\"Scenario\", titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " yaxis=dict(title=\"Percent\", titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " margin=dict(l=90, r=50, t=40, b=95),\n", + " uniformtext_minsize=int(14*SCALE),\n", + " uniformtext_mode=\"show\",\n", + " font=dict(size=int(16*SCALE)),\n", + " )\n", + " fig3a.update_traces(textfont=dict(size=int(16*SCALE)), cliponaxis=False)\n", + " fig3a.show()\n", + "\n", + " y = m3[\"deadhead_pct_of_all_driving\"] * 100.0\n", + " fig3b = go.Figure()\n", + " fig3b.add_trace(go.Bar(\n", + " x=m3[\"scenario\"],\n", + " y=y,\n", + " name=\"Deadhead (% all driving)\",\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"outside\",\n", + " ))\n", + " fig3b.update_layout(\n", + " width=1400,\n", + " height=720,\n", + " title=None,\n", + " xaxis=dict(title=\"Scenario\", titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " yaxis=dict(title=\"Percent\", titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " margin=dict(l=90, r=50, t=40, b=95),\n", + " uniformtext_minsize=int(14*SCALE),\n", + " uniformtext_mode=\"show\",\n", + " font=dict(size=int(16*SCALE)),\n", + " )\n", + " fig3b.update_traces(textfont=dict(size=int(16*SCALE)), cliponaxis=False)\n", + " fig3b.show()\n", + "\n", + " # ---------------- Metric 4 ----------------\n", + " m4_overall, m4_profile = metric4_prev_dest_to_next_origin(scenario_data)\n", + " print(\"\\n[Metric 4] Avg prev-dest → next-origin distance (overall, served trips)\")\n", + " print(m4_overall.to_string(index=False))\n", + "\n", + " fig4 = fig_overlay_time_series(\n", + " m4_profile,\n", + " \"\", # no title\n", + " y_col=\"mean_dist\",\n", + " )\n", + " ticks = list(range(0, 24 * 60, 120))\n", + " format_time_ticks(fig4, ticks)\n", + " fig4.update_yaxes(title=\"Miles\")\n", + "\n", + " fig4.update_layout(\n", + " width=1600,\n", + " height=780,\n", + " title=None,\n", + " legend=dict(font=dict(size=int(16*SCALE)), title_text=\"\"),\n", + " xaxis=dict(titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " yaxis=dict(titlefont=dict(size=int(20*SCALE)), tickfont=dict(size=int(16*SCALE))),\n", + " margin=dict(l=95, r=50, t=40, b=95),\n", + " font=dict(size=int(16*SCALE)),\n", + " )\n", + " fig4.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stay with person in CBD when parking prohibited " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Repositioning choice breakdown for AV trips with CBD destinations" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "name": "base", + "text": [ + "38.9", + "30.5", + "16.6", + "8.7", + "3.7", + "1.6" + ], + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 38.90627849024494, + 30.525588038655567, + 16.582842034887253, + 8.683826657752386, + 3.677900686804838, + 1.6235640916550171 + ] + }, + { + "name": "deadheading_charge", + "text": [ + "67.9", + "20.4", + "6.1", + "3.7", + "1.4", + "0.5" + ], + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 67.94834281014481, + 20.352869536334804, + 6.100483198759974, + 3.652856092179456, + 1.3989829891893175, + 0.546465373391644 + ] + }, + { + "name": "no_cost_remote_parking", + "text": [ + "36.0", + "37.6", + "14.2", + "7.5", + "3.2", + "1.5" + ], + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 36.048463671237045, + 37.64518211857648, + 14.194994112955298, + 7.464013065441148, + 3.1934368946788716, + 1.4539101371111702 + ] + }, + { + "name": "no_parking_cbd", + "text": [ + "", + "54.6", + "25.2", + "12.9", + "5.1", + "2.2" + ], + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + null, + 54.594109003981636, + 25.187852580451153, + 12.864571041392278, + 5.115223862416542, + 2.2382435117583914 + ] + } + ], + "layout": { + "barmode": "group", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Going to CBD: AV repositioning choice breakdown" + }, + "uniformtext": { + "minsize": 9, + "mode": "hide" + }, + "xaxis": { + "title": { + "text": "Choice" + } + }, + "yaxis": { + "title": { + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Going to CBD: AV repositioning choice breakdown\n", + "# (apply the same exclusion ONLY for no_parking_cbd: drop CBD-dest + stay_with_person trip_ids)\n", + "\n", + "SCEN_EXCL = \"no_parking_cbd\"\n", + "CHOICE_EXCL = \"stay_with_person\"\n", + "\n", + "mgra_to_pseudo = dict(zip(\n", + " LAND_USE[\"mgra\"].astype(int),\n", + " pd.to_numeric(LAND_USE[\"pseudomsa\"], errors=\"coerce\").fillna(-1).astype(int),\n", + "))\n", + "\n", + "# trip_ids to exclude (ONLY for no_parking_cbd)\n", + "av_excl = SCENARIO_DATA_ALL[SCEN_EXCL][\"av_trips\"]\n", + "dest_pseudo_excl = pd.to_numeric(av_excl[\"destination\"], errors=\"coerce\").fillna(-1).astype(int).map(mgra_to_pseudo)\n", + "drop_trip_ids = set(\n", + " av_excl.loc[(dest_pseudo_excl == 1) & (av_excl[\"av_repositioning_choice\"] == CHOICE_EXCL), \"trip_id\"]\n", + " .dropna()\n", + " .unique()\n", + ")\n", + "\n", + "rows = []\n", + "for scen, sd in SCENARIO_DATA_ALL.items():\n", + " av = sd[\"av_trips\"]\n", + "\n", + " if scen == SCEN_EXCL and drop_trip_ids:\n", + " av = av.loc[~av[\"trip_id\"].isin(drop_trip_ids)].copy()\n", + "\n", + " dest_pseudo = pd.to_numeric(av[\"destination\"], errors=\"coerce\").fillna(-1).astype(int).map(mgra_to_pseudo)\n", + " cbd = av.loc[dest_pseudo == 1]\n", + "\n", + " vc = cbd[\"av_repositioning_choice\"].dropna().value_counts()\n", + " total = float(vc.sum()) if len(vc) else 0.0\n", + "\n", + " present = list(vc.index)\n", + " ordered = [c for c in REPO_CORE_ORDER if c in present] + [c for c in present if c not in REPO_CORE_ORDER]\n", + "\n", + " for c in ordered:\n", + " cnt = int(vc.get(c, 0))\n", + " pct = (cnt / total) if total else float(\"nan\")\n", + " rows.append({\"scenario\": scen, \"choice\": c, \"count\": cnt, \"pct\": pct})\n", + "\n", + "df_cbd_choice = pd.DataFrame(rows)\n", + "df_cbd_choice[\"pct100\"] = df_cbd_choice[\"pct\"] * 100.0\n", + "\n", + "present = list(df_cbd_choice[\"choice\"].dropna().unique())\n", + "choice_order = [c for c in REPO_CORE_ORDER if c in present] + [c for c in present if c not in REPO_CORE_ORDER]\n", + "\n", + "fig = go.Figure()\n", + "for scen in list(SCENARIO_DATA_ALL.keys()):\n", + " sub = df_cbd_choice.loc[df_cbd_choice[\"scenario\"] == scen].copy()\n", + " sub = sub.set_index(\"choice\").reindex(choice_order).reset_index()\n", + "\n", + " y = sub[\"pct100\"]\n", + " fig.add_trace(go.Bar(\n", + " x=sub[\"choice\"],\n", + " y=y,\n", + " name=scen,\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"outside\",\n", + " ))\n", + "\n", + "fig.update_layout(\n", + " barmode=\"group\",\n", + " title=\"Going to CBD: AV repositioning choice breakdown\",\n", + " xaxis_title=\"Choice\",\n", + " yaxis_title=\"Percent\",\n", + " uniformtext_minsize=9,\n", + " uniformtext_mode=\"hide\",\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Deadheading percentage of trips heading to CBD" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "text": [ + "42.2", + "26.8", + "42.1", + "46.3" + ], + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 42.23721443285591, + 26.78729871547205, + 42.074677601385055, + 46.34252313858742 + ] + } + ], + "layout": { + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Going to CBD: Deadheading share of VMT" + }, + "uniformtext": { + "minsize": 9, + "mode": "hide" + }, + "xaxis": { + "title": { + "text": "Scenario" + } + }, + "yaxis": { + "title": { + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "mgra_to_pseudo = dict(zip(\n", + " LAND_USE[\"mgra\"].astype(int),\n", + " pd.to_numeric(LAND_USE[\"pseudomsa\"], errors=\"coerce\").fillna(-1).astype(int),\n", + "))\n", + "\n", + "rows = []\n", + "for scen, sd in SCENARIO_DATA_ALL.items():\n", + " av = sd[\"av_trips\"]\n", + "\n", + " dest_pseudo = pd.to_numeric(av[\"destination\"], errors=\"coerce\").fillna(-1).astype(int).map(mgra_to_pseudo)\n", + " sub = av.loc[dest_pseudo == 1]\n", + "\n", + " A = pd.to_numeric(sub.loc[sub[\"is_deadhead\"] == True, \"trip_dist\"], errors=\"coerce\").sum()\n", + " B = pd.to_numeric(sub[\"trip_dist\"], errors=\"coerce\").sum()\n", + "\n", + " rows.append({\"scenario\": scen, \"pct\": (A / B * 100.0) if B > 0 else float(\"nan\")})\n", + "\n", + "df = pd.DataFrame(rows).set_index(\"scenario\").loc[list(SCENARIO_DATA_ALL.keys())].reset_index()\n", + "\n", + "y = df[\"pct\"]\n", + "fig = go.Figure()\n", + "fig.add_trace(go.Bar(\n", + " x=df[\"scenario\"],\n", + " y=y,\n", + " text=[f\"{v:.1f}\" if pd.notna(v) else \"\" for v in y],\n", + " texttemplate=\"%{text}\",\n", + " textposition=\"outside\",\n", + "))\n", + "fig.update_layout(\n", + " title=\"Going to CBD: Deadheading share of VMT\",\n", + " xaxis_title=\"Scenario\",\n", + " yaxis_title=\"Percent\",\n", + " uniformtext_minsize=9,\n", + " uniformtext_mode=\"hide\",\n", + ")\n", + "fig.show()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Final Summaries" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Filtered out 235 AV rows in no_parking_cbd (CBD dest + stay_with_person).\n", + "Using loaded scenarios: ['base', 'deadheading_charge', 'no_cost_remote_parking', 'no_parking_cbd']\n", + "\n", + "[Metric 1] Share of driving trips serviced by AV\n", + " scenario total_driving_trips served_ct unavailable_ct available_not_used_ct served_pct unavailable_pct available_not_used_pct\n", + " base 10582539 8505884 1906616 170039 80.38 18.02 1.61\n", + " deadheading_charge 10582539 8045232 1821706 715601 76.02 17.21 6.76\n", + "no_cost_remote_parking 10582539 8505841 1906663 170035 80.38 18.02 1.61\n", + " no_parking_cbd 10582539 8505642 1906722 170175 80.37 18.02 1.61\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "insidetextanchor": "middle", + "name": "Served", + "text": [ + "80.4", + "76.0", + "80.4", + "80.4" + ], + "textfont": { + "size": 23 + }, + "textposition": "inside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 80.37659015478232, + 76.02364612121912, + 80.3761838250726, + 80.37430336897413 + ] + }, + { + "cliponaxis": false, + "insidetextanchor": "middle", + "name": "Not served: unavailable", + "text": [ + "18.0", + "17.2", + "18.0", + "18.0" + ], + "textfont": { + "size": 23 + }, + "textposition": "inside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 18.01662153099554, + 17.214262097215045, + 18.017065658817792, + 18.017623180977647 + ] + }, + { + "cliponaxis": false, + "insidetextanchor": "middle", + "name": "Not served: avail/not used", + "text": [ + "1.6", + "6.8", + "1.6", + "1.6" + ], + "textfont": { + "size": 23 + }, + "textposition": "inside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 1.606788314222135, + 6.762091781565842, + 1.6067505161096027, + 1.6080734500482352 + ] + } + ], + "layout": { + "barmode": "stack", + "font": { + "size": 20 + }, + "height": 780, + "legend": { + "font": { + "size": 23 + }, + "orientation": "h", + "title": { + "text": "" + }, + "x": 0, + "xanchor": "left", + "y": 1.02, + "yanchor": "bottom" + }, + "margin": { + "b": 95, + "l": 95, + "r": 50, + "t": 40 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": {}, + "uniformtext": { + "minsize": 23, + "mode": "show" + }, + "width": 1600, + "xaxis": { + "tickfont": { + "size": 23 + }, + "title": { + "font": { + "size": 28 + }, + "text": "Scenario" + } + }, + "yaxis": { + "range": [ + 0, + 112 + ], + "tickfont": { + "size": 23 + }, + "title": { + "font": { + "size": 28 + }, + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[Metric 2] AV repositioning choices (percent)\n", + " scenario choice count pct\n", + " base stay_with_person 5293608 75.28\n", + " base go_to_parking 94645 1.35\n", + " base go_home 783028 11.14\n", + " base service_next_trip_1 488805 6.95\n", + " base service_next_trip_2 245158 3.49\n", + " base service_next_trip_3 126788 1.80\n", + " deadheading_charge stay_with_person 6040785 90.92\n", + " deadheading_charge go_to_parking 55162 0.83\n", + " deadheading_charge go_home 290038 4.37\n", + " deadheading_charge service_next_trip_1 140167 2.11\n", + " deadheading_charge service_next_trip_2 75763 1.14\n", + " deadheading_charge service_next_trip_3 41820 0.63\n", + "no_cost_remote_parking stay_with_person 5282844 75.13\n", + "no_cost_remote_parking go_to_parking 116803 1.66\n", + "no_cost_remote_parking go_home 775615 11.03\n", + "no_cost_remote_parking service_next_trip_1 486306 6.92\n", + "no_cost_remote_parking service_next_trip_2 244742 3.48\n", + "no_cost_remote_parking service_next_trip_3 125720 1.79\n", + " no_parking_cbd stay_with_person 5241319 74.54\n", + " no_parking_cbd go_to_parking 125726 1.79\n", + " no_parking_cbd go_home 794674 11.30\n", + " no_parking_cbd service_next_trip_1 495211 7.04\n", + " no_parking_cbd service_next_trip_2 247842 3.52\n", + " no_parking_cbd service_next_trip_3 127025 1.81\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "name": "base", + "text": [ + "75.3", + "1.3", + "11.1", + "7.0", + "3.5", + "1.8" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 75.27849702617964, + 1.3459125328212387, + 11.135159794494678, + 6.951120245186597, + 3.4863038165924163, + 1.8030065847254393 + ] + }, + { + "cliponaxis": false, + "name": "deadheading_charge", + "text": [ + "90.9", + "0.8", + "4.4", + "2.1", + "1.1", + "0.6" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 90.92453266122143, + 0.8302859761865878, + 4.365586526253681, + 2.1097620540253335, + 1.1403675793811765, + 0.6294652029317847 + ] + }, + { + "cliponaxis": false, + "name": "no_cost_remote_parking", + "text": [ + "75.1", + "1.7", + "11.0", + "6.9", + "3.5", + "1.8" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 75.12544741703321, + 1.6610139604068812, + 11.029745322474449, + 6.915584831122734, + 3.4803890199558305, + 1.7878194490069013 + ] + }, + { + "cliponaxis": false, + "name": "no_parking_cbd", + "text": [ + "74.5", + "1.8", + "11.3", + "7.0", + "3.5", + "1.8" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "stay_with_person", + "go_to_parking", + "go_home", + "service_next_trip_1", + "service_next_trip_2", + "service_next_trip_3" + ], + "y": [ + 74.5374048767335, + 1.7879640154572152, + 11.301151042898423, + 7.042453017343931, + 3.5245898025782028, + 1.8064372449887276 + ] + } + ], + "layout": { + "barmode": "group", + "font": { + "size": 20 + }, + "height": 800, + "legend": { + "font": { + "size": 23 + }, + "orientation": "h", + "title": { + "text": "" + }, + "x": 0, + "xanchor": "left", + "y": 1.02, + "yanchor": "bottom" + }, + "margin": { + "b": 130, + "l": 95, + "r": 50, + "t": 40 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": {}, + "uniformtext": { + "minsize": 18, + "mode": "show" + }, + "width": 1900, + "xaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 28 + }, + "text": "Choice" + } + }, + "yaxis": { + "range": [ + 0, + 110 + ], + "tickfont": { + "size": 23 + }, + "title": { + "font": { + "size": 28 + }, + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[Metric 3] Deadheading shares (counts-based)\n", + " scenario deadhead_av_trips all_av_trips all_non_av_driving_trips deadhead_pct_of_av_trips deadhead_pct_of_all_driving\n", + " base 4567115 13072999 2076655 34.94 30.15\n", + " deadheading_charge 2532260 10577492 2537307 23.94 19.31\n", + "no_cost_remote_parking 4584904 13090745 2076698 35.02 30.23\n", + " no_parking_cbd 4644831 13150473 2076897 35.32 30.50\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "name": "Deadhead (% AV trips)", + "text": [ + "34.9", + "23.9", + "35.0", + "35.3" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 34.935480374472604, + 23.940079557611575, + 35.02401123847421, + 35.32063827666123 + ] + } + ], + "layout": { + "font": { + "size": 20 + }, + "height": 720, + "margin": { + "b": 95, + "l": 90, + "r": 50, + "t": 40 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": {}, + "uniformtext": { + "minsize": 18, + "mode": "show" + }, + "width": 1400, + "xaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 26 + }, + "text": "Scenario" + } + }, + "yaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 26 + }, + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "cliponaxis": false, + "name": "Deadhead (% all driving)", + "text": [ + "30.1", + "19.3", + "30.2", + "30.5" + ], + "textfont": { + "size": 20 + }, + "textposition": "outside", + "texttemplate": "%{text}", + "type": "bar", + "x": [ + "base", + "deadheading_charge", + "no_cost_remote_parking", + "no_parking_cbd" + ], + "y": [ + 30.146662095385146, + 19.308416392809374, + 30.228588958600337, + 30.503172905104424 + ] + } + ], + "layout": { + "font": { + "size": 20 + }, + "height": 720, + "margin": { + "b": 95, + "l": 90, + "r": 50, + "t": 40 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": {}, + "uniformtext": { + "minsize": 18, + "mode": "show" + }, + "width": 1400, + "xaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 26 + }, + "text": "Scenario" + } + }, + "yaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 26 + }, + "text": "Percent" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[Metric 4] Avg prev-dest → next-origin distance (overall, served trips)\n", + " scenario avg_prev_dest_to_next_origin_dist\n", + " base 3.206320\n", + " deadheading_charge 2.024152\n", + "no_cost_remote_parking 3.205988\n", + " no_parking_cbd 3.207656\n" + ] + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 30, + 60, + 90, + 120, + 150, + 180, + 210, + 240, + 270, + 300, + 330, + 360, + 390, + 420, + 450, + 480, + 510, + 540, + 570, + 600, + 630, + 660, + 690, + 720, + 750, + 780, + 810, + 840, + 870, + 900, + 930, + 960, + 990, + 1020, + 1050, + 1080, + 1110, + 1140, + 1170, + 1200, + 1230, + 1260, + 1290, + 1320, + 1350, + 1380, + 1410 + ], + "y": [ + 0.2714457365994652, + 0.8927347626574444, + 1.3531234943683632, + 1.2673367674688183, + 1.7793020247664253, + 2.3128333300518644, + 3.3725693443605262, + 4.179149411723364, + 4.206713924418482, + 3.8618501890623973, + 4.0626043799173965, + 3.4298166030071733, + 3.1678839804601977, + 2.8747135192941657, + 2.6926575914480213, + 2.72756511218195, + 2.8548184814562108, + 3.2572360564421876, + 3.428757835280082, + 3.1555934283420917, + 2.967130917531452, + 3.09249924653567, + 3.151277089317307, + 3.1446521381003785, + 3.1813263869542614, + 3.0935919822939284, + 3.187978964195365, + 3.3141371573305594, + 3.333518458550885, + 3.3796782158341356, + 3.3366790136113447, + 3.0069599927856787, + 2.993864283602907, + 2.7757430360411903, + 2.8027185436505997, + 2.6939945725531556, + 2.6417836241275863, + 2.866277203438918, + 3.0015666023708487, + 3.1255724167527683, + 3.0295474862592977, + 3.1619391361479026, + 3.0236653850139836, + 3.115792247295438, + 3.178840532604329, + 3.2577241295705237, + 3.6303520670175757, + 3.672035104131932 + ] + }, + { + "mode": "lines", + "name": "deadheading_charge", + "type": "scatter", + "x": [ + 0, + 30, + 60, + 90, + 120, + 150, + 180, + 210, + 240, + 270, + 300, + 330, + 360, + 390, + 420, + 450, + 480, + 510, + 540, + 570, + 600, + 630, + 660, + 690, + 720, + 750, + 780, + 810, + 840, + 870, + 900, + 930, + 960, + 990, + 1020, + 1050, + 1080, + 1110, + 1140, + 1170, + 1200, + 1230, + 1260, + 1290, + 1320, + 1350, + 1380, + 1410 + ], + "y": [ + 0.2718235046346808, + 0.36691210886351316, + 0.44885193900624026, + 0.4728974733729561, + 0.6514673248518877, + 0.9638677416573755, + 1.5670188382476584, + 2.243148413578458, + 2.4638780326588745, + 2.392408998554988, + 2.6556643789228858, + 2.3141061406795593, + 2.216847336805212, + 2.003839482853951, + 1.8756468991734954, + 1.8558457984726902, + 1.8986926314799195, + 2.0550148126255574, + 2.1125424379891, + 2.034707044033121, + 1.9176448730995763, + 2.0090066106421633, + 2.0515739046570696, + 2.0307787512085325, + 2.0423883359980377, + 1.9701605246536706, + 2.011632804062396, + 2.1146292888901783, + 2.085737339315754, + 2.117923610035623, + 2.0682278463122277, + 1.8751090530055918, + 1.8804489651990808, + 1.7121724236604543, + 1.726023455212698, + 1.6176991174117032, + 1.56870236176705, + 1.685524616810208, + 1.7250297393725096, + 1.7124041144586166, + 1.661442803510967, + 1.70806506306668, + 1.624558801767843, + 1.5740692670598757, + 1.5497771129732372, + 1.5440323123681345, + 1.539568204513605, + 1.6157791292932275 + ] + }, + { + "mode": "lines", + "name": "no_cost_remote_parking", + "type": "scatter", + "x": [ + 0, + 30, + 60, + 90, + 120, + 150, + 180, + 210, + 240, + 270, + 300, + 330, + 360, + 390, + 420, + 450, + 480, + 510, + 540, + 570, + 600, + 630, + 660, + 690, + 720, + 750, + 780, + 810, + 840, + 870, + 900, + 930, + 960, + 990, + 1020, + 1050, + 1080, + 1110, + 1140, + 1170, + 1200, + 1230, + 1260, + 1290, + 1320, + 1350, + 1380, + 1410 + ], + "y": [ + 0.2714457365994652, + 0.8927347626574444, + 1.3531234943683632, + 1.2673367674688183, + 1.7780425047435002, + 2.3068734925631995, + 3.379878170169468, + 4.181873086977287, + 4.211415112140996, + 3.8591650335786065, + 4.0638422410722805, + 3.434972315118763, + 3.172677570156221, + 2.8704815437497255, + 2.6936774789149855, + 2.730973507287413, + 2.860023999594208, + 3.258879472462436, + 3.43057494666901, + 3.149173711097823, + 2.9627456474683993, + 3.089868125913955, + 3.151405734554037, + 3.141884523344751, + 3.1847243150555875, + 3.0901871135853716, + 3.188435758150266, + 3.3102269508119417, + 3.3362616375439416, + 3.3760156197198987, + 3.3325558339529366, + 3.00468460398585, + 2.993566413628123, + 2.775113723962263, + 2.801494602593192, + 2.6972091654720045, + 2.6387336619965716, + 2.8646136891374216, + 2.998947118154736, + 3.1240965345958562, + 3.036041616132567, + 3.1537223242848174, + 3.036519205917991, + 3.1148759282026166, + 3.1851847799063897, + 3.2516553936456556, + 3.5837434384289377, + 3.673814589766138 + ] + }, + { + "mode": "lines", + "name": "no_parking_cbd", + "type": "scatter", + "x": [ + 0, + 30, + 60, + 90, + 120, + 150, + 180, + 210, + 240, + 270, + 300, + 330, + 360, + 390, + 420, + 450, + 480, + 510, + 540, + 570, + 600, + 630, + 660, + 690, + 720, + 750, + 780, + 810, + 840, + 870, + 900, + 930, + 960, + 990, + 1020, + 1050, + 1080, + 1110, + 1140, + 1170, + 1200, + 1230, + 1260, + 1290, + 1320, + 1350, + 1380, + 1410 + ], + "y": [ + 0.2714457365994652, + 0.8927347626574444, + 1.3649574611975306, + 1.273346835116539, + 1.7781506790896484, + 2.3161074271298747, + 3.38224618426993, + 4.182393971844332, + 4.211218058198609, + 3.8575729610475813, + 4.061047382177255, + 3.4298387475289362, + 3.1749308687469413, + 2.8754612629834924, + 2.6955591058722654, + 2.732000412676532, + 2.8597162646013197, + 3.2606328823173243, + 3.4294254903425614, + 3.151664747967606, + 2.9680292488806312, + 3.0903464887621097, + 3.14919776928015, + 3.14657771832841, + 3.1813499736051463, + 3.097974857084373, + 3.187877150272973, + 3.312899734506242, + 3.3372666777333246, + 3.3834417456868255, + 3.337887525142096, + 3.0107330804591235, + 2.993142263310158, + 2.7745527709453177, + 2.808961602324824, + 2.695672871962131, + 2.642426537130337, + 2.8746530780495974, + 2.997880798535715, + 3.1211039015786195, + 3.0313340993911124, + 3.1638814362194156, + 3.033880900227066, + 3.108717615417294, + 3.1776523066802613, + 3.2544400006287537, + 3.6203846965279602, + 3.693568007688026 + ] + } + ], + "layout": { + "font": { + "size": 20 + }, + "height": 780, + "legend": { + "font": { + "size": 20 + }, + "title": { + "text": "" + } + }, + "margin": { + "b": 95, + "l": 95, + "r": 50, + "t": 40 + }, + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": {}, + "width": 1600, + "xaxis": { + "tickfont": { + "size": 20 + }, + "tickmode": "array", + "ticktext": [ + "03:00", + "05:00", + "07:00", + "09:00", + "11:00", + "13:00", + "15:00", + "17:00", + "19:00", + "21:00", + "23:00", + "01:00" + ], + "tickvals": [ + 0, + 120, + 240, + 360, + 480, + 600, + 720, + 840, + 960, + 1080, + 1200, + 1320 + ], + "title": { + "font": { + "size": 26 + }, + "text": "Time of day)" + } + }, + "yaxis": { + "tickfont": { + "size": 20 + }, + "title": { + "font": { + "size": 26 + }, + "text": "Miles" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# ignore CBD-destination + stay_with_person rows in no_parking_cbd, then rerun metrics \n", + "\n", + "SCEN = \"no_parking_cbd\"\n", + "CHOICE = \"stay_with_person\"\n", + "\n", + "mgra_to_pseudo = dict(zip(\n", + " LAND_USE[\"mgra\"].astype(int),\n", + " pd.to_numeric(LAND_USE[\"pseudomsa\"], errors=\"coerce\").fillna(-1).astype(int),\n", + "))\n", + "\n", + "av0 = SCENARIO_DATA_ALL[SCEN][\"av_trips\"]\n", + "dest_pseudo = pd.to_numeric(av0[\"destination\"], errors=\"coerce\").fillna(-1).astype(int).map(mgra_to_pseudo)\n", + "\n", + "drop_mask = (dest_pseudo == 1) & (av0[\"av_repositioning_choice\"] == CHOICE)\n", + "drop_trip_ids = set(av0.loc[drop_mask, \"trip_id\"].dropna().unique())\n", + "\n", + "scenario_data_mod = dict(SCENARIO_DATA_ALL)\n", + "scenario_data_mod[SCEN] = dict(SCENARIO_DATA_ALL[SCEN])\n", + "scenario_data_mod[SCEN][\"av_trips\"] = av0.loc[~av0[\"trip_id\"].isin(drop_trip_ids)].copy()\n", + "\n", + "print(f\"Filtered out {int(drop_mask.sum()):,} AV rows in {SCEN} (CBD dest + {CHOICE}).\")\n", + "\n", + "scenario_order = list(scenario_data_mod.keys())\n", + "run_all_cases(scenario_data_mod, scenario_order)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/asim/scripts/taxi_tnc_routing/TNC_sensitivity_test_summaries.ipynb b/src/asim/scripts/taxi_tnc_routing/TNC_sensitivity_test_summaries.ipynb new file mode 100644 index 000000000..112da0169 --- /dev/null +++ b/src/asim/scripts/taxi_tnc_routing/TNC_sensitivity_test_summaries.ipynb @@ -0,0 +1,106774 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "import os\n", + "from pathlib import Path\n", + "import warnings\n", + "import numpy as np\n", + "import pandas as pd\n", + "import plotly.graph_objects as go\n", + "import plotly.express as px\n", + "from datetime import datetime, timedelta\n", + "import yaml\n", + "from typing import Callable, Dict, Any\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Root \n", + "BASE_OUTPUT_DIR = Path(r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\outputs\\tnc_routing_test\")\n", + "\n", + "# Scenario groups\n", + "TEST_GROUPS = {\n", + " \"time_bin_size\": [\"base\", \"timebin_5\", \"timebin_15\"],\n", + " \"max_detour\": [\"base\", \"detour_5\", \"detour_10\", \"detour_20\"],\n", + " \"max_occupancy\": [\"base\", \"occ_6\", \"occ_8\"],\n", + " \"tnc_shared_demand\": [\"base\", \"shift_to_all_shared_tnc\"]\n", + "}\n", + "\n", + "# Minutes per bin for each scenario, needed to map depart_bin to clock time\n", + "SCENARIO_BIN_MINUTES = {\n", + " \"base\": 10,\n", + " \"timebin_5\": 5,\n", + " \"timebin_15\": 15,\n", + " \"detour_5\": 10,\n", + " \"detour_10\": 10,\n", + " \"detour_20\": 10,\n", + " \"occ_6\": 10,\n", + " \"occ_8\": 10,\n", + " \"shift_to_all_shared_tnc\": 10\n", + "}\n", + "\n", + "def get_bin_minutes(scenario: str) -> int:\n", + " \"\"\"Return minutes per bin for this scenario.\"\"\"\n", + " return SCENARIO_BIN_MINUTES.get(scenario, 10)\n", + "\n", + "# Uniform start of day time for all scenarios\n", + "start_time = datetime(2000, 1, 1, 3, 0, 0)\n", + "\n", + "dist_col_new = \"OD_dist\"\n", + "\n", + "def load_outputs(scenario: str):\n", + " \"\"\"Read vehicle and pooled trip outputs for a given scenario.\"\"\"\n", + " p_new = BASE_OUTPUT_DIR / scenario / \"output_tnc_vehicle_trips.csv\"\n", + " p_pooled = BASE_OUTPUT_DIR / scenario / \"output_tnc_pooled_trips.csv\"\n", + " new_df = pd.read_csv(p_new)\n", + " pooled_df = pd.read_csv(p_pooled)\n", + " return new_df, pooled_df\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def run_timeseries_metric(metric_func, metric_name, y_label):\n", + " \"\"\"\n", + " metric_func(new_df, pooled_df, scenario, bin_minutes) -> DataFrame with:\n", + " x : usually datetime (time of day)\n", + " y : metric value\n", + " hover : optional text\n", + " \"\"\"\n", + "\n", + " for test_name, scen_list in TEST_GROUPS.items():\n", + " fig = go.Figure()\n", + " global_min_h = None\n", + " global_max_h = None\n", + "\n", + " for scen in scen_list:\n", + " new_df, pooled_df = load_outputs(scen)\n", + " bin_minutes = get_bin_minutes(scen)\n", + "\n", + " df = metric_func(new_df, pooled_df, scen, bin_minutes).copy()\n", + " if df.empty:\n", + " continue\n", + "\n", + " df[\"hover\"] = df[\"y\"]\n", + " x_raw = df[\"x\"]\n", + "\n", + " # Convert x to hours since 3:00\n", + " if np.issubdtype(np.array(x_raw).dtype, np.datetime64):\n", + " x_dt = pd.to_datetime(x_raw)\n", + " hours_from_3 = (x_dt - start_time).dt.total_seconds() / 3600.0\n", + " else:\n", + " # If someone returns numeric already, just use that\n", + " hours_from_3 = pd.to_numeric(x_raw, errors=\"coerce\")\n", + "\n", + " hours_from_3 = hours_from_3.to_numpy()\n", + "\n", + " if hours_from_3.size == 0 or np.all(np.isnan(hours_from_3)):\n", + " continue\n", + "\n", + " h_min = np.nanmin(hours_from_3)\n", + " h_max = np.nanmax(hours_from_3)\n", + " if global_min_h is None or h_min < global_min_h:\n", + " global_min_h = h_min\n", + " if global_max_h is None or h_max > global_max_h:\n", + " global_max_h = h_max\n", + "\n", + " # Build per-point time label for hover\n", + " time_labels = [\n", + " (start_time + pd.to_timedelta(float(h), unit=\"h\")).strftime(\"%H:%M\")\n", + " for h in hours_from_3\n", + " ]\n", + "\n", + " fig.add_trace(\n", + " go.Scatter(\n", + " x=hours_from_3,\n", + " y=df[\"y\"],\n", + " mode=\"lines\",\n", + " name=scen,\n", + " hovertemplate=(\n", + " \"Scenario: %{meta}
\"\n", + " \"Time: %{customdata[0]}
\"\n", + " \"%{customdata[1]}\"\n", + " ),\n", + " meta=scen,\n", + " customdata=np.column_stack([time_labels, df[\"hover\"].astype(str)]),\n", + " )\n", + " )\n", + "\n", + " fig.update_layout(\n", + " title=f\"{metric_name} — {test_name}\",\n", + " xaxis_title=\"Time of day\",\n", + " yaxis_title=y_label,\n", + " hovermode=\"x unified\",\n", + " )\n", + "\n", + " # Configure the numeric time axis (hours from 3:00) with HH:MM labels\n", + " if global_min_h is not None and global_max_h is not None:\n", + " lo = int(np.floor(global_min_h))\n", + " hi = int(np.ceil(global_max_h))\n", + " tickvals = list(range(lo, hi + 1))\n", + " ticktext = [\n", + " (start_time + pd.to_timedelta(h, unit=\"h\")).strftime(\"%H:%M\")\n", + " for h in tickvals\n", + " ]\n", + "\n", + " fig.update_xaxes(\n", + " tickmode=\"array\",\n", + " tickvals=tickvals,\n", + " ticktext=ticktext,\n", + " )\n", + "\n", + " fig.show()\n", + "\n", + "\n", + "def run_scalar_metric(metric_func, metric_name):\n", + " \"\"\"\n", + " metric_func(new_df, pooled_df) -> dict of scalar stats.\n", + " Any column whose name starts with 'share_' will be printed as a percent\n", + " with 2 decimal places.\n", + " \"\"\"\n", + "\n", + " for test_name, scen_list in TEST_GROUPS.items():\n", + " rows = []\n", + " for scen in scen_list:\n", + " new_df, pooled_df = load_outputs(scen)\n", + " stats = metric_func(new_df, pooled_df)\n", + " row = {\"scenario\": scen}\n", + " row.update(stats)\n", + " rows.append(row)\n", + "\n", + " df_stats = pd.DataFrame(rows).set_index(\"scenario\")\n", + "\n", + " # Format share_* columns as percentages with 2 decimals\n", + " for col in df_stats.columns:\n", + " if col.startswith(\"share_\"):\n", + " df_stats[col] = (df_stats[col] * 100).round(2).astype(str) + \"%\"\n", + "\n", + " print(f\"\\n{metric_name} — {test_name}\")\n", + " print(df_stats.to_string())\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Number of pooled vehicle trips" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Total shared TNC requested vehicle trips: 5,051 = 51 original TNC_SHARED + 5,000 converted DRIVEALONE\n", + "\n", + "= time_bin_size =\n", + "base : 816 pooled veh trips \n", + "timebin_5 : 549 pooled veh trips \n", + "timebin_15 : 1,022 pooled veh trips \n", + "\n", + "= max_detour =\n", + "base : 816 pooled veh trips \n", + "detour_5 : 42 pooled veh trips \n", + "detour_10 : 368 pooled veh trips \n", + "detour_20 : 1,028 pooled veh trips \n", + "\n", + "= max_occupancy =\n", + "base : 816 pooled veh trips \n", + "occ_6 : 851 pooled veh trips \n", + "occ_8 : 831 pooled veh trips \n", + "\n", + "= tnc_shared_demand =\n", + "base : 816 pooled veh trips \n", + "shift_to_all_shared_tnc: 5,223,850 pooled veh trips \n", + "\n" + ] + } + ], + "source": [ + "# shared-TNC “requested trips” \n", + "demand_dir = Path(r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\tnc_routing_data\")\n", + "demand_files = [\n", + " \"final_trips.parquet\",\n", + " \"final_trips_xborder.parquet\",\n", + " \"final_trips_visitor.parquet\",\n", + " \"final_santrips.parquet\",\n", + " \"final_cbxtrips.parquet\",\n", + "]\n", + "\n", + "frames = []\n", + "for fn in demand_files:\n", + " df = pd.read_parquet(demand_dir / fn, columns=[\"trip_mode\"])\n", + " frames.append(df)\n", + "\n", + "all_trips = pd.concat(frames, ignore_index=True)\n", + "n_shared_requested = int((all_trips[\"trip_mode\"] == \"TNC_SHARED\").sum())\n", + "\n", + "# Original shared TNC trips in demand\n", + "n_shared_orig = (all_trips[\"trip_mode\"] == \"TNC_SHARED\").sum()\n", + "\n", + "# DRIVEALONE trips that we convert in taxi_tnc_routing.py\n", + "n_da = (all_trips[\"trip_mode\"] == \"DRIVEALONE\").sum()\n", + "n_boost = min(5000, n_da) \n", + "n_shared_effective = n_shared_orig + n_boost\n", + "\n", + "print(\n", + " f\"Total shared TNC requested vehicle trips: \"\n", + " f\"{n_shared_effective:,} \"\n", + " f\"= {n_shared_orig:,} original TNC_SHARED + {n_boost:,} converted DRIVEALONE\\n\"\n", + ")\n", + "\n", + "\n", + "for group_name, scenarios in TEST_GROUPS.items():\n", + " print(f\"= {group_name} =\")\n", + " for scen in scenarios:\n", + " scen_dir = BASE_OUTPUT_DIR / scen\n", + "\n", + " pooled_path = scen_dir / \"output_tnc_pooled_trips.csv\"\n", + " pooled_df = pd.read_csv(pooled_path, usecols=[\"trip_i\", \"trip_j\"])\n", + " n_pooled = int(pooled_df[\"trip_j\"].notna().sum())\n", + "\n", + " print(f\"{scen:12s}: {n_pooled:8,d} pooled veh trips \")\n", + " print()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Trip counts by trip_mode (all input files combined):\n", + " BIKE 207,568\n", + " DRIVEALONE 6,706,371\n", + " EBIKE 9,434\n", + " ESCOOTER 2,964\n", + " KNR_LOC 3,352\n", + " KNR_MIX 1,230\n", + " KNR_PRM 21,589\n", + " PNR_LOC 425\n", + " PNR_MIX 203\n", + " PNR_PRM 8,794\n", + " SCH_BUS 20,502\n", + " SHARED2 2,336,043\n", + " SHARED3 1,842,507\n", + " TAXI 44,436\n", + " TNC_LOC 51\n", + " TNC_MIX 15\n", + " TNC_PRM 276\n", + " TNC_SHARED 51\n", + " TNC_SINGLE 123,986\n", + " WALK 1,949,737\n", + " WALK_LOC 58,974\n", + " WALK_MIX 32,833\n", + " WALK_PRM 73,871\n", + "\n", + "TOTAL: 13,445,212\n" + ] + } + ], + "source": [ + "mode_counts = (\n", + " all_trips[\"trip_mode\"]\n", + " .astype(\"string\")\n", + " .fillna(\"MISSING\")\n", + " .value_counts(dropna=False)\n", + " .sort_index()\n", + ")\n", + "print(\"Trip counts by trip_mode (all input files combined):\")\n", + "for mode, cnt in mode_counts.items():\n", + " print(f\" {mode:20s} {int(cnt):,}\")\n", + "\n", + "print(f\"\\nTOTAL: {int(mode_counts.sum()):,}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Fleet Size (cumulative vehicles)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "229" + ], + [ + "04:10", + "255" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "370" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "622" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "862" + ], + [ + "05:49", + "951" + ], + [ + "06:00", + "1166" + ], + [ + "06:10", + "1304" + ], + [ + "06:19", + "1466" + ], + [ + "06:30", + "2208" + ], + [ + "06:40", + "2687" + ], + [ + "06:49", + "2936" + ], + [ + "07:00", + "3610" + ], + [ + "07:10", + "3938" + ], + [ + "07:19", + "4140" + ], + [ + "07:30", + "4692" + ], + [ + "07:40", + "4779" + ], + [ + "07:49", + "4789" + ], + [ + "08:00", + "4847" + ], + [ + "08:10", + "4896" + ], + [ + "08:19", + "4937" + ], + [ + "08:30", + "4947" + ], + [ + "08:40", + "4963" + ], + [ + "08:49", + "4966" + ], + [ + "09:00", + "4979" + ], + [ + "09:10", + "5064" + ], + [ + "09:19", + "5135" + ], + [ + "09:30", + "5385" + ], + [ + "09:40", + "5549" + ], + [ + "09:49", + "5649" + ], + [ + "10:00", + "5669" + ], + [ + "10:10", + "5693" + ], + [ + "10:19", + "5724" + ], + [ + "10:30", + "5858" + ], + [ + "10:40", + "5996" + ], + [ + "10:49", + "6080" + ], + [ + "11:00", + "6085" + ], + [ + "11:10", + "6086" + ], + [ + "11:19", + "6090" + ], + [ + "11:30", + "6091" + ], + [ + "11:40", + "6093" + ], + [ + "11:49", + "6093" + ], + [ + "12:00", + "6097" + ], + [ + "12:10", + "6097" + ], + [ + "12:19", + "6097" + ], + [ + "12:30", + "6099" + ], + [ + "12:40", + "6102" + ], + [ + "12:49", + "6105" + ], + [ + "13:00", + "6107" + ], + [ + "13:10", + "6111" + ], + [ + "13:19", + "6111" + ], + [ + "13:30", + "6111" + ], + [ + "13:40", + "6113" + ], + [ + "13:49", + "6118" + ], + [ + "14:00", + "6127" + ], + [ + "14:10", + "6132" + ], + [ + "14:19", + "6135" + ], + [ + "14:30", + "6172" + ], + [ + "14:40", + "6239" + ], + [ + "14:49", + "6284" + ], + [ + "15:00", + "6457" + ], + [ + "15:10", + "6600" + ], + [ + "15:19", + "6714" + ], + [ + "15:30", + "6765" + ], + [ + "15:40", + "6827" + ], + [ + "15:49", + "6853" + ], + [ + "16:00", + "7064" + ], + [ + "16:10", + "7234" + ], + [ + "16:19", + "7384" + ], + [ + "16:30", + "7387" + ], + [ + "16:40", + "7393" + ], + [ + "16:49", + "7400" + ], + [ + "17:00", + "7404" + ], + [ + "17:10", + "7406" + ], + [ + "17:19", + "7436" + ], + [ + "17:30", + "7525" + ], + [ + "17:40", + "7573" + ], + [ + "17:49", + "7653" + ], + [ + "18:00", + "7701" + ], + [ + "18:10", + "7786" + ], + [ + "18:19", + "7806" + ], + [ + "18:30", + "7847" + ], + [ + "18:40", + "7949" + ], + [ + "18:49", + "8089" + ], + [ + "19:00", + "8204" + ], + [ + "19:10", + "8349" + ], + [ + "19:19", + "8416" + ], + [ + "19:30", + "8429" + ], + [ + "19:40", + "8430" + ], + [ + "19:49", + "8492" + ], + [ + "20:00", + "8602" + ], + [ + "20:10", + "8726" + ], + [ + "20:19", + "8849" + ], + [ + "20:30", + "8895" + ], + [ + "20:40", + "8971" + ], + [ + "20:49", + "9131" + ], + [ + "21:00", + "9246" + ], + [ + "21:10", + "9472" + ], + [ + "21:19", + "9616" + ], + [ + "21:30", + "9619" + ], + [ + "21:40", + "9621" + ], + [ + "21:49", + "9621" + ], + [ + "22:00", + "9644" + ], + [ + "22:10", + "9797" + ], + [ + "22:19", + "9925" + ], + [ + "22:30", + "9926" + ], + [ + "22:40", + "9926" + ], + [ + "22:49", + "9933" + ], + [ + "23:00", + "9943" + ], + [ + "23:10", + "9978" + ], + [ + "23:19", + "9993" + ], + [ + "23:30", + "9996" + ], + [ + "23:40", + "9996" + ], + [ + "23:49", + "9997" + ], + [ + "00:00", + "9997" + ], + [ + "00:10", + "9997" + ], + [ + "00:19", + "9997" + ], + [ + "00:30", + "9997" + ], + [ + "00:40", + "9997" + ], + [ + "00:49", + "9997" + ], + [ + "01:00", + "9997" + ], + [ + "01:10", + "9997" + ], + [ + "01:19", + "9997" + ], + [ + "01:30", + "9999" + ], + [ + "01:40", + "9999" + ], + [ + "01:49", + "10000" + ], + [ + "02:00", + "10000" + ], + [ + "02:10", + "10001" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 229, + 255, + 274, + 311, + 335, + 370, + 451, + 541, + 622, + 774, + 862, + 951, + 1166, + 1304, + 1466, + 2208, + 2687, + 2936, + 3610, + 3938, + 4140, + 4692, + 4779, + 4789, + 4847, + 4896, + 4937, + 4947, + 4963, + 4966, + 4979, + 5064, + 5135, + 5385, + 5549, + 5649, + 5669, + 5693, + 5724, + 5858, + 5996, + 6080, + 6085, + 6086, + 6090, + 6091, + 6093, + 6093, + 6097, + 6097, + 6097, + 6099, + 6102, + 6105, + 6107, + 6111, + 6111, + 6111, + 6113, + 6118, + 6127, + 6132, + 6135, + 6172, + 6239, + 6284, + 6457, + 6600, + 6714, + 6765, + 6827, + 6853, + 7064, + 7234, + 7384, + 7387, + 7393, + 7400, + 7404, + 7406, + 7436, + 7525, + 7573, + 7653, + 7701, + 7786, + 7806, + 7847, + 7949, + 8089, + 8204, + 8349, + 8416, + 8429, + 8430, + 8492, + 8602, + 8726, + 8849, + 8895, + 8971, + 9131, + 9246, + 9472, + 9616, + 9619, + 9621, + 9621, + 9644, + 9797, + 9925, + 9926, + 9926, + 9933, + 9943, + 9978, + 9993, + 9996, + 9996, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9999, + 9999, + 10000, + 10000, + 10001 + ] + }, + { + "customdata": [ + [ + "03:00", + "16" + ], + [ + "03:04", + "50" + ], + [ + "03:10", + "73" + ], + [ + "03:15", + "89" + ], + [ + "03:19", + "96" + ], + [ + "03:25", + "111" + ], + [ + "03:30", + "127" + ], + [ + "03:34", + "140" + ], + [ + "03:40", + "160" + ], + [ + "03:45", + "172" + ], + [ + "03:49", + "183" + ], + [ + "03:55", + "196" + ], + [ + "04:00", + "203" + ], + [ + "04:04", + "221" + ], + [ + "04:10", + "238" + ], + [ + "04:15", + "250" + ], + [ + "04:19", + "261" + ], + [ + "04:25", + "271" + ], + [ + "04:30", + "290" + ], + [ + "04:34", + "304" + ], + [ + "04:40", + "316" + ], + [ + "04:45", + "331" + ], + [ + "04:49", + "349" + ], + [ + "04:55", + "362" + ], + [ + "05:00", + "402" + ], + [ + "05:04", + "442" + ], + [ + "05:10", + "495" + ], + [ + "05:15", + "535" + ], + [ + "05:19", + "566" + ], + [ + "05:25", + "600" + ], + [ + "05:30", + "661" + ], + [ + "05:34", + "762" + ], + [ + "05:40", + "811" + ], + [ + "05:45", + "836" + ], + [ + "05:49", + "870" + ], + [ + "05:55", + "911" + ], + [ + "06:00", + "1031" + ], + [ + "06:04", + "1126" + ], + [ + "06:10", + "1196" + ], + [ + "06:15", + "1252" + ], + [ + "06:19", + "1322" + ], + [ + "06:25", + "1397" + ], + [ + "06:30", + "1749" + ], + [ + "06:34", + "2019" + ], + [ + "06:40", + "2274" + ], + [ + "06:45", + "2500" + ], + [ + "06:49", + "2625" + ], + [ + "06:55", + "2692" + ], + [ + "07:00", + "3004" + ], + [ + "07:04", + "3241" + ], + [ + "07:10", + "3440" + ], + [ + "07:15", + "3559" + ], + [ + "07:19", + "3665" + ], + [ + "07:25", + "3765" + ], + [ + "07:30", + "3974" + ], + [ + "07:34", + "4198" + ], + [ + "07:40", + "4270" + ], + [ + "07:45", + "4310" + ], + [ + "07:49", + "4333" + ], + [ + "07:55", + "4333" + ], + [ + "08:00", + "4341" + ], + [ + "08:04", + "4388" + ], + [ + "08:10", + "4404" + ], + [ + "08:15", + "4421" + ], + [ + "08:19", + "4435" + ], + [ + "08:25", + "4459" + ], + [ + "08:30", + "4462" + ], + [ + "08:34", + "4465" + ], + [ + "08:40", + "4471" + ], + [ + "08:45", + "4484" + ], + [ + "08:49", + "4487" + ], + [ + "08:55", + "4494" + ], + [ + "09:00", + "4500" + ], + [ + "09:04", + "4504" + ], + [ + "09:10", + "4520" + ], + [ + "09:15", + "4586" + ], + [ + "09:19", + "4604" + ], + [ + "09:25", + "4633" + ], + [ + "09:30", + "4756" + ], + [ + "09:34", + "4872" + ], + [ + "09:40", + "4960" + ], + [ + "09:45", + "5013" + ], + [ + "09:49", + "5052" + ], + [ + "09:55", + "5092" + ], + [ + "10:00", + "5116" + ], + [ + "10:04", + "5133" + ], + [ + "10:10", + "5145" + ], + [ + "10:15", + "5150" + ], + [ + "10:19", + "5162" + ], + [ + "10:25", + "5183" + ], + [ + "10:30", + "5226" + ], + [ + "10:34", + "5304" + ], + [ + "10:40", + "5370" + ], + [ + "10:45", + "5430" + ], + [ + "10:49", + "5496" + ], + [ + "10:55", + "5512" + ], + [ + "11:00", + "5515" + ], + [ + "11:04", + "5517" + ], + [ + "11:10", + "5518" + ], + [ + "11:15", + "5518" + ], + [ + "11:19", + "5519" + ], + [ + "11:25", + "5521" + ], + [ + "11:30", + "5523" + ], + [ + "11:34", + "5523" + ], + [ + "11:40", + "5525" + ], + [ + "11:45", + "5526" + ], + [ + "11:49", + "5526" + ], + [ + "11:55", + "5526" + ], + [ + "12:00", + "5530" + ], + [ + "12:04", + "5530" + ], + [ + "12:10", + "5530" + ], + [ + "12:15", + "5530" + ], + [ + "12:19", + "5530" + ], + [ + "12:25", + "5530" + ], + [ + "12:30", + "5531" + ], + [ + "12:34", + "5532" + ], + [ + "12:40", + "5533" + ], + [ + "12:45", + "5535" + ], + [ + "12:49", + "5537" + ], + [ + "12:55", + "5538" + ], + [ + "13:00", + "5538" + ], + [ + "13:04", + "5539" + ], + [ + "13:10", + "5540" + ], + [ + "13:15", + "5543" + ], + [ + "13:19", + "5543" + ], + [ + "13:25", + "5543" + ], + [ + "13:30", + "5543" + ], + [ + "13:34", + "5543" + ], + [ + "13:40", + "5543" + ], + [ + "13:45", + "5543" + ], + [ + "13:49", + "5543" + ], + [ + "13:55", + "5545" + ], + [ + "14:00", + "5556" + ], + [ + "14:04", + "5570" + ], + [ + "14:10", + "5572" + ], + [ + "14:15", + "5574" + ], + [ + "14:19", + "5579" + ], + [ + "14:25", + "5583" + ], + [ + "14:30", + "5634" + ], + [ + "14:34", + "5649" + ], + [ + "14:40", + "5699" + ], + [ + "14:45", + "5703" + ], + [ + "14:49", + "5740" + ], + [ + "14:55", + "5745" + ], + [ + "15:00", + "5822" + ], + [ + "15:04", + "5901" + ], + [ + "15:10", + "6012" + ], + [ + "15:15", + "6079" + ], + [ + "15:19", + "6161" + ], + [ + "15:25", + "6172" + ], + [ + "15:30", + "6210" + ], + [ + "15:34", + "6224" + ], + [ + "15:40", + "6258" + ], + [ + "15:45", + "6289" + ], + [ + "15:49", + "6303" + ], + [ + "15:55", + "6333" + ], + [ + "16:00", + "6454" + ], + [ + "16:04", + "6564" + ], + [ + "16:10", + "6651" + ], + [ + "16:15", + "6752" + ], + [ + "16:19", + "6819" + ], + [ + "16:25", + "6843" + ], + [ + "16:30", + "6847" + ], + [ + "16:34", + "6847" + ], + [ + "16:40", + "6848" + ], + [ + "16:45", + "6854" + ], + [ + "16:49", + "6855" + ], + [ + "16:55", + "6860" + ], + [ + "17:00", + "6862" + ], + [ + "17:04", + "6864" + ], + [ + "17:10", + "6875" + ], + [ + "17:15", + "6882" + ], + [ + "17:19", + "6905" + ], + [ + "17:25", + "6965" + ], + [ + "17:30", + "7024" + ], + [ + "17:34", + "7073" + ], + [ + "17:40", + "7079" + ], + [ + "17:45", + "7120" + ], + [ + "17:49", + "7186" + ], + [ + "17:55", + "7253" + ], + [ + "18:00", + "7286" + ], + [ + "18:04", + "7332" + ], + [ + "18:10", + "7359" + ], + [ + "18:15", + "7410" + ], + [ + "18:19", + "7413" + ], + [ + "18:25", + "7430" + ], + [ + "18:30", + "7434" + ], + [ + "18:34", + "7486" + ], + [ + "18:40", + "7533" + ], + [ + "18:45", + "7623" + ], + [ + "18:49", + "7686" + ], + [ + "18:55", + "7754" + ], + [ + "19:00", + "7811" + ], + [ + "19:04", + "7886" + ], + [ + "19:10", + "7954" + ], + [ + "19:15", + "8025" + ], + [ + "19:19", + "8054" + ], + [ + "19:25", + "8119" + ], + [ + "19:30", + "8137" + ], + [ + "19:34", + "8138" + ], + [ + "19:40", + "8138" + ], + [ + "19:45", + "8138" + ], + [ + "19:49", + "8175" + ], + [ + "19:55", + "8201" + ], + [ + "20:00", + "8253" + ], + [ + "20:04", + "8331" + ], + [ + "20:10", + "8389" + ], + [ + "20:15", + "8455" + ], + [ + "20:19", + "8488" + ], + [ + "20:25", + "8578" + ], + [ + "20:30", + "8578" + ], + [ + "20:34", + "8606" + ], + [ + "20:40", + "8650" + ], + [ + "20:45", + "8718" + ], + [ + "20:49", + "8804" + ], + [ + "20:55", + "8878" + ], + [ + "21:00", + "8921" + ], + [ + "21:04", + "8987" + ], + [ + "21:10", + "9082" + ], + [ + "21:15", + "9235" + ], + [ + "21:19", + "9277" + ], + [ + "21:25", + "9328" + ], + [ + "21:30", + "9331" + ], + [ + "21:34", + "9331" + ], + [ + "21:40", + "9332" + ], + [ + "21:45", + "9333" + ], + [ + "21:49", + "9334" + ], + [ + "21:55", + "9337" + ], + [ + "22:00", + "9384" + ], + [ + "22:04", + "9436" + ], + [ + "22:10", + "9504" + ], + [ + "22:15", + "9572" + ], + [ + "22:19", + "9616" + ], + [ + "22:25", + "9666" + ], + [ + "22:30", + "9666" + ], + [ + "22:34", + "9666" + ], + [ + "22:40", + "9666" + ], + [ + "22:45", + "9666" + ], + [ + "22:49", + "9683" + ], + [ + "22:55", + "9722" + ], + [ + "23:00", + "9725" + ], + [ + "23:04", + "9736" + ], + [ + "23:10", + "9750" + ], + [ + "23:15", + "9767" + ], + [ + "23:19", + "9774" + ], + [ + "23:25", + "9776" + ], + [ + "23:30", + "9777" + ], + [ + "23:34", + "9779" + ], + [ + "23:40", + "9779" + ], + [ + "23:45", + "9779" + ], + [ + "23:49", + "9779" + ], + [ + "23:55", + "9780" + ], + [ + "00:00", + "9780" + ], + [ + "00:04", + "9780" + ], + [ + "00:10", + "9780" + ], + [ + "00:15", + "9780" + ], + [ + "00:19", + "9780" + ], + [ + "00:25", + "9780" + ], + [ + "00:30", + "9780" + ], + [ + "00:34", + "9780" + ], + [ + "00:40", + "9780" + ], + [ + "00:45", + "9780" + ], + [ + "00:49", + "9780" + ], + [ + "00:55", + "9780" + ], + [ + "01:00", + "9780" + ], + [ + "01:04", + "9780" + ], + [ + "01:10", + "9780" + ], + [ + "01:15", + "9780" + ], + [ + "01:19", + "9780" + ], + [ + "01:25", + "9780" + ], + [ + "01:30", + "9780" + ], + [ + "01:34", + "9781" + ], + [ + "01:40", + "9781" + ], + [ + "01:45", + "9781" + ], + [ + "01:49", + "9781" + ], + [ + "01:55", + "9782" + ], + [ + "02:00", + "9782" + ], + [ + "02:04", + "9782" + ], + [ + "02:10", + "9782" + ], + [ + "02:15", + "9783" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25 + ], + "y": [ + 16, + 50, + 73, + 89, + 96, + 111, + 127, + 140, + 160, + 172, + 183, + 196, + 203, + 221, + 238, + 250, + 261, + 271, + 290, + 304, + 316, + 331, + 349, + 362, + 402, + 442, + 495, + 535, + 566, + 600, + 661, + 762, + 811, + 836, + 870, + 911, + 1031, + 1126, + 1196, + 1252, + 1322, + 1397, + 1749, + 2019, + 2274, + 2500, + 2625, + 2692, + 3004, + 3241, + 3440, + 3559, + 3665, + 3765, + 3974, + 4198, + 4270, + 4310, + 4333, + 4333, + 4341, + 4388, + 4404, + 4421, + 4435, + 4459, + 4462, + 4465, + 4471, + 4484, + 4487, + 4494, + 4500, + 4504, + 4520, + 4586, + 4604, + 4633, + 4756, + 4872, + 4960, + 5013, + 5052, + 5092, + 5116, + 5133, + 5145, + 5150, + 5162, + 5183, + 5226, + 5304, + 5370, + 5430, + 5496, + 5512, + 5515, + 5517, + 5518, + 5518, + 5519, + 5521, + 5523, + 5523, + 5525, + 5526, + 5526, + 5526, + 5530, + 5530, + 5530, + 5530, + 5530, + 5530, + 5531, + 5532, + 5533, + 5535, + 5537, + 5538, + 5538, + 5539, + 5540, + 5543, + 5543, + 5543, + 5543, + 5543, + 5543, + 5543, + 5543, + 5545, + 5556, + 5570, + 5572, + 5574, + 5579, + 5583, + 5634, + 5649, + 5699, + 5703, + 5740, + 5745, + 5822, + 5901, + 6012, + 6079, + 6161, + 6172, + 6210, + 6224, + 6258, + 6289, + 6303, + 6333, + 6454, + 6564, + 6651, + 6752, + 6819, + 6843, + 6847, + 6847, + 6848, + 6854, + 6855, + 6860, + 6862, + 6864, + 6875, + 6882, + 6905, + 6965, + 7024, + 7073, + 7079, + 7120, + 7186, + 7253, + 7286, + 7332, + 7359, + 7410, + 7413, + 7430, + 7434, + 7486, + 7533, + 7623, + 7686, + 7754, + 7811, + 7886, + 7954, + 8025, + 8054, + 8119, + 8137, + 8138, + 8138, + 8138, + 8175, + 8201, + 8253, + 8331, + 8389, + 8455, + 8488, + 8578, + 8578, + 8606, + 8650, + 8718, + 8804, + 8878, + 8921, + 8987, + 9082, + 9235, + 9277, + 9328, + 9331, + 9331, + 9332, + 9333, + 9334, + 9337, + 9384, + 9436, + 9504, + 9572, + 9616, + 9666, + 9666, + 9666, + 9666, + 9666, + 9683, + 9722, + 9725, + 9736, + 9750, + 9767, + 9774, + 9776, + 9777, + 9779, + 9779, + 9779, + 9779, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9780, + 9781, + 9781, + 9781, + 9781, + 9782, + 9782, + 9782, + 9782, + 9783 + ] + }, + { + "customdata": [ + [ + "03:00", + "80" + ], + [ + "03:15", + "115" + ], + [ + "03:30", + "169" + ], + [ + "03:45", + "198" + ], + [ + "04:00", + "245" + ], + [ + "04:15", + "285" + ], + [ + "04:30", + "327" + ], + [ + "04:45", + "382" + ], + [ + "05:00", + "525" + ], + [ + "05:15", + "639" + ], + [ + "05:30", + "857" + ], + [ + "05:45", + "988" + ], + [ + "06:00", + "1315" + ], + [ + "06:15", + "1528" + ], + [ + "06:30", + "2733" + ], + [ + "06:45", + "3202" + ], + [ + "07:00", + "4235" + ], + [ + "07:15", + "4574" + ], + [ + "07:30", + "5332" + ], + [ + "07:45", + "5371" + ], + [ + "08:00", + "5458" + ], + [ + "08:15", + "5546" + ], + [ + "08:30", + "5560" + ], + [ + "08:45", + "5581" + ], + [ + "09:00", + "5613" + ], + [ + "09:15", + "5721" + ], + [ + "09:30", + "6059" + ], + [ + "09:45", + "6250" + ], + [ + "10:00", + "6293" + ], + [ + "10:15", + "6316" + ], + [ + "10:30", + "6542" + ], + [ + "10:45", + "6732" + ], + [ + "11:00", + "6736" + ], + [ + "11:15", + "6742" + ], + [ + "11:30", + "6745" + ], + [ + "11:45", + "6748" + ], + [ + "12:00", + "6750" + ], + [ + "12:15", + "6750" + ], + [ + "12:30", + "6754" + ], + [ + "12:45", + "6758" + ], + [ + "13:00", + "6760" + ], + [ + "13:15", + "6762" + ], + [ + "13:30", + "6762" + ], + [ + "13:45", + "6762" + ], + [ + "14:00", + "6768" + ], + [ + "14:15", + "6782" + ], + [ + "14:30", + "6836" + ], + [ + "14:45", + "6874" + ], + [ + "15:00", + "7112" + ], + [ + "15:15", + "7296" + ], + [ + "15:30", + "7309" + ], + [ + "15:45", + "7383" + ], + [ + "16:00", + "7720" + ], + [ + "16:15", + "7947" + ], + [ + "16:30", + "7953" + ], + [ + "16:45", + "7961" + ], + [ + "17:00", + "7965" + ], + [ + "17:15", + "8001" + ], + [ + "17:30", + "8096" + ], + [ + "17:45", + "8149" + ], + [ + "18:00", + "8206" + ], + [ + "18:15", + "8317" + ], + [ + "18:30", + "8356" + ], + [ + "18:45", + "8531" + ], + [ + "19:00", + "8692" + ], + [ + "19:15", + "8844" + ], + [ + "19:30", + "8845" + ], + [ + "19:45", + "8846" + ], + [ + "20:00", + "8952" + ], + [ + "20:15", + "9139" + ], + [ + "20:30", + "9234" + ], + [ + "20:45", + "9434" + ], + [ + "21:00", + "9616" + ], + [ + "21:15", + "9909" + ], + [ + "21:30", + "9913" + ], + [ + "21:45", + "9915" + ], + [ + "22:00", + "9928" + ], + [ + "22:15", + "10131" + ], + [ + "22:30", + "10131" + ], + [ + "22:45", + "10153" + ], + [ + "23:00", + "10174" + ], + [ + "23:15", + "10206" + ], + [ + "23:30", + "10208" + ], + [ + "23:45", + "10209" + ], + [ + "00:00", + "10210" + ], + [ + "00:15", + "10210" + ], + [ + "00:30", + "10210" + ], + [ + "00:45", + "10210" + ], + [ + "01:00", + "10210" + ], + [ + "01:15", + "10210" + ], + [ + "01:30", + "10213" + ], + [ + "01:45", + "10214" + ], + [ + "02:00", + "10214" + ], + [ + "02:15", + "10215" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25 + ], + "y": [ + 80, + 115, + 169, + 198, + 245, + 285, + 327, + 382, + 525, + 639, + 857, + 988, + 1315, + 1528, + 2733, + 3202, + 4235, + 4574, + 5332, + 5371, + 5458, + 5546, + 5560, + 5581, + 5613, + 5721, + 6059, + 6250, + 6293, + 6316, + 6542, + 6732, + 6736, + 6742, + 6745, + 6748, + 6750, + 6750, + 6754, + 6758, + 6760, + 6762, + 6762, + 6762, + 6768, + 6782, + 6836, + 6874, + 7112, + 7296, + 7309, + 7383, + 7720, + 7947, + 7953, + 7961, + 7965, + 8001, + 8096, + 8149, + 8206, + 8317, + 8356, + 8531, + 8692, + 8844, + 8845, + 8846, + 8952, + 9139, + 9234, + 9434, + 9616, + 9909, + 9913, + 9915, + 9928, + 10131, + 10131, + 10153, + 10174, + 10206, + 10208, + 10209, + 10210, + 10210, + 10210, + 10210, + 10210, + 10210, + 10213, + 10214, + 10214, + 10215 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Fleet Size (cumulative vehicles) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Cumulative unique vehicles" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "229" + ], + [ + "04:10", + "255" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "370" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "622" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "862" + ], + [ + "05:49", + "951" + ], + [ + "06:00", + "1166" + ], + [ + "06:10", + "1304" + ], + [ + "06:19", + "1466" + ], + [ + "06:30", + "2208" + ], + [ + "06:40", + "2687" + ], + [ + "06:49", + "2936" + ], + [ + "07:00", + "3610" + ], + [ + "07:10", + "3938" + ], + [ + "07:19", + "4140" + ], + [ + "07:30", + "4692" + ], + [ + "07:40", + "4779" + ], + [ + "07:49", + "4789" + ], + [ + "08:00", + "4847" + ], + [ + "08:10", + "4896" + ], + [ + "08:19", + "4937" + ], + [ + "08:30", + "4947" + ], + [ + "08:40", + "4963" + ], + [ + "08:49", + "4966" + ], + [ + "09:00", + "4979" + ], + [ + "09:10", + "5064" + ], + [ + "09:19", + "5135" + ], + [ + "09:30", + "5385" + ], + [ + "09:40", + "5549" + ], + [ + "09:49", + "5649" + ], + [ + "10:00", + "5669" + ], + [ + "10:10", + "5693" + ], + [ + "10:19", + "5724" + ], + [ + "10:30", + "5858" + ], + [ + "10:40", + "5996" + ], + [ + "10:49", + "6080" + ], + [ + "11:00", + "6085" + ], + [ + "11:10", + "6086" + ], + [ + "11:19", + "6090" + ], + [ + "11:30", + "6091" + ], + [ + "11:40", + "6093" + ], + [ + "11:49", + "6093" + ], + [ + "12:00", + "6097" + ], + [ + "12:10", + "6097" + ], + [ + "12:19", + "6097" + ], + [ + "12:30", + "6099" + ], + [ + "12:40", + "6102" + ], + [ + "12:49", + "6105" + ], + [ + "13:00", + "6107" + ], + [ + "13:10", + "6111" + ], + [ + "13:19", + "6111" + ], + [ + "13:30", + "6111" + ], + [ + "13:40", + "6113" + ], + [ + "13:49", + "6118" + ], + [ + "14:00", + "6127" + ], + [ + "14:10", + "6132" + ], + [ + "14:19", + "6135" + ], + [ + "14:30", + "6172" + ], + [ + "14:40", + "6239" + ], + [ + "14:49", + "6284" + ], + [ + "15:00", + "6457" + ], + [ + "15:10", + "6600" + ], + [ + "15:19", + "6714" + ], + [ + "15:30", + "6765" + ], + [ + "15:40", + "6827" + ], + [ + "15:49", + "6853" + ], + [ + "16:00", + "7064" + ], + [ + "16:10", + "7234" + ], + [ + "16:19", + "7384" + ], + [ + "16:30", + "7387" + ], + [ + "16:40", + "7393" + ], + [ + "16:49", + "7400" + ], + [ + "17:00", + "7404" + ], + [ + "17:10", + "7406" + ], + [ + "17:19", + "7436" + ], + [ + "17:30", + "7525" + ], + [ + "17:40", + "7573" + ], + [ + "17:49", + "7653" + ], + [ + "18:00", + "7701" + ], + [ + "18:10", + "7786" + ], + [ + "18:19", + "7806" + ], + [ + "18:30", + "7847" + ], + [ + "18:40", + "7949" + ], + [ + "18:49", + "8089" + ], + [ + "19:00", + "8204" + ], + [ + "19:10", + "8349" + ], + [ + "19:19", + "8416" + ], + [ + "19:30", + "8429" + ], + [ + "19:40", + "8430" + ], + [ + "19:49", + "8492" + ], + [ + "20:00", + "8602" + ], + [ + "20:10", + "8726" + ], + [ + "20:19", + "8849" + ], + [ + "20:30", + "8895" + ], + [ + "20:40", + "8971" + ], + [ + "20:49", + "9131" + ], + [ + "21:00", + "9246" + ], + [ + "21:10", + "9472" + ], + [ + "21:19", + "9616" + ], + [ + "21:30", + "9619" + ], + [ + "21:40", + "9621" + ], + [ + "21:49", + "9621" + ], + [ + "22:00", + "9644" + ], + [ + "22:10", + "9797" + ], + [ + "22:19", + "9925" + ], + [ + "22:30", + "9926" + ], + [ + "22:40", + "9926" + ], + [ + "22:49", + "9933" + ], + [ + "23:00", + "9943" + ], + [ + "23:10", + "9978" + ], + [ + "23:19", + "9993" + ], + [ + "23:30", + "9996" + ], + [ + "23:40", + "9996" + ], + [ + "23:49", + "9997" + ], + [ + "00:00", + "9997" + ], + [ + "00:10", + "9997" + ], + [ + "00:19", + "9997" + ], + [ + "00:30", + "9997" + ], + [ + "00:40", + "9997" + ], + [ + "00:49", + "9997" + ], + [ + "01:00", + "9997" + ], + [ + "01:10", + "9997" + ], + [ + "01:19", + "9997" + ], + [ + "01:30", + "9999" + ], + [ + "01:40", + "9999" + ], + [ + "01:49", + "10000" + ], + [ + "02:00", + "10000" + ], + [ + "02:10", + "10001" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 229, + 255, + 274, + 311, + 335, + 370, + 451, + 541, + 622, + 774, + 862, + 951, + 1166, + 1304, + 1466, + 2208, + 2687, + 2936, + 3610, + 3938, + 4140, + 4692, + 4779, + 4789, + 4847, + 4896, + 4937, + 4947, + 4963, + 4966, + 4979, + 5064, + 5135, + 5385, + 5549, + 5649, + 5669, + 5693, + 5724, + 5858, + 5996, + 6080, + 6085, + 6086, + 6090, + 6091, + 6093, + 6093, + 6097, + 6097, + 6097, + 6099, + 6102, + 6105, + 6107, + 6111, + 6111, + 6111, + 6113, + 6118, + 6127, + 6132, + 6135, + 6172, + 6239, + 6284, + 6457, + 6600, + 6714, + 6765, + 6827, + 6853, + 7064, + 7234, + 7384, + 7387, + 7393, + 7400, + 7404, + 7406, + 7436, + 7525, + 7573, + 7653, + 7701, + 7786, + 7806, + 7847, + 7949, + 8089, + 8204, + 8349, + 8416, + 8429, + 8430, + 8492, + 8602, + 8726, + 8849, + 8895, + 8971, + 9131, + 9246, + 9472, + 9616, + 9619, + 9621, + 9621, + 9644, + 9797, + 9925, + 9926, + 9926, + 9933, + 9943, + 9978, + 9993, + 9996, + 9996, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9999, + 9999, + 10000, + 10000, + 10001 + ] + }, + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "230" + ], + [ + "04:10", + "256" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "371" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "621" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "864" + ], + [ + "05:49", + "953" + ], + [ + "06:00", + "1167" + ], + [ + "06:10", + "1303" + ], + [ + "06:19", + "1469" + ], + [ + "06:30", + "2215" + ], + [ + "06:40", + "2684" + ], + [ + "06:49", + "2949" + ], + [ + "07:00", + "3621" + ], + [ + "07:10", + "3940" + ], + [ + "07:19", + "4155" + ], + [ + "07:30", + "4697" + ], + [ + "07:40", + "4773" + ], + [ + "07:49", + "4789" + ], + [ + "08:00", + "4845" + ], + [ + "08:10", + "4892" + ], + [ + "08:19", + "4933" + ], + [ + "08:30", + "4941" + ], + [ + "08:40", + "4952" + ], + [ + "08:49", + "4955" + ], + [ + "09:00", + "4974" + ], + [ + "09:10", + "5055" + ], + [ + "09:19", + "5126" + ], + [ + "09:30", + "5375" + ], + [ + "09:40", + "5540" + ], + [ + "09:49", + "5632" + ], + [ + "10:00", + "5656" + ], + [ + "10:10", + "5682" + ], + [ + "10:19", + "5711" + ], + [ + "10:30", + "5852" + ], + [ + "10:40", + "5987" + ], + [ + "10:49", + "6070" + ], + [ + "11:00", + "6074" + ], + [ + "11:10", + "6075" + ], + [ + "11:19", + "6079" + ], + [ + "11:30", + "6080" + ], + [ + "11:40", + "6082" + ], + [ + "11:49", + "6082" + ], + [ + "12:00", + "6086" + ], + [ + "12:10", + "6086" + ], + [ + "12:19", + "6086" + ], + [ + "12:30", + "6088" + ], + [ + "12:40", + "6091" + ], + [ + "12:49", + "6094" + ], + [ + "13:00", + "6095" + ], + [ + "13:10", + "6099" + ], + [ + "13:19", + "6099" + ], + [ + "13:30", + "6099" + ], + [ + "13:40", + "6101" + ], + [ + "13:49", + "6107" + ], + [ + "14:00", + "6117" + ], + [ + "14:10", + "6123" + ], + [ + "14:19", + "6126" + ], + [ + "14:30", + "6163" + ], + [ + "14:40", + "6224" + ], + [ + "14:49", + "6272" + ], + [ + "15:00", + "6452" + ], + [ + "15:10", + "6591" + ], + [ + "15:19", + "6705" + ], + [ + "15:30", + "6747" + ], + [ + "15:40", + "6810" + ], + [ + "15:49", + "6845" + ], + [ + "16:00", + "7060" + ], + [ + "16:10", + "7219" + ], + [ + "16:19", + "7374" + ], + [ + "16:30", + "7377" + ], + [ + "16:40", + "7383" + ], + [ + "16:49", + "7390" + ], + [ + "17:00", + "7394" + ], + [ + "17:10", + "7396" + ], + [ + "17:19", + "7418" + ], + [ + "17:30", + "7507" + ], + [ + "17:40", + "7569" + ], + [ + "17:49", + "7642" + ], + [ + "18:00", + "7684" + ], + [ + "18:10", + "7780" + ], + [ + "18:19", + "7791" + ], + [ + "18:30", + "7837" + ], + [ + "18:40", + "7938" + ], + [ + "18:49", + "8076" + ], + [ + "19:00", + "8185" + ], + [ + "19:10", + "8321" + ], + [ + "19:19", + "8400" + ], + [ + "19:30", + "8402" + ], + [ + "19:40", + "8403" + ], + [ + "19:49", + "8473" + ], + [ + "20:00", + "8585" + ], + [ + "20:10", + "8710" + ], + [ + "20:19", + "8840" + ], + [ + "20:30", + "8899" + ], + [ + "20:40", + "8993" + ], + [ + "20:49", + "9152" + ], + [ + "21:00", + "9265" + ], + [ + "21:10", + "9491" + ], + [ + "21:19", + "9654" + ], + [ + "21:30", + "9657" + ], + [ + "21:40", + "9659" + ], + [ + "21:49", + "9659" + ], + [ + "22:00", + "9668" + ], + [ + "22:10", + "9823" + ], + [ + "22:19", + "9952" + ], + [ + "22:30", + "9954" + ], + [ + "22:40", + "9954" + ], + [ + "22:49", + "9958" + ], + [ + "23:00", + "9968" + ], + [ + "23:10", + "10004" + ], + [ + "23:19", + "10020" + ], + [ + "23:30", + "10023" + ], + [ + "23:40", + "10023" + ], + [ + "23:49", + "10024" + ], + [ + "00:00", + "10024" + ], + [ + "00:10", + "10024" + ], + [ + "00:19", + "10024" + ], + [ + "00:30", + "10024" + ], + [ + "00:40", + "10024" + ], + [ + "00:49", + "10024" + ], + [ + "01:00", + "10024" + ], + [ + "01:10", + "10024" + ], + [ + "01:19", + "10024" + ], + [ + "01:30", + "10025" + ], + [ + "01:40", + "10025" + ], + [ + "01:49", + "10026" + ], + [ + "02:00", + "10026" + ], + [ + "02:10", + "10027" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 230, + 256, + 274, + 311, + 335, + 371, + 451, + 541, + 621, + 774, + 864, + 953, + 1167, + 1303, + 1469, + 2215, + 2684, + 2949, + 3621, + 3940, + 4155, + 4697, + 4773, + 4789, + 4845, + 4892, + 4933, + 4941, + 4952, + 4955, + 4974, + 5055, + 5126, + 5375, + 5540, + 5632, + 5656, + 5682, + 5711, + 5852, + 5987, + 6070, + 6074, + 6075, + 6079, + 6080, + 6082, + 6082, + 6086, + 6086, + 6086, + 6088, + 6091, + 6094, + 6095, + 6099, + 6099, + 6099, + 6101, + 6107, + 6117, + 6123, + 6126, + 6163, + 6224, + 6272, + 6452, + 6591, + 6705, + 6747, + 6810, + 6845, + 7060, + 7219, + 7374, + 7377, + 7383, + 7390, + 7394, + 7396, + 7418, + 7507, + 7569, + 7642, + 7684, + 7780, + 7791, + 7837, + 7938, + 8076, + 8185, + 8321, + 8400, + 8402, + 8403, + 8473, + 8585, + 8710, + 8840, + 8899, + 8993, + 9152, + 9265, + 9491, + 9654, + 9657, + 9659, + 9659, + 9668, + 9823, + 9952, + 9954, + 9954, + 9958, + 9968, + 10004, + 10020, + 10023, + 10023, + 10024, + 10024, + 10024, + 10024, + 10024, + 10024, + 10024, + 10024, + 10024, + 10024, + 10025, + 10025, + 10026, + 10026, + 10027 + ] + }, + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "230" + ], + [ + "04:10", + "256" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "371" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "621" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "864" + ], + [ + "05:49", + "953" + ], + [ + "06:00", + "1167" + ], + [ + "06:10", + "1303" + ], + [ + "06:19", + "1469" + ], + [ + "06:30", + "2212" + ], + [ + "06:40", + "2682" + ], + [ + "06:49", + "2952" + ], + [ + "07:00", + "3613" + ], + [ + "07:10", + "3942" + ], + [ + "07:19", + "4156" + ], + [ + "07:30", + "4686" + ], + [ + "07:40", + "4766" + ], + [ + "07:49", + "4782" + ], + [ + "08:00", + "4838" + ], + [ + "08:10", + "4887" + ], + [ + "08:19", + "4919" + ], + [ + "08:30", + "4928" + ], + [ + "08:40", + "4946" + ], + [ + "08:49", + "4947" + ], + [ + "09:00", + "4961" + ], + [ + "09:10", + "5041" + ], + [ + "09:19", + "5117" + ], + [ + "09:30", + "5365" + ], + [ + "09:40", + "5530" + ], + [ + "09:49", + "5622" + ], + [ + "10:00", + "5647" + ], + [ + "10:10", + "5672" + ], + [ + "10:19", + "5696" + ], + [ + "10:30", + "5837" + ], + [ + "10:40", + "5975" + ], + [ + "10:49", + "6057" + ], + [ + "11:00", + "6064" + ], + [ + "11:10", + "6065" + ], + [ + "11:19", + "6069" + ], + [ + "11:30", + "6070" + ], + [ + "11:40", + "6072" + ], + [ + "11:49", + "6072" + ], + [ + "12:00", + "6076" + ], + [ + "12:10", + "6076" + ], + [ + "12:19", + "6076" + ], + [ + "12:30", + "6078" + ], + [ + "12:40", + "6081" + ], + [ + "12:49", + "6084" + ], + [ + "13:00", + "6085" + ], + [ + "13:10", + "6089" + ], + [ + "13:19", + "6089" + ], + [ + "13:30", + "6089" + ], + [ + "13:40", + "6091" + ], + [ + "13:49", + "6098" + ], + [ + "14:00", + "6108" + ], + [ + "14:10", + "6113" + ], + [ + "14:19", + "6116" + ], + [ + "14:30", + "6153" + ], + [ + "14:40", + "6219" + ], + [ + "14:49", + "6261" + ], + [ + "15:00", + "6437" + ], + [ + "15:10", + "6580" + ], + [ + "15:19", + "6692" + ], + [ + "15:30", + "6737" + ], + [ + "15:40", + "6800" + ], + [ + "15:49", + "6831" + ], + [ + "16:00", + "7047" + ], + [ + "16:10", + "7227" + ], + [ + "16:19", + "7368" + ], + [ + "16:30", + "7371" + ], + [ + "16:40", + "7377" + ], + [ + "16:49", + "7385" + ], + [ + "17:00", + "7389" + ], + [ + "17:10", + "7392" + ], + [ + "17:19", + "7424" + ], + [ + "17:30", + "7512" + ], + [ + "17:40", + "7576" + ], + [ + "17:49", + "7655" + ], + [ + "18:00", + "7712" + ], + [ + "18:10", + "7805" + ], + [ + "18:19", + "7827" + ], + [ + "18:30", + "7861" + ], + [ + "18:40", + "7964" + ], + [ + "18:49", + "8099" + ], + [ + "19:00", + "8208" + ], + [ + "19:10", + "8359" + ], + [ + "19:19", + "8428" + ], + [ + "19:30", + "8430" + ], + [ + "19:40", + "8431" + ], + [ + "19:49", + "8496" + ], + [ + "20:00", + "8605" + ], + [ + "20:10", + "8729" + ], + [ + "20:19", + "8864" + ], + [ + "20:30", + "8913" + ], + [ + "20:40", + "8994" + ], + [ + "20:49", + "9155" + ], + [ + "21:00", + "9269" + ], + [ + "21:10", + "9493" + ], + [ + "21:19", + "9650" + ], + [ + "21:30", + "9652" + ], + [ + "21:40", + "9654" + ], + [ + "21:49", + "9654" + ], + [ + "22:00", + "9655" + ], + [ + "22:10", + "9807" + ], + [ + "22:19", + "9942" + ], + [ + "22:30", + "9942" + ], + [ + "22:40", + "9943" + ], + [ + "22:49", + "9944" + ], + [ + "23:00", + "9954" + ], + [ + "23:10", + "9989" + ], + [ + "23:19", + "10007" + ], + [ + "23:30", + "10010" + ], + [ + "23:40", + "10010" + ], + [ + "23:49", + "10011" + ], + [ + "00:00", + "10011" + ], + [ + "00:10", + "10011" + ], + [ + "00:19", + "10011" + ], + [ + "00:30", + "10011" + ], + [ + "00:40", + "10011" + ], + [ + "00:49", + "10011" + ], + [ + "01:00", + "10011" + ], + [ + "01:10", + "10012" + ], + [ + "01:19", + "10012" + ], + [ + "01:30", + "10014" + ], + [ + "01:40", + "10014" + ], + [ + "01:49", + "10015" + ], + [ + "02:00", + "10015" + ], + [ + "02:10", + "10016" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 230, + 256, + 274, + 311, + 335, + 371, + 451, + 541, + 621, + 774, + 864, + 953, + 1167, + 1303, + 1469, + 2212, + 2682, + 2952, + 3613, + 3942, + 4156, + 4686, + 4766, + 4782, + 4838, + 4887, + 4919, + 4928, + 4946, + 4947, + 4961, + 5041, + 5117, + 5365, + 5530, + 5622, + 5647, + 5672, + 5696, + 5837, + 5975, + 6057, + 6064, + 6065, + 6069, + 6070, + 6072, + 6072, + 6076, + 6076, + 6076, + 6078, + 6081, + 6084, + 6085, + 6089, + 6089, + 6089, + 6091, + 6098, + 6108, + 6113, + 6116, + 6153, + 6219, + 6261, + 6437, + 6580, + 6692, + 6737, + 6800, + 6831, + 7047, + 7227, + 7368, + 7371, + 7377, + 7385, + 7389, + 7392, + 7424, + 7512, + 7576, + 7655, + 7712, + 7805, + 7827, + 7861, + 7964, + 8099, + 8208, + 8359, + 8428, + 8430, + 8431, + 8496, + 8605, + 8729, + 8864, + 8913, + 8994, + 9155, + 9269, + 9493, + 9650, + 9652, + 9654, + 9654, + 9655, + 9807, + 9942, + 9942, + 9943, + 9944, + 9954, + 9989, + 10007, + 10010, + 10010, + 10011, + 10011, + 10011, + 10011, + 10011, + 10011, + 10011, + 10011, + 10012, + 10012, + 10014, + 10014, + 10015, + 10015, + 10016 + ] + }, + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "229" + ], + [ + "04:10", + "255" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "370" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "622" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "862" + ], + [ + "05:49", + "951" + ], + [ + "06:00", + "1166" + ], + [ + "06:10", + "1304" + ], + [ + "06:19", + "1467" + ], + [ + "06:30", + "2208" + ], + [ + "06:40", + "2689" + ], + [ + "06:49", + "2932" + ], + [ + "07:00", + "3612" + ], + [ + "07:10", + "3937" + ], + [ + "07:19", + "4144" + ], + [ + "07:30", + "4698" + ], + [ + "07:40", + "4781" + ], + [ + "07:49", + "4800" + ], + [ + "08:00", + "4854" + ], + [ + "08:10", + "4903" + ], + [ + "08:19", + "4940" + ], + [ + "08:30", + "4949" + ], + [ + "08:40", + "4959" + ], + [ + "08:49", + "4962" + ], + [ + "09:00", + "4978" + ], + [ + "09:10", + "5058" + ], + [ + "09:19", + "5125" + ], + [ + "09:30", + "5379" + ], + [ + "09:40", + "5547" + ], + [ + "09:49", + "5639" + ], + [ + "10:00", + "5659" + ], + [ + "10:10", + "5683" + ], + [ + "10:19", + "5713" + ], + [ + "10:30", + "5846" + ], + [ + "10:40", + "5985" + ], + [ + "10:49", + "6071" + ], + [ + "11:00", + "6076" + ], + [ + "11:10", + "6077" + ], + [ + "11:19", + "6081" + ], + [ + "11:30", + "6082" + ], + [ + "11:40", + "6084" + ], + [ + "11:49", + "6084" + ], + [ + "12:00", + "6088" + ], + [ + "12:10", + "6088" + ], + [ + "12:19", + "6088" + ], + [ + "12:30", + "6090" + ], + [ + "12:40", + "6093" + ], + [ + "12:49", + "6096" + ], + [ + "13:00", + "6098" + ], + [ + "13:10", + "6102" + ], + [ + "13:19", + "6102" + ], + [ + "13:30", + "6102" + ], + [ + "13:40", + "6104" + ], + [ + "13:49", + "6110" + ], + [ + "14:00", + "6120" + ], + [ + "14:10", + "6125" + ], + [ + "14:19", + "6128" + ], + [ + "14:30", + "6164" + ], + [ + "14:40", + "6234" + ], + [ + "14:49", + "6281" + ], + [ + "15:00", + "6470" + ], + [ + "15:10", + "6599" + ], + [ + "15:19", + "6712" + ], + [ + "15:30", + "6755" + ], + [ + "15:40", + "6815" + ], + [ + "15:49", + "6844" + ], + [ + "16:00", + "7058" + ], + [ + "16:10", + "7228" + ], + [ + "16:19", + "7375" + ], + [ + "16:30", + "7378" + ], + [ + "16:40", + "7382" + ], + [ + "16:49", + "7390" + ], + [ + "17:00", + "7394" + ], + [ + "17:10", + "7396" + ], + [ + "17:19", + "7419" + ], + [ + "17:30", + "7512" + ], + [ + "17:40", + "7566" + ], + [ + "17:49", + "7651" + ], + [ + "18:00", + "7683" + ], + [ + "18:10", + "7775" + ], + [ + "18:19", + "7792" + ], + [ + "18:30", + "7821" + ], + [ + "18:40", + "7923" + ], + [ + "18:49", + "8057" + ], + [ + "19:00", + "8167" + ], + [ + "19:10", + "8308" + ], + [ + "19:19", + "8382" + ], + [ + "19:30", + "8384" + ], + [ + "19:40", + "8384" + ], + [ + "19:49", + "8447" + ], + [ + "20:00", + "8555" + ], + [ + "20:10", + "8684" + ], + [ + "20:19", + "8814" + ], + [ + "20:30", + "8859" + ], + [ + "20:40", + "8951" + ], + [ + "20:49", + "9114" + ], + [ + "21:00", + "9234" + ], + [ + "21:10", + "9464" + ], + [ + "21:19", + "9615" + ], + [ + "21:30", + "9617" + ], + [ + "21:40", + "9619" + ], + [ + "21:49", + "9619" + ], + [ + "22:00", + "9633" + ], + [ + "22:10", + "9785" + ], + [ + "22:19", + "9915" + ], + [ + "22:30", + "9916" + ], + [ + "22:40", + "9916" + ], + [ + "22:49", + "9917" + ], + [ + "23:00", + "9927" + ], + [ + "23:10", + "9964" + ], + [ + "23:19", + "9982" + ], + [ + "23:30", + "9985" + ], + [ + "23:40", + "9985" + ], + [ + "23:49", + "9986" + ], + [ + "00:00", + "9986" + ], + [ + "00:10", + "9986" + ], + [ + "00:19", + "9986" + ], + [ + "00:30", + "9986" + ], + [ + "00:40", + "9986" + ], + [ + "00:49", + "9986" + ], + [ + "01:00", + "9986" + ], + [ + "01:10", + "9987" + ], + [ + "01:19", + "9987" + ], + [ + "01:30", + "9989" + ], + [ + "01:40", + "9989" + ], + [ + "01:49", + "9990" + ], + [ + "02:00", + "9990" + ], + [ + "02:10", + "9991" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 229, + 255, + 274, + 311, + 335, + 370, + 451, + 541, + 622, + 774, + 862, + 951, + 1166, + 1304, + 1467, + 2208, + 2689, + 2932, + 3612, + 3937, + 4144, + 4698, + 4781, + 4800, + 4854, + 4903, + 4940, + 4949, + 4959, + 4962, + 4978, + 5058, + 5125, + 5379, + 5547, + 5639, + 5659, + 5683, + 5713, + 5846, + 5985, + 6071, + 6076, + 6077, + 6081, + 6082, + 6084, + 6084, + 6088, + 6088, + 6088, + 6090, + 6093, + 6096, + 6098, + 6102, + 6102, + 6102, + 6104, + 6110, + 6120, + 6125, + 6128, + 6164, + 6234, + 6281, + 6470, + 6599, + 6712, + 6755, + 6815, + 6844, + 7058, + 7228, + 7375, + 7378, + 7382, + 7390, + 7394, + 7396, + 7419, + 7512, + 7566, + 7651, + 7683, + 7775, + 7792, + 7821, + 7923, + 8057, + 8167, + 8308, + 8382, + 8384, + 8384, + 8447, + 8555, + 8684, + 8814, + 8859, + 8951, + 9114, + 9234, + 9464, + 9615, + 9617, + 9619, + 9619, + 9633, + 9785, + 9915, + 9916, + 9916, + 9917, + 9927, + 9964, + 9982, + 9985, + 9985, + 9986, + 9986, + 9986, + 9986, + 9986, + 9986, + 9986, + 9986, + 9987, + 9987, + 9989, + 9989, + 9990, + 9990, + 9991 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Fleet Size (cumulative vehicles) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Cumulative unique vehicles" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "229" + ], + [ + "04:10", + "255" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "370" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "622" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "862" + ], + [ + "05:49", + "951" + ], + [ + "06:00", + "1166" + ], + [ + "06:10", + "1304" + ], + [ + "06:19", + "1466" + ], + [ + "06:30", + "2208" + ], + [ + "06:40", + "2687" + ], + [ + "06:49", + "2936" + ], + [ + "07:00", + "3610" + ], + [ + "07:10", + "3938" + ], + [ + "07:19", + "4140" + ], + [ + "07:30", + "4692" + ], + [ + "07:40", + "4779" + ], + [ + "07:49", + "4789" + ], + [ + "08:00", + "4847" + ], + [ + "08:10", + "4896" + ], + [ + "08:19", + "4937" + ], + [ + "08:30", + "4947" + ], + [ + "08:40", + "4963" + ], + [ + "08:49", + "4966" + ], + [ + "09:00", + "4979" + ], + [ + "09:10", + "5064" + ], + [ + "09:19", + "5135" + ], + [ + "09:30", + "5385" + ], + [ + "09:40", + "5549" + ], + [ + "09:49", + "5649" + ], + [ + "10:00", + "5669" + ], + [ + "10:10", + "5693" + ], + [ + "10:19", + "5724" + ], + [ + "10:30", + "5858" + ], + [ + "10:40", + "5996" + ], + [ + "10:49", + "6080" + ], + [ + "11:00", + "6085" + ], + [ + "11:10", + "6086" + ], + [ + "11:19", + "6090" + ], + [ + "11:30", + "6091" + ], + [ + "11:40", + "6093" + ], + [ + "11:49", + "6093" + ], + [ + "12:00", + "6097" + ], + [ + "12:10", + "6097" + ], + [ + "12:19", + "6097" + ], + [ + "12:30", + "6099" + ], + [ + "12:40", + "6102" + ], + [ + "12:49", + "6105" + ], + [ + "13:00", + "6107" + ], + [ + "13:10", + "6111" + ], + [ + "13:19", + "6111" + ], + [ + "13:30", + "6111" + ], + [ + "13:40", + "6113" + ], + [ + "13:49", + "6118" + ], + [ + "14:00", + "6127" + ], + [ + "14:10", + "6132" + ], + [ + "14:19", + "6135" + ], + [ + "14:30", + "6172" + ], + [ + "14:40", + "6239" + ], + [ + "14:49", + "6284" + ], + [ + "15:00", + "6457" + ], + [ + "15:10", + "6600" + ], + [ + "15:19", + "6714" + ], + [ + "15:30", + "6765" + ], + [ + "15:40", + "6827" + ], + [ + "15:49", + "6853" + ], + [ + "16:00", + "7064" + ], + [ + "16:10", + "7234" + ], + [ + "16:19", + "7384" + ], + [ + "16:30", + "7387" + ], + [ + "16:40", + "7393" + ], + [ + "16:49", + "7400" + ], + [ + "17:00", + "7404" + ], + [ + "17:10", + "7406" + ], + [ + "17:19", + "7436" + ], + [ + "17:30", + "7525" + ], + [ + "17:40", + "7573" + ], + [ + "17:49", + "7653" + ], + [ + "18:00", + "7701" + ], + [ + "18:10", + "7786" + ], + [ + "18:19", + "7806" + ], + [ + "18:30", + "7847" + ], + [ + "18:40", + "7949" + ], + [ + "18:49", + "8089" + ], + [ + "19:00", + "8204" + ], + [ + "19:10", + "8349" + ], + [ + "19:19", + "8416" + ], + [ + "19:30", + "8429" + ], + [ + "19:40", + "8430" + ], + [ + "19:49", + "8492" + ], + [ + "20:00", + "8602" + ], + [ + "20:10", + "8726" + ], + [ + "20:19", + "8849" + ], + [ + "20:30", + "8895" + ], + [ + "20:40", + "8971" + ], + [ + "20:49", + "9131" + ], + [ + "21:00", + "9246" + ], + [ + "21:10", + "9472" + ], + [ + "21:19", + "9616" + ], + [ + "21:30", + "9619" + ], + [ + "21:40", + "9621" + ], + [ + "21:49", + "9621" + ], + [ + "22:00", + "9644" + ], + [ + "22:10", + "9797" + ], + [ + "22:19", + "9925" + ], + [ + "22:30", + "9926" + ], + [ + "22:40", + "9926" + ], + [ + "22:49", + "9933" + ], + [ + "23:00", + "9943" + ], + [ + "23:10", + "9978" + ], + [ + "23:19", + "9993" + ], + [ + "23:30", + "9996" + ], + [ + "23:40", + "9996" + ], + [ + "23:49", + "9997" + ], + [ + "00:00", + "9997" + ], + [ + "00:10", + "9997" + ], + [ + "00:19", + "9997" + ], + [ + "00:30", + "9997" + ], + [ + "00:40", + "9997" + ], + [ + "00:49", + "9997" + ], + [ + "01:00", + "9997" + ], + [ + "01:10", + "9997" + ], + [ + "01:19", + "9997" + ], + [ + "01:30", + "9999" + ], + [ + "01:40", + "9999" + ], + [ + "01:49", + "10000" + ], + [ + "02:00", + "10000" + ], + [ + "02:10", + "10001" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 229, + 255, + 274, + 311, + 335, + 370, + 451, + 541, + 622, + 774, + 862, + 951, + 1166, + 1304, + 1466, + 2208, + 2687, + 2936, + 3610, + 3938, + 4140, + 4692, + 4779, + 4789, + 4847, + 4896, + 4937, + 4947, + 4963, + 4966, + 4979, + 5064, + 5135, + 5385, + 5549, + 5649, + 5669, + 5693, + 5724, + 5858, + 5996, + 6080, + 6085, + 6086, + 6090, + 6091, + 6093, + 6093, + 6097, + 6097, + 6097, + 6099, + 6102, + 6105, + 6107, + 6111, + 6111, + 6111, + 6113, + 6118, + 6127, + 6132, + 6135, + 6172, + 6239, + 6284, + 6457, + 6600, + 6714, + 6765, + 6827, + 6853, + 7064, + 7234, + 7384, + 7387, + 7393, + 7400, + 7404, + 7406, + 7436, + 7525, + 7573, + 7653, + 7701, + 7786, + 7806, + 7847, + 7949, + 8089, + 8204, + 8349, + 8416, + 8429, + 8430, + 8492, + 8602, + 8726, + 8849, + 8895, + 8971, + 9131, + 9246, + 9472, + 9616, + 9619, + 9621, + 9621, + 9644, + 9797, + 9925, + 9926, + 9926, + 9933, + 9943, + 9978, + 9993, + 9996, + 9996, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9999, + 9999, + 10000, + 10000, + 10001 + ] + }, + { + "customdata": [ + [ + "03:00", + "44" + ], + [ + "03:10", + "87" + ], + [ + "03:19", + "119" + ], + [ + "03:30", + "138" + ], + [ + "03:40", + "171" + ], + [ + "03:49", + "198" + ], + [ + "04:00", + "231" + ], + [ + "04:10", + "252" + ], + [ + "04:19", + "266" + ], + [ + "04:30", + "314" + ], + [ + "04:40", + "338" + ], + [ + "04:49", + "366" + ], + [ + "05:00", + "455" + ], + [ + "05:10", + "520" + ], + [ + "05:19", + "612" + ], + [ + "05:30", + "733" + ], + [ + "05:40", + "864" + ], + [ + "05:49", + "927" + ], + [ + "06:00", + "1165" + ], + [ + "06:10", + "1303" + ], + [ + "06:19", + "1425" + ], + [ + "06:30", + "2158" + ], + [ + "06:40", + "2713" + ], + [ + "06:49", + "2915" + ], + [ + "07:00", + "3618" + ], + [ + "07:10", + "3940" + ], + [ + "07:19", + "4072" + ], + [ + "07:30", + "4501" + ], + [ + "07:40", + "4636" + ], + [ + "07:49", + "4701" + ], + [ + "08:00", + "4753" + ], + [ + "08:10", + "4784" + ], + [ + "08:19", + "4835" + ], + [ + "08:30", + "4841" + ], + [ + "08:40", + "4844" + ], + [ + "08:49", + "4850" + ], + [ + "09:00", + "4856" + ], + [ + "09:10", + "4884" + ], + [ + "09:19", + "4965" + ], + [ + "09:30", + "5170" + ], + [ + "09:40", + "5300" + ], + [ + "09:49", + "5399" + ], + [ + "10:00", + "5412" + ], + [ + "10:10", + "5425" + ], + [ + "10:19", + "5448" + ], + [ + "10:30", + "5592" + ], + [ + "10:40", + "5696" + ], + [ + "10:49", + "5774" + ], + [ + "11:00", + "5777" + ], + [ + "11:10", + "5782" + ], + [ + "11:19", + "5785" + ], + [ + "11:30", + "5786" + ], + [ + "11:40", + "5786" + ], + [ + "11:49", + "5788" + ], + [ + "12:00", + "5789" + ], + [ + "12:10", + "5790" + ], + [ + "12:19", + "5791" + ], + [ + "12:30", + "5792" + ], + [ + "12:40", + "5794" + ], + [ + "12:49", + "5797" + ], + [ + "13:00", + "5799" + ], + [ + "13:10", + "5799" + ], + [ + "13:19", + "5800" + ], + [ + "13:30", + "5801" + ], + [ + "13:40", + "5801" + ], + [ + "13:49", + "5801" + ], + [ + "14:00", + "5810" + ], + [ + "14:10", + "5820" + ], + [ + "14:19", + "5847" + ], + [ + "14:30", + "5917" + ], + [ + "14:40", + "6009" + ], + [ + "14:49", + "6055" + ], + [ + "15:00", + "6194" + ], + [ + "15:10", + "6392" + ], + [ + "15:19", + "6423" + ], + [ + "15:30", + "6436" + ], + [ + "15:40", + "6503" + ], + [ + "15:49", + "6576" + ], + [ + "16:00", + "6758" + ], + [ + "16:10", + "6886" + ], + [ + "16:19", + "6982" + ], + [ + "16:30", + "6983" + ], + [ + "16:40", + "6985" + ], + [ + "16:49", + "6988" + ], + [ + "17:00", + "6990" + ], + [ + "17:10", + "6998" + ], + [ + "17:19", + "7039" + ], + [ + "17:30", + "7100" + ], + [ + "17:40", + "7193" + ], + [ + "17:49", + "7270" + ], + [ + "18:00", + "7283" + ], + [ + "18:10", + "7344" + ], + [ + "18:19", + "7405" + ], + [ + "18:30", + "7475" + ], + [ + "18:40", + "7542" + ], + [ + "18:49", + "7617" + ], + [ + "19:00", + "7742" + ], + [ + "19:10", + "7797" + ], + [ + "19:19", + "7891" + ], + [ + "19:30", + "7892" + ], + [ + "19:40", + "7892" + ], + [ + "19:49", + "7944" + ], + [ + "20:00", + "7992" + ], + [ + "20:10", + "8117" + ], + [ + "20:19", + "8296" + ], + [ + "20:30", + "8400" + ], + [ + "20:40", + "8464" + ], + [ + "20:49", + "8588" + ], + [ + "21:00", + "8702" + ], + [ + "21:10", + "8826" + ], + [ + "21:19", + "8996" + ], + [ + "21:30", + "8997" + ], + [ + "21:40", + "9001" + ], + [ + "21:49", + "9001" + ], + [ + "22:00", + "9039" + ], + [ + "22:10", + "9167" + ], + [ + "22:19", + "9315" + ], + [ + "22:30", + "9316" + ], + [ + "22:40", + "9316" + ], + [ + "22:49", + "9378" + ], + [ + "23:00", + "9382" + ], + [ + "23:10", + "9393" + ], + [ + "23:19", + "9428" + ], + [ + "23:30", + "9429" + ], + [ + "23:40", + "9430" + ], + [ + "23:49", + "9433" + ], + [ + "00:00", + "9434" + ], + [ + "00:10", + "9434" + ], + [ + "00:19", + "9435" + ], + [ + "00:30", + "9435" + ], + [ + "00:40", + "9435" + ], + [ + "00:49", + "9435" + ], + [ + "01:00", + "9435" + ], + [ + "01:10", + "9435" + ], + [ + "01:19", + "9435" + ], + [ + "01:30", + "9435" + ], + [ + "01:40", + "9436" + ], + [ + "01:49", + "9436" + ], + [ + "02:00", + "9436" + ], + [ + "02:10", + "9436" + ], + [ + "02:19", + "9437" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332 + ], + "y": [ + 44, + 87, + 119, + 138, + 171, + 198, + 231, + 252, + 266, + 314, + 338, + 366, + 455, + 520, + 612, + 733, + 864, + 927, + 1165, + 1303, + 1425, + 2158, + 2713, + 2915, + 3618, + 3940, + 4072, + 4501, + 4636, + 4701, + 4753, + 4784, + 4835, + 4841, + 4844, + 4850, + 4856, + 4884, + 4965, + 5170, + 5300, + 5399, + 5412, + 5425, + 5448, + 5592, + 5696, + 5774, + 5777, + 5782, + 5785, + 5786, + 5786, + 5788, + 5789, + 5790, + 5791, + 5792, + 5794, + 5797, + 5799, + 5799, + 5800, + 5801, + 5801, + 5801, + 5810, + 5820, + 5847, + 5917, + 6009, + 6055, + 6194, + 6392, + 6423, + 6436, + 6503, + 6576, + 6758, + 6886, + 6982, + 6983, + 6985, + 6988, + 6990, + 6998, + 7039, + 7100, + 7193, + 7270, + 7283, + 7344, + 7405, + 7475, + 7542, + 7617, + 7742, + 7797, + 7891, + 7892, + 7892, + 7944, + 7992, + 8117, + 8296, + 8400, + 8464, + 8588, + 8702, + 8826, + 8996, + 8997, + 9001, + 9001, + 9039, + 9167, + 9315, + 9316, + 9316, + 9378, + 9382, + 9393, + 9428, + 9429, + 9430, + 9433, + 9434, + 9434, + 9435, + 9435, + 9435, + 9435, + 9435, + 9435, + 9435, + 9435, + 9436, + 9436, + 9436, + 9436, + 9437 + ] + }, + { + "customdata": [ + [ + "03:00", + "40" + ], + [ + "03:10", + "86" + ], + [ + "03:19", + "119" + ], + [ + "03:30", + "144" + ], + [ + "03:40", + "168" + ], + [ + "03:49", + "193" + ], + [ + "04:00", + "227" + ], + [ + "04:10", + "257" + ], + [ + "04:19", + "272" + ], + [ + "04:30", + "316" + ], + [ + "04:40", + "343" + ], + [ + "04:49", + "368" + ], + [ + "05:00", + "459" + ], + [ + "05:10", + "539" + ], + [ + "05:19", + "607" + ], + [ + "05:30", + "742" + ], + [ + "05:40", + "848" + ], + [ + "05:49", + "950" + ], + [ + "06:00", + "1128" + ], + [ + "06:10", + "1336" + ], + [ + "06:19", + "1429" + ], + [ + "06:30", + "2178" + ], + [ + "06:40", + "2673" + ], + [ + "06:49", + "2881" + ], + [ + "07:00", + "3515" + ], + [ + "07:10", + "3823" + ], + [ + "07:19", + "4091" + ], + [ + "07:30", + "4513" + ], + [ + "07:40", + "4560" + ], + [ + "07:49", + "4664" + ], + [ + "08:00", + "4697" + ], + [ + "08:10", + "4729" + ], + [ + "08:19", + "4761" + ], + [ + "08:30", + "4763" + ], + [ + "08:40", + "4765" + ], + [ + "08:49", + "4775" + ], + [ + "09:00", + "4786" + ], + [ + "09:10", + "4798" + ], + [ + "09:19", + "4876" + ], + [ + "09:30", + "5036" + ], + [ + "09:40", + "5186" + ], + [ + "09:49", + "5251" + ], + [ + "10:00", + "5276" + ], + [ + "10:10", + "5284" + ], + [ + "10:19", + "5286" + ], + [ + "10:30", + "5416" + ], + [ + "10:40", + "5512" + ], + [ + "10:49", + "5632" + ], + [ + "11:00", + "5634" + ], + [ + "11:10", + "5635" + ], + [ + "11:19", + "5638" + ], + [ + "11:30", + "5638" + ], + [ + "11:40", + "5639" + ], + [ + "11:49", + "5640" + ], + [ + "12:00", + "5642" + ], + [ + "12:10", + "5642" + ], + [ + "12:19", + "5642" + ], + [ + "12:30", + "5643" + ], + [ + "12:40", + "5644" + ], + [ + "12:49", + "5647" + ], + [ + "13:00", + "5648" + ], + [ + "13:10", + "5648" + ], + [ + "13:19", + "5650" + ], + [ + "13:30", + "5653" + ], + [ + "13:40", + "5654" + ], + [ + "13:49", + "5655" + ], + [ + "14:00", + "5694" + ], + [ + "14:10", + "5721" + ], + [ + "14:19", + "5750" + ], + [ + "14:30", + "5807" + ], + [ + "14:40", + "5888" + ], + [ + "14:49", + "5973" + ], + [ + "15:00", + "6146" + ], + [ + "15:10", + "6286" + ], + [ + "15:19", + "6317" + ], + [ + "15:30", + "6346" + ], + [ + "15:40", + "6385" + ], + [ + "15:49", + "6437" + ], + [ + "16:00", + "6595" + ], + [ + "16:10", + "6753" + ], + [ + "16:19", + "6906" + ], + [ + "16:30", + "6907" + ], + [ + "16:40", + "6913" + ], + [ + "16:49", + "6916" + ], + [ + "17:00", + "6917" + ], + [ + "17:10", + "6926" + ], + [ + "17:19", + "6943" + ], + [ + "17:30", + "7030" + ], + [ + "17:40", + "7037" + ], + [ + "17:49", + "7062" + ], + [ + "18:00", + "7162" + ], + [ + "18:10", + "7187" + ], + [ + "18:19", + "7228" + ], + [ + "18:30", + "7259" + ], + [ + "18:40", + "7354" + ], + [ + "18:49", + "7444" + ], + [ + "19:00", + "7548" + ], + [ + "19:10", + "7639" + ], + [ + "19:19", + "7723" + ], + [ + "19:30", + "7731" + ], + [ + "19:40", + "7766" + ], + [ + "19:49", + "7790" + ], + [ + "20:00", + "7837" + ], + [ + "20:10", + "7968" + ], + [ + "20:19", + "8131" + ], + [ + "20:30", + "8226" + ], + [ + "20:40", + "8292" + ], + [ + "20:49", + "8416" + ], + [ + "21:00", + "8536" + ], + [ + "21:10", + "8686" + ], + [ + "21:19", + "8860" + ], + [ + "21:30", + "8862" + ], + [ + "21:40", + "8865" + ], + [ + "21:49", + "8866" + ], + [ + "22:00", + "8928" + ], + [ + "22:10", + "9064" + ], + [ + "22:19", + "9161" + ], + [ + "22:30", + "9162" + ], + [ + "22:40", + "9162" + ], + [ + "22:49", + "9260" + ], + [ + "23:00", + "9273" + ], + [ + "23:10", + "9275" + ], + [ + "23:19", + "9286" + ], + [ + "23:30", + "9288" + ], + [ + "23:40", + "9290" + ], + [ + "23:49", + "9290" + ], + [ + "00:00", + "9290" + ], + [ + "00:10", + "9291" + ], + [ + "00:19", + "9291" + ], + [ + "00:30", + "9291" + ], + [ + "00:40", + "9291" + ], + [ + "00:49", + "9291" + ], + [ + "01:00", + "9291" + ], + [ + "01:10", + "9291" + ], + [ + "01:19", + "9291" + ], + [ + "01:30", + "9291" + ], + [ + "01:40", + "9292" + ], + [ + "01:49", + "9294" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332 + ], + "y": [ + 40, + 86, + 119, + 144, + 168, + 193, + 227, + 257, + 272, + 316, + 343, + 368, + 459, + 539, + 607, + 742, + 848, + 950, + 1128, + 1336, + 1429, + 2178, + 2673, + 2881, + 3515, + 3823, + 4091, + 4513, + 4560, + 4664, + 4697, + 4729, + 4761, + 4763, + 4765, + 4775, + 4786, + 4798, + 4876, + 5036, + 5186, + 5251, + 5276, + 5284, + 5286, + 5416, + 5512, + 5632, + 5634, + 5635, + 5638, + 5638, + 5639, + 5640, + 5642, + 5642, + 5642, + 5643, + 5644, + 5647, + 5648, + 5648, + 5650, + 5653, + 5654, + 5655, + 5694, + 5721, + 5750, + 5807, + 5888, + 5973, + 6146, + 6286, + 6317, + 6346, + 6385, + 6437, + 6595, + 6753, + 6906, + 6907, + 6913, + 6916, + 6917, + 6926, + 6943, + 7030, + 7037, + 7062, + 7162, + 7187, + 7228, + 7259, + 7354, + 7444, + 7548, + 7639, + 7723, + 7731, + 7766, + 7790, + 7837, + 7968, + 8131, + 8226, + 8292, + 8416, + 8536, + 8686, + 8860, + 8862, + 8865, + 8866, + 8928, + 9064, + 9161, + 9162, + 9162, + 9260, + 9273, + 9275, + 9286, + 9288, + 9290, + 9290, + 9290, + 9291, + 9291, + 9291, + 9291, + 9291, + 9291, + 9291, + 9291, + 9291, + 9292, + 9294 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Fleet Size (cumulative vehicles) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Cumulative unique vehicles" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "50" + ], + [ + "03:10", + "91" + ], + [ + "03:19", + "115" + ], + [ + "03:30", + "143" + ], + [ + "03:40", + "174" + ], + [ + "03:49", + "200" + ], + [ + "04:00", + "229" + ], + [ + "04:10", + "255" + ], + [ + "04:19", + "274" + ], + [ + "04:30", + "311" + ], + [ + "04:40", + "335" + ], + [ + "04:49", + "370" + ], + [ + "05:00", + "451" + ], + [ + "05:10", + "541" + ], + [ + "05:19", + "622" + ], + [ + "05:30", + "774" + ], + [ + "05:40", + "862" + ], + [ + "05:49", + "951" + ], + [ + "06:00", + "1166" + ], + [ + "06:10", + "1304" + ], + [ + "06:19", + "1466" + ], + [ + "06:30", + "2208" + ], + [ + "06:40", + "2687" + ], + [ + "06:49", + "2936" + ], + [ + "07:00", + "3610" + ], + [ + "07:10", + "3938" + ], + [ + "07:19", + "4140" + ], + [ + "07:30", + "4692" + ], + [ + "07:40", + "4779" + ], + [ + "07:49", + "4789" + ], + [ + "08:00", + "4847" + ], + [ + "08:10", + "4896" + ], + [ + "08:19", + "4937" + ], + [ + "08:30", + "4947" + ], + [ + "08:40", + "4963" + ], + [ + "08:49", + "4966" + ], + [ + "09:00", + "4979" + ], + [ + "09:10", + "5064" + ], + [ + "09:19", + "5135" + ], + [ + "09:30", + "5385" + ], + [ + "09:40", + "5549" + ], + [ + "09:49", + "5649" + ], + [ + "10:00", + "5669" + ], + [ + "10:10", + "5693" + ], + [ + "10:19", + "5724" + ], + [ + "10:30", + "5858" + ], + [ + "10:40", + "5996" + ], + [ + "10:49", + "6080" + ], + [ + "11:00", + "6085" + ], + [ + "11:10", + "6086" + ], + [ + "11:19", + "6090" + ], + [ + "11:30", + "6091" + ], + [ + "11:40", + "6093" + ], + [ + "11:49", + "6093" + ], + [ + "12:00", + "6097" + ], + [ + "12:10", + "6097" + ], + [ + "12:19", + "6097" + ], + [ + "12:30", + "6099" + ], + [ + "12:40", + "6102" + ], + [ + "12:49", + "6105" + ], + [ + "13:00", + "6107" + ], + [ + "13:10", + "6111" + ], + [ + "13:19", + "6111" + ], + [ + "13:30", + "6111" + ], + [ + "13:40", + "6113" + ], + [ + "13:49", + "6118" + ], + [ + "14:00", + "6127" + ], + [ + "14:10", + "6132" + ], + [ + "14:19", + "6135" + ], + [ + "14:30", + "6172" + ], + [ + "14:40", + "6239" + ], + [ + "14:49", + "6284" + ], + [ + "15:00", + "6457" + ], + [ + "15:10", + "6600" + ], + [ + "15:19", + "6714" + ], + [ + "15:30", + "6765" + ], + [ + "15:40", + "6827" + ], + [ + "15:49", + "6853" + ], + [ + "16:00", + "7064" + ], + [ + "16:10", + "7234" + ], + [ + "16:19", + "7384" + ], + [ + "16:30", + "7387" + ], + [ + "16:40", + "7393" + ], + [ + "16:49", + "7400" + ], + [ + "17:00", + "7404" + ], + [ + "17:10", + "7406" + ], + [ + "17:19", + "7436" + ], + [ + "17:30", + "7525" + ], + [ + "17:40", + "7573" + ], + [ + "17:49", + "7653" + ], + [ + "18:00", + "7701" + ], + [ + "18:10", + "7786" + ], + [ + "18:19", + "7806" + ], + [ + "18:30", + "7847" + ], + [ + "18:40", + "7949" + ], + [ + "18:49", + "8089" + ], + [ + "19:00", + "8204" + ], + [ + "19:10", + "8349" + ], + [ + "19:19", + "8416" + ], + [ + "19:30", + "8429" + ], + [ + "19:40", + "8430" + ], + [ + "19:49", + "8492" + ], + [ + "20:00", + "8602" + ], + [ + "20:10", + "8726" + ], + [ + "20:19", + "8849" + ], + [ + "20:30", + "8895" + ], + [ + "20:40", + "8971" + ], + [ + "20:49", + "9131" + ], + [ + "21:00", + "9246" + ], + [ + "21:10", + "9472" + ], + [ + "21:19", + "9616" + ], + [ + "21:30", + "9619" + ], + [ + "21:40", + "9621" + ], + [ + "21:49", + "9621" + ], + [ + "22:00", + "9644" + ], + [ + "22:10", + "9797" + ], + [ + "22:19", + "9925" + ], + [ + "22:30", + "9926" + ], + [ + "22:40", + "9926" + ], + [ + "22:49", + "9933" + ], + [ + "23:00", + "9943" + ], + [ + "23:10", + "9978" + ], + [ + "23:19", + "9993" + ], + [ + "23:30", + "9996" + ], + [ + "23:40", + "9996" + ], + [ + "23:49", + "9997" + ], + [ + "00:00", + "9997" + ], + [ + "00:10", + "9997" + ], + [ + "00:19", + "9997" + ], + [ + "00:30", + "9997" + ], + [ + "00:40", + "9997" + ], + [ + "00:49", + "9997" + ], + [ + "01:00", + "9997" + ], + [ + "01:10", + "9997" + ], + [ + "01:19", + "9997" + ], + [ + "01:30", + "9999" + ], + [ + "01:40", + "9999" + ], + [ + "01:49", + "10000" + ], + [ + "02:00", + "10000" + ], + [ + "02:10", + "10001" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668 + ], + "y": [ + 50, + 91, + 115, + 143, + 174, + 200, + 229, + 255, + 274, + 311, + 335, + 370, + 451, + 541, + 622, + 774, + 862, + 951, + 1166, + 1304, + 1466, + 2208, + 2687, + 2936, + 3610, + 3938, + 4140, + 4692, + 4779, + 4789, + 4847, + 4896, + 4937, + 4947, + 4963, + 4966, + 4979, + 5064, + 5135, + 5385, + 5549, + 5649, + 5669, + 5693, + 5724, + 5858, + 5996, + 6080, + 6085, + 6086, + 6090, + 6091, + 6093, + 6093, + 6097, + 6097, + 6097, + 6099, + 6102, + 6105, + 6107, + 6111, + 6111, + 6111, + 6113, + 6118, + 6127, + 6132, + 6135, + 6172, + 6239, + 6284, + 6457, + 6600, + 6714, + 6765, + 6827, + 6853, + 7064, + 7234, + 7384, + 7387, + 7393, + 7400, + 7404, + 7406, + 7436, + 7525, + 7573, + 7653, + 7701, + 7786, + 7806, + 7847, + 7949, + 8089, + 8204, + 8349, + 8416, + 8429, + 8430, + 8492, + 8602, + 8726, + 8849, + 8895, + 8971, + 9131, + 9246, + 9472, + 9616, + 9619, + 9621, + 9621, + 9644, + 9797, + 9925, + 9926, + 9926, + 9933, + 9943, + 9978, + 9993, + 9996, + 9996, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9997, + 9999, + 9999, + 10000, + 10000, + 10001 + ] + }, + { + "customdata": [ + [ + "03:00", + "1580" + ], + [ + "03:10", + "2996" + ], + [ + "03:19", + "4045" + ], + [ + "03:30", + "5056" + ], + [ + "03:40", + "5705" + ], + [ + "03:49", + "6093" + ], + [ + "04:00", + "7074" + ], + [ + "04:10", + "7795" + ], + [ + "04:19", + "8466" + ], + [ + "04:30", + "10110" + ], + [ + "04:40", + "11618" + ], + [ + "04:49", + "12604" + ], + [ + "05:00", + "15692" + ], + [ + "05:10", + "18296" + ], + [ + "05:19", + "19999" + ], + [ + "05:30", + "26092" + ], + [ + "05:40", + "31120" + ], + [ + "05:49", + "34266" + ], + [ + "06:00", + "47957" + ], + [ + "06:10", + "57852" + ], + [ + "06:19", + "63350" + ], + [ + "06:30", + "105491" + ], + [ + "06:40", + "134303" + ], + [ + "06:49", + "149152" + ], + [ + "07:00", + "183607" + ], + [ + "07:10", + "205100" + ], + [ + "07:19", + "215359" + ], + [ + "07:30", + "235051" + ], + [ + "07:40", + "242675" + ], + [ + "07:49", + "249562" + ], + [ + "08:00", + "255260" + ], + [ + "08:10", + "264121" + ], + [ + "08:19", + "272744" + ], + [ + "08:30", + "276657" + ], + [ + "08:40", + "282647" + ], + [ + "08:49", + "289050" + ], + [ + "09:00", + "291676" + ], + [ + "09:10", + "295561" + ], + [ + "09:19", + "299397" + ], + [ + "09:30", + "301966" + ], + [ + "09:40", + "305001" + ], + [ + "09:49", + "308361" + ], + [ + "10:00", + "310893" + ], + [ + "10:10", + "313553" + ], + [ + "10:19", + "315867" + ], + [ + "10:30", + "318304" + ], + [ + "10:40", + "320745" + ], + [ + "10:49", + "323073" + ], + [ + "11:00", + "324993" + ], + [ + "11:10", + "326450" + ], + [ + "11:19", + "327936" + ], + [ + "11:30", + "330302" + ], + [ + "11:40", + "332139" + ], + [ + "11:49", + "333835" + ], + [ + "12:00", + "334708" + ], + [ + "12:10", + "335633" + ], + [ + "12:19", + "336727" + ], + [ + "12:30", + "337347" + ], + [ + "12:40", + "338182" + ], + [ + "12:49", + "338958" + ], + [ + "13:00", + "339727" + ], + [ + "13:10", + "340394" + ], + [ + "13:19", + "340761" + ], + [ + "13:30", + "341106" + ], + [ + "13:40", + "341397" + ], + [ + "13:49", + "341633" + ], + [ + "14:00", + "342905" + ], + [ + "14:10", + "343854" + ], + [ + "14:19", + "344437" + ], + [ + "14:30", + "346938" + ], + [ + "14:40", + "348767" + ], + [ + "14:49", + "349790" + ], + [ + "15:00", + "353634" + ], + [ + "15:10", + "355594" + ], + [ + "15:19", + "356531" + ], + [ + "15:30", + "357649" + ], + [ + "15:40", + "358964" + ], + [ + "15:49", + "360233" + ], + [ + "16:00", + "362734" + ], + [ + "16:10", + "365555" + ], + [ + "16:19", + "368578" + ], + [ + "16:30", + "371509" + ], + [ + "16:40", + "376793" + ], + [ + "16:49", + "382064" + ], + [ + "17:00", + "387334" + ], + [ + "17:10", + "392699" + ], + [ + "17:19", + "398525" + ], + [ + "17:30", + "403983" + ], + [ + "17:40", + "410936" + ], + [ + "17:49", + "418729" + ], + [ + "18:00", + "423898" + ], + [ + "18:10", + "430811" + ], + [ + "18:19", + "438017" + ], + [ + "18:30", + "443983" + ], + [ + "18:40", + "450921" + ], + [ + "18:49", + "458146" + ], + [ + "19:00", + "461805" + ], + [ + "19:10", + "466910" + ], + [ + "19:19", + "472652" + ], + [ + "19:30", + "475982" + ], + [ + "19:40", + "480121" + ], + [ + "19:49", + "484291" + ], + [ + "20:00", + "486938" + ], + [ + "20:10", + "490970" + ], + [ + "20:19", + "495207" + ], + [ + "20:30", + "498233" + ], + [ + "20:40", + "501945" + ], + [ + "20:49", + "506196" + ], + [ + "21:00", + "508688" + ], + [ + "21:10", + "512106" + ], + [ + "21:19", + "515751" + ], + [ + "21:30", + "516524" + ], + [ + "21:40", + "517987" + ], + [ + "21:49", + "519722" + ], + [ + "22:00", + "520464" + ], + [ + "22:10", + "521587" + ], + [ + "22:19", + "522916" + ], + [ + "22:30", + "523281" + ], + [ + "22:40", + "524118" + ], + [ + "22:49", + "525008" + ], + [ + "23:00", + "525299" + ], + [ + "23:10", + "525965" + ], + [ + "23:19", + "526730" + ], + [ + "23:30", + "527405" + ], + [ + "23:40", + "528240" + ], + [ + "23:49", + "529280" + ], + [ + "00:00", + "529645" + ], + [ + "00:10", + "530378" + ], + [ + "00:19", + "531110" + ], + [ + "00:30", + "531496" + ], + [ + "00:40", + "531955" + ], + [ + "00:49", + "532560" + ], + [ + "01:00", + "532925" + ], + [ + "01:10", + "533458" + ], + [ + "01:19", + "534034" + ], + [ + "01:30", + "534273" + ], + [ + "01:40", + "534661" + ], + [ + "01:49", + "535183" + ], + [ + "02:00", + "535368" + ], + [ + "02:10", + "535728" + ], + [ + "02:19", + "536102" + ], + [ + "02:30", + "536262" + ], + [ + "02:40", + "536571" + ], + [ + "02:49", + "536885" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332 + ], + "y": [ + 1580, + 2996, + 4045, + 5056, + 5705, + 6093, + 7074, + 7795, + 8466, + 10110, + 11618, + 12604, + 15692, + 18296, + 19999, + 26092, + 31120, + 34266, + 47957, + 57852, + 63350, + 105491, + 134303, + 149152, + 183607, + 205100, + 215359, + 235051, + 242675, + 249562, + 255260, + 264121, + 272744, + 276657, + 282647, + 289050, + 291676, + 295561, + 299397, + 301966, + 305001, + 308361, + 310893, + 313553, + 315867, + 318304, + 320745, + 323073, + 324993, + 326450, + 327936, + 330302, + 332139, + 333835, + 334708, + 335633, + 336727, + 337347, + 338182, + 338958, + 339727, + 340394, + 340761, + 341106, + 341397, + 341633, + 342905, + 343854, + 344437, + 346938, + 348767, + 349790, + 353634, + 355594, + 356531, + 357649, + 358964, + 360233, + 362734, + 365555, + 368578, + 371509, + 376793, + 382064, + 387334, + 392699, + 398525, + 403983, + 410936, + 418729, + 423898, + 430811, + 438017, + 443983, + 450921, + 458146, + 461805, + 466910, + 472652, + 475982, + 480121, + 484291, + 486938, + 490970, + 495207, + 498233, + 501945, + 506196, + 508688, + 512106, + 515751, + 516524, + 517987, + 519722, + 520464, + 521587, + 522916, + 523281, + 524118, + 525008, + 525299, + 525965, + 526730, + 527405, + 528240, + 529280, + 529645, + 530378, + 531110, + 531496, + 531955, + 532560, + 532925, + 533458, + 534034, + 534273, + 534661, + 535183, + 535368, + 535728, + 536102, + 536262, + 536571, + 536885 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Fleet Size (cumulative vehicles) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Cumulative unique vehicles" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_fleet_size(new_df, pooled_df, scenario, bin_minutes):\n", + " # First depart_bin per vehicle\n", + " new_first = (\n", + " new_df.assign(depart_bin=lambda d: pd.to_numeric(d[\"depart_bin\"], errors=\"coerce\").astype(\"Int64\"))\n", + " .dropna(subset=[\"depart_bin\", \"vehicle_id\"])\n", + " .groupby(\"vehicle_id\")[\"depart_bin\"]\n", + " .min()\n", + " )\n", + "\n", + " if new_first.empty:\n", + " return pd.DataFrame(columns=[\"x\", \"y\", \"hover\"])\n", + "\n", + " intro = new_first.value_counts().sort_index()\n", + " intro = intro.reindex(\n", + " pd.RangeIndex(0, intro.index.max() + 1),\n", + " fill_value=0\n", + " ).cumsum()\n", + "\n", + " # Use scenario-specific bin size to map to clock time\n", + " times = start_time + pd.to_timedelta(intro.index * bin_minutes, unit=\"m\")\n", + " vals = intro.values\n", + "\n", + " df = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " df[\"hover\"] = [f\"Vehicles in service: {int(v):,}\" for v in vals]\n", + " return df\n", + "\n", + "run_timeseries_metric(\n", + " metric_fleet_size,\n", + " \"Fleet Size (cumulative vehicles)\",\n", + " \"Cumulative unique vehicles\",\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Number of requested vehicle trips serviced (as opposed to deadheading trips)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "450.0" + ], + [ + "04:30", + "480.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "576.0" + ], + [ + "05:00", + "1014.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3042.0" + ], + [ + "06:10", + "3402.0" + ], + [ + "06:19", + "3744.0" + ], + [ + "06:30", + "8136.0" + ], + [ + "06:40", + "8430.0" + ], + [ + "06:49", + "8478.0" + ], + [ + "07:00", + "12432.0" + ], + [ + "07:10", + "12216.0" + ], + [ + "07:19", + "12546.0" + ], + [ + "07:30", + "14910.0" + ], + [ + "07:40", + "14982.0" + ], + [ + "07:49", + "14856.0" + ], + [ + "08:00", + "14022.0" + ], + [ + "08:10", + "13818.0" + ], + [ + "08:19", + "14448.0" + ], + [ + "08:30", + "13050.0" + ], + [ + "08:40", + "12876.0" + ], + [ + "08:49", + "13326.0" + ], + [ + "09:00", + "12780.0" + ], + [ + "09:10", + "13242.0" + ], + [ + "09:19", + "12834.0" + ], + [ + "09:30", + "15090.0" + ], + [ + "09:40", + "15396.0" + ], + [ + "09:49", + "15480.0" + ], + [ + "10:00", + "15306.0" + ], + [ + "10:10", + "15174.0" + ], + [ + "10:19", + "14628.0" + ], + [ + "10:30", + "16152.0" + ], + [ + "10:40", + "16536.0" + ], + [ + "10:49", + "16584.0" + ], + [ + "11:00", + "14514.0" + ], + [ + "11:10", + "12984.0" + ], + [ + "11:19", + "13344.0" + ], + [ + "11:30", + "10836.0" + ], + [ + "11:40", + "10410.0" + ], + [ + "11:49", + "10752.0" + ], + [ + "12:00", + "7770.0" + ], + [ + "12:10", + "7818.0" + ], + [ + "12:19", + "8202.0" + ], + [ + "12:30", + "7902.0" + ], + [ + "12:40", + "8166.0" + ], + [ + "12:49", + "7788.0" + ], + [ + "13:00", + "8634.0" + ], + [ + "13:10", + "8412.0" + ], + [ + "13:19", + "8832.0" + ], + [ + "13:30", + "8892.0" + ], + [ + "13:40", + "9390.0" + ], + [ + "13:49", + "9312.0" + ], + [ + "14:00", + "10572.0" + ], + [ + "14:10", + "10848.0" + ], + [ + "14:19", + "10578.0" + ], + [ + "14:30", + "12906.0" + ], + [ + "14:40", + "13248.0" + ], + [ + "14:49", + "13338.0" + ], + [ + "15:00", + "16362.0" + ], + [ + "15:10", + "16206.0" + ], + [ + "15:19", + "17142.0" + ], + [ + "15:30", + "16152.0" + ], + [ + "15:40", + "15510.0" + ], + [ + "15:49", + "15978.0" + ], + [ + "16:00", + "18336.0" + ], + [ + "16:10", + "18156.0" + ], + [ + "16:19", + "18168.0" + ], + [ + "16:30", + "14376.0" + ], + [ + "16:40", + "14388.0" + ], + [ + "16:49", + "14310.0" + ], + [ + "17:00", + "15294.0" + ], + [ + "17:10", + "15126.0" + ], + [ + "17:19", + "15882.0" + ], + [ + "17:30", + "16320.0" + ], + [ + "17:40", + "15726.0" + ], + [ + "17:49", + "15798.0" + ], + [ + "18:00", + "14802.0" + ], + [ + "18:10", + "14646.0" + ], + [ + "18:19", + "14628.0" + ], + [ + "18:30", + "14142.0" + ], + [ + "18:40", + "14844.0" + ], + [ + "18:49", + "14862.0" + ], + [ + "19:00", + "14838.0" + ], + [ + "19:10", + "14886.0" + ], + [ + "19:19", + "15006.0" + ], + [ + "19:30", + "12102.0" + ], + [ + "19:40", + "12054.0" + ], + [ + "19:49", + "12732.0" + ], + [ + "20:00", + "12090.0" + ], + [ + "20:10", + "12036.0" + ], + [ + "20:19", + "12096.0" + ], + [ + "20:30", + "9792.0" + ], + [ + "20:40", + "10584.0" + ], + [ + "20:49", + "10536.0" + ], + [ + "21:00", + "10242.0" + ], + [ + "21:10", + "11400.0" + ], + [ + "21:19", + "10530.0" + ], + [ + "21:30", + "6924.0" + ], + [ + "21:40", + "6780.0" + ], + [ + "21:49", + "6570.0" + ], + [ + "22:00", + "5808.0" + ], + [ + "22:10", + "6840.0" + ], + [ + "22:19", + "6264.0" + ], + [ + "22:30", + "4332.0" + ], + [ + "22:40", + "3852.0" + ], + [ + "22:49", + "4008.0" + ], + [ + "23:00", + "4794.0" + ], + [ + "23:10", + "4512.0" + ], + [ + "23:19", + "4380.0" + ], + [ + "23:30", + "3366.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1308.0" + ], + [ + "00:10", + "1134.0" + ], + [ + "00:19", + "1122.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "570.0" + ], + [ + "01:19", + "618.0" + ], + [ + "01:30", + "606.0" + ], + [ + "01:40", + "408.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "474.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 450, + 480, + 498, + 576, + 1014, + 1302, + 1296, + 2016, + 1644, + 2028, + 3042, + 3402, + 3744, + 8136, + 8430, + 8478, + 12432, + 12216, + 12546, + 14910, + 14982, + 14856, + 14022, + 13818, + 14448, + 13050, + 12876, + 13326, + 12780, + 13242, + 12834, + 15090, + 15396, + 15480, + 15306, + 15174, + 14628, + 16152, + 16536, + 16584, + 14514, + 12984, + 13344, + 10836, + 10410, + 10752, + 7770, + 7818, + 8202, + 7902, + 8166, + 7788, + 8634, + 8412, + 8832, + 8892, + 9390, + 9312, + 10572, + 10848, + 10578, + 12906, + 13248, + 13338, + 16362, + 16206, + 17142, + 16152, + 15510, + 15978, + 18336, + 18156, + 18168, + 14376, + 14388, + 14310, + 15294, + 15126, + 15882, + 16320, + 15726, + 15798, + 14802, + 14646, + 14628, + 14142, + 14844, + 14862, + 14838, + 14886, + 15006, + 12102, + 12054, + 12732, + 12090, + 12036, + 12096, + 9792, + 10584, + 10536, + 10242, + 11400, + 10530, + 6924, + 6780, + 6570, + 5808, + 6840, + 6264, + 4332, + 3852, + 4008, + 4794, + 4512, + 4380, + 3366, + 3222, + 3348, + 1308, + 1134, + 1122, + 666, + 720, + 702, + 510, + 570, + 618, + 606, + 408, + 528, + 474, + 342, + 426, + 384, + 396, + 390, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "180.0" + ], + [ + "03:04", + "420.0" + ], + [ + "03:10", + "264.0" + ], + [ + "03:15", + "264.0" + ], + [ + "03:19", + "144.0" + ], + [ + "03:25", + "288.0" + ], + [ + "03:30", + "264.0" + ], + [ + "03:34", + "300.0" + ], + [ + "03:40", + "384.0" + ], + [ + "03:45", + "252.0" + ], + [ + "03:49", + "396.0" + ], + [ + "03:55", + "264.0" + ], + [ + "04:00", + "288.0" + ], + [ + "04:04", + "396.0" + ], + [ + "04:10", + "420.0" + ], + [ + "04:15", + "420.0" + ], + [ + "04:19", + "360.0" + ], + [ + "04:25", + "480.0" + ], + [ + "04:30", + "492.0" + ], + [ + "04:34", + "444.0" + ], + [ + "04:40", + "432.0" + ], + [ + "04:45", + "540.0" + ], + [ + "04:49", + "588.0" + ], + [ + "04:55", + "528.0" + ], + [ + "05:00", + "924.0" + ], + [ + "05:04", + "984.0" + ], + [ + "05:10", + "1296.0" + ], + [ + "05:15", + "1236.0" + ], + [ + "05:19", + "1188.0" + ], + [ + "05:25", + "1272.0" + ], + [ + "05:30", + "1668.0" + ], + [ + "05:34", + "2436.0" + ], + [ + "05:40", + "1608.0" + ], + [ + "05:45", + "1428.0" + ], + [ + "05:49", + "2208.0" + ], + [ + "05:55", + "1896.0" + ], + [ + "06:00", + "2928.0" + ], + [ + "06:04", + "2772.0" + ], + [ + "06:10", + "3612.0" + ], + [ + "06:15", + "3420.0" + ], + [ + "06:19", + "3420.0" + ], + [ + "06:25", + "4200.0" + ], + [ + "06:30", + "7404.0" + ], + [ + "06:34", + "7812.0" + ], + [ + "06:40", + "8604.0" + ], + [ + "06:45", + "8844.0" + ], + [ + "06:49", + "8076.0" + ], + [ + "06:55", + "8328.0" + ], + [ + "07:00", + "12192.0" + ], + [ + "07:04", + "12204.0" + ], + [ + "07:10", + "12408.0" + ], + [ + "07:15", + "11844.0" + ], + [ + "07:19", + "12276.0" + ], + [ + "07:25", + "12276.0" + ], + [ + "07:30", + "14724.0" + ], + [ + "07:34", + "15432.0" + ], + [ + "07:40", + "14856.0" + ], + [ + "07:45", + "14916.0" + ], + [ + "07:49", + "14892.0" + ], + [ + "07:55", + "14904.0" + ], + [ + "08:00", + "14076.0" + ], + [ + "08:04", + "14028.0" + ], + [ + "08:10", + "13884.0" + ], + [ + "08:15", + "14376.0" + ], + [ + "08:19", + "13860.0" + ], + [ + "08:25", + "13944.0" + ], + [ + "08:30", + "13584.0" + ], + [ + "08:34", + "13296.0" + ], + [ + "08:40", + "12816.0" + ], + [ + "08:45", + "12396.0" + ], + [ + "08:49", + "13764.0" + ], + [ + "08:55", + "13056.0" + ], + [ + "09:00", + "12828.0" + ], + [ + "09:04", + "12636.0" + ], + [ + "09:10", + "13116.0" + ], + [ + "09:15", + "13308.0" + ], + [ + "09:19", + "12564.0" + ], + [ + "09:25", + "12360.0" + ], + [ + "09:30", + "15084.0" + ], + [ + "09:34", + "15576.0" + ], + [ + "09:40", + "14796.0" + ], + [ + "09:45", + "15300.0" + ], + [ + "09:49", + "16104.0" + ], + [ + "09:55", + "14772.0" + ], + [ + "10:00", + "15876.0" + ], + [ + "10:04", + "14928.0" + ], + [ + "10:10", + "15336.0" + ], + [ + "10:15", + "14748.0" + ], + [ + "10:19", + "14904.0" + ], + [ + "10:25", + "14364.0" + ], + [ + "10:30", + "15852.0" + ], + [ + "10:34", + "15972.0" + ], + [ + "10:40", + "16572.0" + ], + [ + "10:45", + "16140.0" + ], + [ + "10:49", + "17100.0" + ], + [ + "10:55", + "16548.0" + ], + [ + "11:00", + "15264.0" + ], + [ + "11:04", + "14544.0" + ], + [ + "11:10", + "14028.0" + ], + [ + "11:15", + "12684.0" + ], + [ + "11:19", + "13392.0" + ], + [ + "11:25", + "13164.0" + ], + [ + "11:30", + "11352.0" + ], + [ + "11:34", + "10776.0" + ], + [ + "11:40", + "10812.0" + ], + [ + "11:45", + "10200.0" + ], + [ + "11:49", + "10236.0" + ], + [ + "11:55", + "11028.0" + ], + [ + "12:00", + "7752.0" + ], + [ + "12:04", + "8256.0" + ], + [ + "12:10", + "7800.0" + ], + [ + "12:15", + "7860.0" + ], + [ + "12:19", + "8232.0" + ], + [ + "12:25", + "7860.0" + ], + [ + "12:30", + "8220.0" + ], + [ + "12:34", + "8052.0" + ], + [ + "12:40", + "7908.0" + ], + [ + "12:45", + "8148.0" + ], + [ + "12:49", + "7848.0" + ], + [ + "12:55", + "7896.0" + ], + [ + "13:00", + "8544.0" + ], + [ + "13:04", + "8256.0" + ], + [ + "13:10", + "9084.0" + ], + [ + "13:15", + "8016.0" + ], + [ + "13:19", + "9180.0" + ], + [ + "13:25", + "8340.0" + ], + [ + "13:30", + "9228.0" + ], + [ + "13:34", + "8688.0" + ], + [ + "13:40", + "9444.0" + ], + [ + "13:45", + "9456.0" + ], + [ + "13:49", + "8640.0" + ], + [ + "13:55", + "9300.0" + ], + [ + "14:00", + "10596.0" + ], + [ + "14:04", + "10080.0" + ], + [ + "14:10", + "10932.0" + ], + [ + "14:15", + "11352.0" + ], + [ + "14:19", + "10728.0" + ], + [ + "14:25", + "10332.0" + ], + [ + "14:30", + "12912.0" + ], + [ + "14:34", + "12576.0" + ], + [ + "14:40", + "13116.0" + ], + [ + "14:45", + "13296.0" + ], + [ + "14:49", + "13668.0" + ], + [ + "14:55", + "13152.0" + ], + [ + "15:00", + "15348.0" + ], + [ + "15:04", + "16344.0" + ], + [ + "15:10", + "16128.0" + ], + [ + "15:15", + "16008.0" + ], + [ + "15:19", + "17652.0" + ], + [ + "15:25", + "16548.0" + ], + [ + "15:30", + "17256.0" + ], + [ + "15:34", + "15396.0" + ], + [ + "15:40", + "15444.0" + ], + [ + "15:45", + "15960.0" + ], + [ + "15:49", + "15588.0" + ], + [ + "15:55", + "15804.0" + ], + [ + "16:00", + "18324.0" + ], + [ + "16:04", + "17688.0" + ], + [ + "16:10", + "17856.0" + ], + [ + "16:15", + "18408.0" + ], + [ + "16:19", + "18816.0" + ], + [ + "16:25", + "17688.0" + ], + [ + "16:30", + "15216.0" + ], + [ + "16:34", + "14952.0" + ], + [ + "16:40", + "14352.0" + ], + [ + "16:45", + "14520.0" + ], + [ + "16:49", + "13968.0" + ], + [ + "16:55", + "14136.0" + ], + [ + "17:00", + "14340.0" + ], + [ + "17:04", + "15096.0" + ], + [ + "17:10", + "15180.0" + ], + [ + "17:15", + "15072.0" + ], + [ + "17:19", + "16668.0" + ], + [ + "17:25", + "15852.0" + ], + [ + "17:30", + "16224.0" + ], + [ + "17:34", + "15792.0" + ], + [ + "17:40", + "15540.0" + ], + [ + "17:45", + "15852.0" + ], + [ + "17:49", + "16476.0" + ], + [ + "17:55", + "15384.0" + ], + [ + "18:00", + "14952.0" + ], + [ + "18:04", + "14904.0" + ], + [ + "18:10", + "14388.0" + ], + [ + "18:15", + "14952.0" + ], + [ + "18:19", + "14448.0" + ], + [ + "18:25", + "14520.0" + ], + [ + "18:30", + "13464.0" + ], + [ + "18:34", + "14832.0" + ], + [ + "18:40", + "14688.0" + ], + [ + "18:45", + "14904.0" + ], + [ + "18:49", + "14616.0" + ], + [ + "18:55", + "15024.0" + ], + [ + "19:00", + "15096.0" + ], + [ + "19:04", + "14676.0" + ], + [ + "19:10", + "14688.0" + ], + [ + "19:15", + "14712.0" + ], + [ + "19:19", + "14868.0" + ], + [ + "19:25", + "15060.0" + ], + [ + "19:30", + "13248.0" + ], + [ + "19:34", + "11844.0" + ], + [ + "19:40", + "11964.0" + ], + [ + "19:45", + "12156.0" + ], + [ + "19:49", + "12192.0" + ], + [ + "19:55", + "12744.0" + ], + [ + "20:00", + "11964.0" + ], + [ + "20:04", + "12144.0" + ], + [ + "20:10", + "11976.0" + ], + [ + "20:15", + "12348.0" + ], + [ + "20:19", + "11520.0" + ], + [ + "20:25", + "11928.0" + ], + [ + "20:30", + "10212.0" + ], + [ + "20:34", + "10188.0" + ], + [ + "20:40", + "10884.0" + ], + [ + "20:45", + "10728.0" + ], + [ + "20:49", + "10140.0" + ], + [ + "20:55", + "10284.0" + ], + [ + "21:00", + "10860.0" + ], + [ + "21:04", + "9972.0" + ], + [ + "21:10", + "11148.0" + ], + [ + "21:15", + "11220.0" + ], + [ + "21:19", + "10620.0" + ], + [ + "21:25", + "10608.0" + ], + [ + "21:30", + "7212.0" + ], + [ + "21:34", + "6924.0" + ], + [ + "21:40", + "7128.0" + ], + [ + "21:45", + "6396.0" + ], + [ + "21:49", + "6360.0" + ], + [ + "21:55", + "6876.0" + ], + [ + "22:00", + "6012.0" + ], + [ + "22:04", + "6804.0" + ], + [ + "22:10", + "6324.0" + ], + [ + "22:15", + "6408.0" + ], + [ + "22:19", + "5928.0" + ], + [ + "22:25", + "6408.0" + ], + [ + "22:30", + "4644.0" + ], + [ + "22:34", + "3948.0" + ], + [ + "22:40", + "4416.0" + ], + [ + "22:45", + "3984.0" + ], + [ + "22:49", + "3972.0" + ], + [ + "22:55", + "4356.0" + ], + [ + "23:00", + "4584.0" + ], + [ + "23:04", + "4224.0" + ], + [ + "23:10", + "4932.0" + ], + [ + "23:15", + "4212.0" + ], + [ + "23:19", + "4164.0" + ], + [ + "23:25", + "4860.0" + ], + [ + "23:30", + "3504.0" + ], + [ + "23:34", + "3276.0" + ], + [ + "23:40", + "3276.0" + ], + [ + "23:45", + "3156.0" + ], + [ + "23:49", + "3180.0" + ], + [ + "23:55", + "3180.0" + ], + [ + "00:00", + "1920.0" + ], + [ + "00:04", + "1260.0" + ], + [ + "00:10", + "1236.0" + ], + [ + "00:15", + "1104.0" + ], + [ + "00:19", + "1116.0" + ], + [ + "00:25", + "1056.0" + ], + [ + "00:30", + "732.0" + ], + [ + "00:34", + "648.0" + ], + [ + "00:40", + "768.0" + ], + [ + "00:45", + "720.0" + ], + [ + "00:49", + "672.0" + ], + [ + "00:55", + "672.0" + ], + [ + "01:00", + "492.0" + ], + [ + "01:04", + "576.0" + ], + [ + "01:10", + "576.0" + ], + [ + "01:15", + "564.0" + ], + [ + "01:19", + "576.0" + ], + [ + "01:25", + "624.0" + ], + [ + "01:30", + "600.0" + ], + [ + "01:34", + "636.0" + ], + [ + "01:40", + "480.0" + ], + [ + "01:45", + "288.0" + ], + [ + "01:49", + "516.0" + ], + [ + "01:55", + "576.0" + ], + [ + "02:00", + "504.0" + ], + [ + "02:04", + "480.0" + ], + [ + "02:10", + "336.0" + ], + [ + "02:15", + "324.0" + ], + [ + "02:19", + "420.0" + ], + [ + "02:25", + "408.0" + ], + [ + "02:30", + "348.0" + ], + [ + "02:34", + "492.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:45", + "384.0" + ], + [ + "02:49", + "324.0" + ], + [ + "02:55", + "384.0" + ], + [ + "03:00", + "120.0" + ], + [ + "03:04", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25, + 23.333333333333332, + 23.416666666666668, + 23.5, + 23.583333333333332, + 23.666666666666668, + 23.75, + 23.833333333333332, + 23.916666666666668, + 24, + 24.083333333333332 + ], + "y": [ + 180, + 420, + 264, + 264, + 144, + 288, + 264, + 300, + 384, + 252, + 396, + 264, + 288, + 396, + 420, + 420, + 360, + 480, + 492, + 444, + 432, + 540, + 588, + 528, + 924, + 984, + 1296, + 1236, + 1188, + 1272, + 1668, + 2436, + 1608, + 1428, + 2208, + 1896, + 2928, + 2772, + 3612, + 3420, + 3420, + 4200, + 7404, + 7812, + 8604, + 8844, + 8076, + 8328, + 12192, + 12204, + 12408, + 11844, + 12276, + 12276, + 14724, + 15432, + 14856, + 14916, + 14892, + 14904, + 14076, + 14028, + 13884, + 14376, + 13860, + 13944, + 13584, + 13296, + 12816, + 12396, + 13764, + 13056, + 12828, + 12636, + 13116, + 13308, + 12564, + 12360, + 15084, + 15576, + 14796, + 15300, + 16104, + 14772, + 15876, + 14928, + 15336, + 14748, + 14904, + 14364, + 15852, + 15972, + 16572, + 16140, + 17100, + 16548, + 15264, + 14544, + 14028, + 12684, + 13392, + 13164, + 11352, + 10776, + 10812, + 10200, + 10236, + 11028, + 7752, + 8256, + 7800, + 7860, + 8232, + 7860, + 8220, + 8052, + 7908, + 8148, + 7848, + 7896, + 8544, + 8256, + 9084, + 8016, + 9180, + 8340, + 9228, + 8688, + 9444, + 9456, + 8640, + 9300, + 10596, + 10080, + 10932, + 11352, + 10728, + 10332, + 12912, + 12576, + 13116, + 13296, + 13668, + 13152, + 15348, + 16344, + 16128, + 16008, + 17652, + 16548, + 17256, + 15396, + 15444, + 15960, + 15588, + 15804, + 18324, + 17688, + 17856, + 18408, + 18816, + 17688, + 15216, + 14952, + 14352, + 14520, + 13968, + 14136, + 14340, + 15096, + 15180, + 15072, + 16668, + 15852, + 16224, + 15792, + 15540, + 15852, + 16476, + 15384, + 14952, + 14904, + 14388, + 14952, + 14448, + 14520, + 13464, + 14832, + 14688, + 14904, + 14616, + 15024, + 15096, + 14676, + 14688, + 14712, + 14868, + 15060, + 13248, + 11844, + 11964, + 12156, + 12192, + 12744, + 11964, + 12144, + 11976, + 12348, + 11520, + 11928, + 10212, + 10188, + 10884, + 10728, + 10140, + 10284, + 10860, + 9972, + 11148, + 11220, + 10620, + 10608, + 7212, + 6924, + 7128, + 6396, + 6360, + 6876, + 6012, + 6804, + 6324, + 6408, + 5928, + 6408, + 4644, + 3948, + 4416, + 3984, + 3972, + 4356, + 4584, + 4224, + 4932, + 4212, + 4164, + 4860, + 3504, + 3276, + 3276, + 3156, + 3180, + 3180, + 1920, + 1260, + 1236, + 1104, + 1116, + 1056, + 732, + 648, + 768, + 720, + 672, + 672, + 492, + 576, + 576, + 564, + 576, + 624, + 600, + 636, + 480, + 288, + 516, + 576, + 504, + 480, + 336, + 324, + 420, + 408, + 348, + 492, + 396, + 384, + 324, + 384, + 120, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "320.0" + ], + [ + "03:15", + "252.0" + ], + [ + "03:30", + "340.0" + ], + [ + "03:45", + "308.0" + ], + [ + "04:00", + "412.0" + ], + [ + "04:15", + "408.0" + ], + [ + "04:30", + "512.0" + ], + [ + "04:45", + "568.0" + ], + [ + "05:00", + "1236.0" + ], + [ + "05:15", + "1228.0" + ], + [ + "05:30", + "1988.0" + ], + [ + "05:45", + "1812.0" + ], + [ + "06:00", + "3504.0" + ], + [ + "06:15", + "3576.0" + ], + [ + "06:30", + "8184.0" + ], + [ + "06:45", + "8616.0" + ], + [ + "07:00", + "12176.0" + ], + [ + "07:15", + "12512.0" + ], + [ + "07:30", + "15080.0" + ], + [ + "07:45", + "14660.0" + ], + [ + "08:00", + "14060.0" + ], + [ + "08:15", + "14132.0" + ], + [ + "08:30", + "13020.0" + ], + [ + "08:45", + "13156.0" + ], + [ + "09:00", + "12936.0" + ], + [ + "09:15", + "13064.0" + ], + [ + "09:30", + "15560.0" + ], + [ + "09:45", + "15548.0" + ], + [ + "10:00", + "14968.0" + ], + [ + "10:15", + "14816.0" + ], + [ + "10:30", + "16488.0" + ], + [ + "10:45", + "16656.0" + ], + [ + "11:00", + "13756.0" + ], + [ + "11:15", + "13056.0" + ], + [ + "11:30", + "10696.0" + ], + [ + "11:45", + "10560.0" + ], + [ + "12:00", + "7696.0" + ], + [ + "12:15", + "8132.0" + ], + [ + "12:30", + "8100.0" + ], + [ + "12:45", + "8112.0" + ], + [ + "13:00", + "8480.0" + ], + [ + "13:15", + "8616.0" + ], + [ + "13:30", + "9380.0" + ], + [ + "13:45", + "9184.0" + ], + [ + "14:00", + "10784.0" + ], + [ + "14:15", + "10500.0" + ], + [ + "14:30", + "13184.0" + ], + [ + "14:45", + "13232.0" + ], + [ + "15:00", + "16460.0" + ], + [ + "15:15", + "16840.0" + ], + [ + "15:30", + "15640.0" + ], + [ + "15:45", + "16036.0" + ], + [ + "16:00", + "18216.0" + ], + [ + "16:15", + "18460.0" + ], + [ + "16:30", + "14060.0" + ], + [ + "16:45", + "14248.0" + ], + [ + "17:00", + "15712.0" + ], + [ + "17:15", + "15700.0" + ], + [ + "17:30", + "15856.0" + ], + [ + "17:45", + "15916.0" + ], + [ + "18:00", + "14464.0" + ], + [ + "18:15", + "14732.0" + ], + [ + "18:30", + "14292.0" + ], + [ + "18:45", + "15020.0" + ], + [ + "19:00", + "14928.0" + ], + [ + "19:15", + "15028.0" + ], + [ + "19:30", + "12008.0" + ], + [ + "19:45", + "12436.0" + ], + [ + "20:00", + "12228.0" + ], + [ + "20:15", + "11812.0" + ], + [ + "20:30", + "10260.0" + ], + [ + "20:45", + "10444.0" + ], + [ + "21:00", + "10800.0" + ], + [ + "21:15", + "10772.0" + ], + [ + "21:30", + "6836.0" + ], + [ + "21:45", + "6816.0" + ], + [ + "22:00", + "6080.0" + ], + [ + "22:15", + "6288.0" + ], + [ + "22:30", + "4180.0" + ], + [ + "22:45", + "4204.0" + ], + [ + "23:00", + "4504.0" + ], + [ + "23:15", + "4404.0" + ], + [ + "23:30", + "3204.0" + ], + [ + "23:45", + "3368.0" + ], + [ + "00:00", + "1100.0" + ], + [ + "00:15", + "1112.0" + ], + [ + "00:30", + "684.0" + ], + [ + "00:45", + "712.0" + ], + [ + "01:00", + "540.0" + ], + [ + "01:15", + "600.0" + ], + [ + "01:30", + "540.0" + ], + [ + "01:45", + "492.0" + ], + [ + "02:00", + "424.0" + ], + [ + "02:15", + "408.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:45", + "396.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25, + 23.5, + 23.75 + ], + "y": [ + 320, + 252, + 340, + 308, + 412, + 408, + 512, + 568, + 1236, + 1228, + 1988, + 1812, + 3504, + 3576, + 8184, + 8616, + 12176, + 12512, + 15080, + 14660, + 14060, + 14132, + 13020, + 13156, + 12936, + 13064, + 15560, + 15548, + 14968, + 14816, + 16488, + 16656, + 13756, + 13056, + 10696, + 10560, + 7696, + 8132, + 8100, + 8112, + 8480, + 8616, + 9380, + 9184, + 10784, + 10500, + 13184, + 13232, + 16460, + 16840, + 15640, + 16036, + 18216, + 18460, + 14060, + 14248, + 15712, + 15700, + 15856, + 15916, + 14464, + 14732, + 14292, + 15020, + 14928, + 15028, + 12008, + 12436, + 12228, + 11812, + 10260, + 10444, + 10800, + 10772, + 6836, + 6816, + 6080, + 6288, + 4180, + 4204, + 4504, + 4404, + 3204, + 3368, + 1100, + 1112, + 684, + 712, + 540, + 600, + 540, + 492, + 424, + 408, + 384, + 396 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Number of vehicle trips serviced (REAL) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Veh trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "450.0" + ], + [ + "04:30", + "480.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "576.0" + ], + [ + "05:00", + "1014.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3042.0" + ], + [ + "06:10", + "3402.0" + ], + [ + "06:19", + "3744.0" + ], + [ + "06:30", + "8136.0" + ], + [ + "06:40", + "8430.0" + ], + [ + "06:49", + "8478.0" + ], + [ + "07:00", + "12432.0" + ], + [ + "07:10", + "12216.0" + ], + [ + "07:19", + "12546.0" + ], + [ + "07:30", + "14910.0" + ], + [ + "07:40", + "14982.0" + ], + [ + "07:49", + "14856.0" + ], + [ + "08:00", + "14022.0" + ], + [ + "08:10", + "13818.0" + ], + [ + "08:19", + "14448.0" + ], + [ + "08:30", + "13050.0" + ], + [ + "08:40", + "12876.0" + ], + [ + "08:49", + "13326.0" + ], + [ + "09:00", + "12780.0" + ], + [ + "09:10", + "13242.0" + ], + [ + "09:19", + "12834.0" + ], + [ + "09:30", + "15090.0" + ], + [ + "09:40", + "15396.0" + ], + [ + "09:49", + "15480.0" + ], + [ + "10:00", + "15306.0" + ], + [ + "10:10", + "15174.0" + ], + [ + "10:19", + "14628.0" + ], + [ + "10:30", + "16152.0" + ], + [ + "10:40", + "16536.0" + ], + [ + "10:49", + "16584.0" + ], + [ + "11:00", + "14514.0" + ], + [ + "11:10", + "12984.0" + ], + [ + "11:19", + "13344.0" + ], + [ + "11:30", + "10836.0" + ], + [ + "11:40", + "10410.0" + ], + [ + "11:49", + "10752.0" + ], + [ + "12:00", + "7770.0" + ], + [ + "12:10", + "7818.0" + ], + [ + "12:19", + "8202.0" + ], + [ + "12:30", + "7902.0" + ], + [ + "12:40", + "8166.0" + ], + [ + "12:49", + "7788.0" + ], + [ + "13:00", + "8634.0" + ], + [ + "13:10", + "8412.0" + ], + [ + "13:19", + "8832.0" + ], + [ + "13:30", + "8892.0" + ], + [ + "13:40", + "9390.0" + ], + [ + "13:49", + "9312.0" + ], + [ + "14:00", + "10572.0" + ], + [ + "14:10", + "10848.0" + ], + [ + "14:19", + "10578.0" + ], + [ + "14:30", + "12906.0" + ], + [ + "14:40", + "13248.0" + ], + [ + "14:49", + "13338.0" + ], + [ + "15:00", + "16362.0" + ], + [ + "15:10", + "16206.0" + ], + [ + "15:19", + "17142.0" + ], + [ + "15:30", + "16152.0" + ], + [ + "15:40", + "15510.0" + ], + [ + "15:49", + "15978.0" + ], + [ + "16:00", + "18336.0" + ], + [ + "16:10", + "18156.0" + ], + [ + "16:19", + "18168.0" + ], + [ + "16:30", + "14376.0" + ], + [ + "16:40", + "14388.0" + ], + [ + "16:49", + "14310.0" + ], + [ + "17:00", + "15294.0" + ], + [ + "17:10", + "15126.0" + ], + [ + "17:19", + "15882.0" + ], + [ + "17:30", + "16320.0" + ], + [ + "17:40", + "15726.0" + ], + [ + "17:49", + "15798.0" + ], + [ + "18:00", + "14802.0" + ], + [ + "18:10", + "14646.0" + ], + [ + "18:19", + "14628.0" + ], + [ + "18:30", + "14142.0" + ], + [ + "18:40", + "14844.0" + ], + [ + "18:49", + "14862.0" + ], + [ + "19:00", + "14838.0" + ], + [ + "19:10", + "14886.0" + ], + [ + "19:19", + "15006.0" + ], + [ + "19:30", + "12102.0" + ], + [ + "19:40", + "12054.0" + ], + [ + "19:49", + "12732.0" + ], + [ + "20:00", + "12090.0" + ], + [ + "20:10", + "12036.0" + ], + [ + "20:19", + "12096.0" + ], + [ + "20:30", + "9792.0" + ], + [ + "20:40", + "10584.0" + ], + [ + "20:49", + "10536.0" + ], + [ + "21:00", + "10242.0" + ], + [ + "21:10", + "11400.0" + ], + [ + "21:19", + "10530.0" + ], + [ + "21:30", + "6924.0" + ], + [ + "21:40", + "6780.0" + ], + [ + "21:49", + "6570.0" + ], + [ + "22:00", + "5808.0" + ], + [ + "22:10", + "6840.0" + ], + [ + "22:19", + "6264.0" + ], + [ + "22:30", + "4332.0" + ], + [ + "22:40", + "3852.0" + ], + [ + "22:49", + "4008.0" + ], + [ + "23:00", + "4794.0" + ], + [ + "23:10", + "4512.0" + ], + [ + "23:19", + "4380.0" + ], + [ + "23:30", + "3366.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1308.0" + ], + [ + "00:10", + "1134.0" + ], + [ + "00:19", + "1122.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "570.0" + ], + [ + "01:19", + "618.0" + ], + [ + "01:30", + "606.0" + ], + [ + "01:40", + "408.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "474.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 450, + 480, + 498, + 576, + 1014, + 1302, + 1296, + 2016, + 1644, + 2028, + 3042, + 3402, + 3744, + 8136, + 8430, + 8478, + 12432, + 12216, + 12546, + 14910, + 14982, + 14856, + 14022, + 13818, + 14448, + 13050, + 12876, + 13326, + 12780, + 13242, + 12834, + 15090, + 15396, + 15480, + 15306, + 15174, + 14628, + 16152, + 16536, + 16584, + 14514, + 12984, + 13344, + 10836, + 10410, + 10752, + 7770, + 7818, + 8202, + 7902, + 8166, + 7788, + 8634, + 8412, + 8832, + 8892, + 9390, + 9312, + 10572, + 10848, + 10578, + 12906, + 13248, + 13338, + 16362, + 16206, + 17142, + 16152, + 15510, + 15978, + 18336, + 18156, + 18168, + 14376, + 14388, + 14310, + 15294, + 15126, + 15882, + 16320, + 15726, + 15798, + 14802, + 14646, + 14628, + 14142, + 14844, + 14862, + 14838, + 14886, + 15006, + 12102, + 12054, + 12732, + 12090, + 12036, + 12096, + 9792, + 10584, + 10536, + 10242, + 11400, + 10530, + 6924, + 6780, + 6570, + 5808, + 6840, + 6264, + 4332, + 3852, + 4008, + 4794, + 4512, + 4380, + 3366, + 3222, + 3348, + 1308, + 1134, + 1122, + 666, + 720, + 702, + 510, + 570, + 618, + 606, + 408, + 528, + 474, + 342, + 426, + 384, + 396, + 390, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "438.0" + ], + [ + "04:30", + "486.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "582.0" + ], + [ + "05:00", + "1008.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3012.0" + ], + [ + "06:10", + "3396.0" + ], + [ + "06:19", + "3774.0" + ], + [ + "06:30", + "8088.0" + ], + [ + "06:40", + "8388.0" + ], + [ + "06:49", + "8526.0" + ], + [ + "07:00", + "12366.0" + ], + [ + "07:10", + "12132.0" + ], + [ + "07:19", + "12396.0" + ], + [ + "07:30", + "14946.0" + ], + [ + "07:40", + "14796.0" + ], + [ + "07:49", + "14808.0" + ], + [ + "08:00", + "13968.0" + ], + [ + "08:10", + "13686.0" + ], + [ + "08:19", + "14418.0" + ], + [ + "08:30", + "12960.0" + ], + [ + "08:40", + "12864.0" + ], + [ + "08:49", + "13284.0" + ], + [ + "09:00", + "12756.0" + ], + [ + "09:10", + "13074.0" + ], + [ + "09:19", + "12852.0" + ], + [ + "09:30", + "14982.0" + ], + [ + "09:40", + "15444.0" + ], + [ + "09:49", + "15378.0" + ], + [ + "10:00", + "15348.0" + ], + [ + "10:10", + "15042.0" + ], + [ + "10:19", + "14526.0" + ], + [ + "10:30", + "16200.0" + ], + [ + "10:40", + "16512.0" + ], + [ + "10:49", + "16482.0" + ], + [ + "11:00", + "14460.0" + ], + [ + "11:10", + "12882.0" + ], + [ + "11:19", + "13356.0" + ], + [ + "11:30", + "10776.0" + ], + [ + "11:40", + "10338.0" + ], + [ + "11:49", + "10650.0" + ], + [ + "12:00", + "7782.0" + ], + [ + "12:10", + "7758.0" + ], + [ + "12:19", + "8124.0" + ], + [ + "12:30", + "7836.0" + ], + [ + "12:40", + "8124.0" + ], + [ + "12:49", + "7722.0" + ], + [ + "13:00", + "8592.0" + ], + [ + "13:10", + "8406.0" + ], + [ + "13:19", + "8700.0" + ], + [ + "13:30", + "8886.0" + ], + [ + "13:40", + "9378.0" + ], + [ + "13:49", + "9198.0" + ], + [ + "14:00", + "10542.0" + ], + [ + "14:10", + "10860.0" + ], + [ + "14:19", + "10452.0" + ], + [ + "14:30", + "12912.0" + ], + [ + "14:40", + "13146.0" + ], + [ + "14:49", + "13218.0" + ], + [ + "15:00", + "16368.0" + ], + [ + "15:10", + "16176.0" + ], + [ + "15:19", + "17058.0" + ], + [ + "15:30", + "16044.0" + ], + [ + "15:40", + "15492.0" + ], + [ + "15:49", + "15912.0" + ], + [ + "16:00", + "18228.0" + ], + [ + "16:10", + "18078.0" + ], + [ + "16:19", + "18024.0" + ], + [ + "16:30", + "14292.0" + ], + [ + "16:40", + "14364.0" + ], + [ + "16:49", + "14232.0" + ], + [ + "17:00", + "15192.0" + ], + [ + "17:10", + "15108.0" + ], + [ + "17:19", + "15684.0" + ], + [ + "17:30", + "16248.0" + ], + [ + "17:40", + "15792.0" + ], + [ + "17:49", + "15636.0" + ], + [ + "18:00", + "14832.0" + ], + [ + "18:10", + "14604.0" + ], + [ + "18:19", + "14586.0" + ], + [ + "18:30", + "14058.0" + ], + [ + "18:40", + "14904.0" + ], + [ + "18:49", + "14802.0" + ], + [ + "19:00", + "14820.0" + ], + [ + "19:10", + "14886.0" + ], + [ + "19:19", + "14970.0" + ], + [ + "19:30", + "11982.0" + ], + [ + "19:40", + "12078.0" + ], + [ + "19:49", + "12690.0" + ], + [ + "20:00", + "12090.0" + ], + [ + "20:10", + "11964.0" + ], + [ + "20:19", + "12132.0" + ], + [ + "20:30", + "9804.0" + ], + [ + "20:40", + "10632.0" + ], + [ + "20:49", + "10464.0" + ], + [ + "21:00", + "10242.0" + ], + [ + "21:10", + "11334.0" + ], + [ + "21:19", + "10632.0" + ], + [ + "21:30", + "6834.0" + ], + [ + "21:40", + "6756.0" + ], + [ + "21:49", + "6558.0" + ], + [ + "22:00", + "5742.0" + ], + [ + "22:10", + "6870.0" + ], + [ + "22:19", + "6330.0" + ], + [ + "22:30", + "4266.0" + ], + [ + "22:40", + "3912.0" + ], + [ + "22:49", + "3942.0" + ], + [ + "23:00", + "4818.0" + ], + [ + "23:10", + "4464.0" + ], + [ + "23:19", + "4434.0" + ], + [ + "23:30", + "3372.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1308.0" + ], + [ + "00:10", + "1140.0" + ], + [ + "00:19", + "1116.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "576.0" + ], + [ + "01:19", + "624.0" + ], + [ + "01:30", + "582.0" + ], + [ + "01:40", + "420.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "468.0" + ], + [ + "02:10", + "348.0" + ], + [ + "02:19", + "414.0" + ], + [ + "02:30", + "396.0" + ], + [ + "02:40", + "402.0" + ], + [ + "02:49", + "378.0" + ], + [ + "03:00", + "30.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 438, + 486, + 498, + 582, + 1008, + 1302, + 1296, + 2016, + 1644, + 2028, + 3012, + 3396, + 3774, + 8088, + 8388, + 8526, + 12366, + 12132, + 12396, + 14946, + 14796, + 14808, + 13968, + 13686, + 14418, + 12960, + 12864, + 13284, + 12756, + 13074, + 12852, + 14982, + 15444, + 15378, + 15348, + 15042, + 14526, + 16200, + 16512, + 16482, + 14460, + 12882, + 13356, + 10776, + 10338, + 10650, + 7782, + 7758, + 8124, + 7836, + 8124, + 7722, + 8592, + 8406, + 8700, + 8886, + 9378, + 9198, + 10542, + 10860, + 10452, + 12912, + 13146, + 13218, + 16368, + 16176, + 17058, + 16044, + 15492, + 15912, + 18228, + 18078, + 18024, + 14292, + 14364, + 14232, + 15192, + 15108, + 15684, + 16248, + 15792, + 15636, + 14832, + 14604, + 14586, + 14058, + 14904, + 14802, + 14820, + 14886, + 14970, + 11982, + 12078, + 12690, + 12090, + 11964, + 12132, + 9804, + 10632, + 10464, + 10242, + 11334, + 10632, + 6834, + 6756, + 6558, + 5742, + 6870, + 6330, + 4266, + 3912, + 3942, + 4818, + 4464, + 4434, + 3372, + 3222, + 3348, + 1308, + 1140, + 1116, + 666, + 720, + 702, + 510, + 576, + 624, + 582, + 420, + 528, + 468, + 348, + 414, + 396, + 402, + 378, + 30 + ] + }, + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "438.0" + ], + [ + "04:30", + "486.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "582.0" + ], + [ + "05:00", + "1008.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3012.0" + ], + [ + "06:10", + "3396.0" + ], + [ + "06:19", + "3780.0" + ], + [ + "06:30", + "8076.0" + ], + [ + "06:40", + "8406.0" + ], + [ + "06:49", + "8538.0" + ], + [ + "07:00", + "12378.0" + ], + [ + "07:10", + "12156.0" + ], + [ + "07:19", + "12432.0" + ], + [ + "07:30", + "14928.0" + ], + [ + "07:40", + "14844.0" + ], + [ + "07:49", + "14958.0" + ], + [ + "08:00", + "13944.0" + ], + [ + "08:10", + "13752.0" + ], + [ + "08:19", + "14400.0" + ], + [ + "08:30", + "13020.0" + ], + [ + "08:40", + "12894.0" + ], + [ + "08:49", + "13272.0" + ], + [ + "09:00", + "12756.0" + ], + [ + "09:10", + "13146.0" + ], + [ + "09:19", + "12858.0" + ], + [ + "09:30", + "15000.0" + ], + [ + "09:40", + "15450.0" + ], + [ + "09:49", + "15372.0" + ], + [ + "10:00", + "15348.0" + ], + [ + "10:10", + "15156.0" + ], + [ + "10:19", + "14538.0" + ], + [ + "10:30", + "16218.0" + ], + [ + "10:40", + "16440.0" + ], + [ + "10:49", + "16566.0" + ], + [ + "11:00", + "14532.0" + ], + [ + "11:10", + "12888.0" + ], + [ + "11:19", + "13362.0" + ], + [ + "11:30", + "10806.0" + ], + [ + "11:40", + "10350.0" + ], + [ + "11:49", + "10710.0" + ], + [ + "12:00", + "7764.0" + ], + [ + "12:10", + "7776.0" + ], + [ + "12:19", + "8154.0" + ], + [ + "12:30", + "7872.0" + ], + [ + "12:40", + "8142.0" + ], + [ + "12:49", + "7734.0" + ], + [ + "13:00", + "8634.0" + ], + [ + "13:10", + "8406.0" + ], + [ + "13:19", + "8772.0" + ], + [ + "13:30", + "8904.0" + ], + [ + "13:40", + "9414.0" + ], + [ + "13:49", + "9234.0" + ], + [ + "14:00", + "10536.0" + ], + [ + "14:10", + "10842.0" + ], + [ + "14:19", + "10512.0" + ], + [ + "14:30", + "12900.0" + ], + [ + "14:40", + "13230.0" + ], + [ + "14:49", + "13272.0" + ], + [ + "15:00", + "16326.0" + ], + [ + "15:10", + "16158.0" + ], + [ + "15:19", + "17046.0" + ], + [ + "15:30", + "16176.0" + ], + [ + "15:40", + "15486.0" + ], + [ + "15:49", + "15894.0" + ], + [ + "16:00", + "18330.0" + ], + [ + "16:10", + "18126.0" + ], + [ + "16:19", + "18036.0" + ], + [ + "16:30", + "14382.0" + ], + [ + "16:40", + "14364.0" + ], + [ + "16:49", + "14274.0" + ], + [ + "17:00", + "15168.0" + ], + [ + "17:10", + "15168.0" + ], + [ + "17:19", + "15786.0" + ], + [ + "17:30", + "16320.0" + ], + [ + "17:40", + "15690.0" + ], + [ + "17:49", + "15786.0" + ], + [ + "18:00", + "14736.0" + ], + [ + "18:10", + "14652.0" + ], + [ + "18:19", + "14598.0" + ], + [ + "18:30", + "14070.0" + ], + [ + "18:40", + "14880.0" + ], + [ + "18:49", + "14778.0" + ], + [ + "19:00", + "14874.0" + ], + [ + "19:10", + "14934.0" + ], + [ + "19:19", + "14934.0" + ], + [ + "19:30", + "12000.0" + ], + [ + "19:40", + "12114.0" + ], + [ + "19:49", + "12762.0" + ], + [ + "20:00", + "12042.0" + ], + [ + "20:10", + "11928.0" + ], + [ + "20:19", + "12204.0" + ], + [ + "20:30", + "9768.0" + ], + [ + "20:40", + "10560.0" + ], + [ + "20:49", + "10506.0" + ], + [ + "21:00", + "10266.0" + ], + [ + "21:10", + "11292.0" + ], + [ + "21:19", + "10686.0" + ], + [ + "21:30", + "6834.0" + ], + [ + "21:40", + "6750.0" + ], + [ + "21:49", + "6600.0" + ], + [ + "22:00", + "5640.0" + ], + [ + "22:10", + "6948.0" + ], + [ + "22:19", + "6306.0" + ], + [ + "22:30", + "4314.0" + ], + [ + "22:40", + "3852.0" + ], + [ + "22:49", + "3996.0" + ], + [ + "23:00", + "4782.0" + ], + [ + "23:10", + "4542.0" + ], + [ + "23:19", + "4374.0" + ], + [ + "23:30", + "3378.0" + ], + [ + "23:40", + "3210.0" + ], + [ + "23:49", + "3360.0" + ], + [ + "00:00", + "1302.0" + ], + [ + "00:10", + "1140.0" + ], + [ + "00:19", + "1110.0" + ], + [ + "00:30", + "672.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "576.0" + ], + [ + "01:19", + "624.0" + ], + [ + "01:30", + "594.0" + ], + [ + "01:40", + "408.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "474.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "432.0" + ], + [ + "02:30", + "378.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 438, + 486, + 498, + 582, + 1008, + 1302, + 1296, + 2016, + 1644, + 2028, + 3012, + 3396, + 3780, + 8076, + 8406, + 8538, + 12378, + 12156, + 12432, + 14928, + 14844, + 14958, + 13944, + 13752, + 14400, + 13020, + 12894, + 13272, + 12756, + 13146, + 12858, + 15000, + 15450, + 15372, + 15348, + 15156, + 14538, + 16218, + 16440, + 16566, + 14532, + 12888, + 13362, + 10806, + 10350, + 10710, + 7764, + 7776, + 8154, + 7872, + 8142, + 7734, + 8634, + 8406, + 8772, + 8904, + 9414, + 9234, + 10536, + 10842, + 10512, + 12900, + 13230, + 13272, + 16326, + 16158, + 17046, + 16176, + 15486, + 15894, + 18330, + 18126, + 18036, + 14382, + 14364, + 14274, + 15168, + 15168, + 15786, + 16320, + 15690, + 15786, + 14736, + 14652, + 14598, + 14070, + 14880, + 14778, + 14874, + 14934, + 14934, + 12000, + 12114, + 12762, + 12042, + 11928, + 12204, + 9768, + 10560, + 10506, + 10266, + 11292, + 10686, + 6834, + 6750, + 6600, + 5640, + 6948, + 6306, + 4314, + 3852, + 3996, + 4782, + 4542, + 4374, + 3378, + 3210, + 3360, + 1302, + 1140, + 1110, + 672, + 720, + 702, + 510, + 576, + 624, + 594, + 408, + 528, + 474, + 342, + 432, + 378, + 396, + 390, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "450.0" + ], + [ + "04:30", + "480.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "576.0" + ], + [ + "05:00", + "1014.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3048.0" + ], + [ + "06:10", + "3414.0" + ], + [ + "06:19", + "3762.0" + ], + [ + "06:30", + "8118.0" + ], + [ + "06:40", + "8448.0" + ], + [ + "06:49", + "8442.0" + ], + [ + "07:00", + "12486.0" + ], + [ + "07:10", + "12156.0" + ], + [ + "07:19", + "12642.0" + ], + [ + "07:30", + "14940.0" + ], + [ + "07:40", + "15012.0" + ], + [ + "07:49", + "14850.0" + ], + [ + "08:00", + "14070.0" + ], + [ + "08:10", + "13776.0" + ], + [ + "08:19", + "14466.0" + ], + [ + "08:30", + "13038.0" + ], + [ + "08:40", + "12924.0" + ], + [ + "08:49", + "13344.0" + ], + [ + "09:00", + "12834.0" + ], + [ + "09:10", + "13212.0" + ], + [ + "09:19", + "12864.0" + ], + [ + "09:30", + "15048.0" + ], + [ + "09:40", + "15456.0" + ], + [ + "09:49", + "15414.0" + ], + [ + "10:00", + "15390.0" + ], + [ + "10:10", + "15180.0" + ], + [ + "10:19", + "14610.0" + ], + [ + "10:30", + "16158.0" + ], + [ + "10:40", + "16644.0" + ], + [ + "10:49", + "16554.0" + ], + [ + "11:00", + "14568.0" + ], + [ + "11:10", + "12966.0" + ], + [ + "11:19", + "13374.0" + ], + [ + "11:30", + "10872.0" + ], + [ + "11:40", + "10404.0" + ], + [ + "11:49", + "10752.0" + ], + [ + "12:00", + "7794.0" + ], + [ + "12:10", + "7848.0" + ], + [ + "12:19", + "8196.0" + ], + [ + "12:30", + "7926.0" + ], + [ + "12:40", + "8190.0" + ], + [ + "12:49", + "7800.0" + ], + [ + "13:00", + "8640.0" + ], + [ + "13:10", + "8412.0" + ], + [ + "13:19", + "8844.0" + ], + [ + "13:30", + "8940.0" + ], + [ + "13:40", + "9372.0" + ], + [ + "13:49", + "9306.0" + ], + [ + "14:00", + "10590.0" + ], + [ + "14:10", + "10860.0" + ], + [ + "14:19", + "10590.0" + ], + [ + "14:30", + "12954.0" + ], + [ + "14:40", + "13266.0" + ], + [ + "14:49", + "13392.0" + ], + [ + "15:00", + "16362.0" + ], + [ + "15:10", + "16242.0" + ], + [ + "15:19", + "17064.0" + ], + [ + "15:30", + "16206.0" + ], + [ + "15:40", + "15540.0" + ], + [ + "15:49", + "16032.0" + ], + [ + "16:00", + "18372.0" + ], + [ + "16:10", + "18096.0" + ], + [ + "16:19", + "18168.0" + ], + [ + "16:30", + "14442.0" + ], + [ + "16:40", + "14400.0" + ], + [ + "16:49", + "14352.0" + ], + [ + "17:00", + "15360.0" + ], + [ + "17:10", + "15090.0" + ], + [ + "17:19", + "15864.0" + ], + [ + "17:30", + "16296.0" + ], + [ + "17:40", + "15774.0" + ], + [ + "17:49", + "15804.0" + ], + [ + "18:00", + "14826.0" + ], + [ + "18:10", + "14730.0" + ], + [ + "18:19", + "14580.0" + ], + [ + "18:30", + "14094.0" + ], + [ + "18:40", + "14994.0" + ], + [ + "18:49", + "14844.0" + ], + [ + "19:00", + "14880.0" + ], + [ + "19:10", + "14874.0" + ], + [ + "19:19", + "15012.0" + ], + [ + "19:30", + "12024.0" + ], + [ + "19:40", + "12078.0" + ], + [ + "19:49", + "12780.0" + ], + [ + "20:00", + "12108.0" + ], + [ + "20:10", + "11880.0" + ], + [ + "20:19", + "12282.0" + ], + [ + "20:30", + "9774.0" + ], + [ + "20:40", + "10638.0" + ], + [ + "20:49", + "10542.0" + ], + [ + "21:00", + "10254.0" + ], + [ + "21:10", + "11316.0" + ], + [ + "21:19", + "10608.0" + ], + [ + "21:30", + "6894.0" + ], + [ + "21:40", + "6762.0" + ], + [ + "21:49", + "6588.0" + ], + [ + "22:00", + "5760.0" + ], + [ + "22:10", + "6864.0" + ], + [ + "22:19", + "6318.0" + ], + [ + "22:30", + "4260.0" + ], + [ + "22:40", + "3882.0" + ], + [ + "22:49", + "3960.0" + ], + [ + "23:00", + "4860.0" + ], + [ + "23:10", + "4470.0" + ], + [ + "23:19", + "4422.0" + ], + [ + "23:30", + "3360.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1314.0" + ], + [ + "00:10", + "1140.0" + ], + [ + "00:19", + "1116.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "576.0" + ], + [ + "01:19", + "618.0" + ], + [ + "01:30", + "594.0" + ], + [ + "01:40", + "414.0" + ], + [ + "01:49", + "522.0" + ], + [ + "02:00", + "480.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:40", + "402.0" + ], + [ + "02:49", + "378.0" + ], + [ + "03:00", + "30.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 450, + 480, + 498, + 576, + 1014, + 1302, + 1296, + 2016, + 1644, + 2028, + 3048, + 3414, + 3762, + 8118, + 8448, + 8442, + 12486, + 12156, + 12642, + 14940, + 15012, + 14850, + 14070, + 13776, + 14466, + 13038, + 12924, + 13344, + 12834, + 13212, + 12864, + 15048, + 15456, + 15414, + 15390, + 15180, + 14610, + 16158, + 16644, + 16554, + 14568, + 12966, + 13374, + 10872, + 10404, + 10752, + 7794, + 7848, + 8196, + 7926, + 8190, + 7800, + 8640, + 8412, + 8844, + 8940, + 9372, + 9306, + 10590, + 10860, + 10590, + 12954, + 13266, + 13392, + 16362, + 16242, + 17064, + 16206, + 15540, + 16032, + 18372, + 18096, + 18168, + 14442, + 14400, + 14352, + 15360, + 15090, + 15864, + 16296, + 15774, + 15804, + 14826, + 14730, + 14580, + 14094, + 14994, + 14844, + 14880, + 14874, + 15012, + 12024, + 12078, + 12780, + 12108, + 11880, + 12282, + 9774, + 10638, + 10542, + 10254, + 11316, + 10608, + 6894, + 6762, + 6588, + 5760, + 6864, + 6318, + 4260, + 3882, + 3960, + 4860, + 4470, + 4422, + 3360, + 3222, + 3348, + 1314, + 1140, + 1116, + 666, + 720, + 702, + 510, + 576, + 618, + 594, + 414, + 522, + 480, + 342, + 426, + 384, + 402, + 378, + 30 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Number of vehicle trips serviced (REAL) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Veh trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "450.0" + ], + [ + "04:30", + "480.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "576.0" + ], + [ + "05:00", + "1014.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3042.0" + ], + [ + "06:10", + "3402.0" + ], + [ + "06:19", + "3744.0" + ], + [ + "06:30", + "8136.0" + ], + [ + "06:40", + "8430.0" + ], + [ + "06:49", + "8478.0" + ], + [ + "07:00", + "12432.0" + ], + [ + "07:10", + "12216.0" + ], + [ + "07:19", + "12546.0" + ], + [ + "07:30", + "14910.0" + ], + [ + "07:40", + "14982.0" + ], + [ + "07:49", + "14856.0" + ], + [ + "08:00", + "14022.0" + ], + [ + "08:10", + "13818.0" + ], + [ + "08:19", + "14448.0" + ], + [ + "08:30", + "13050.0" + ], + [ + "08:40", + "12876.0" + ], + [ + "08:49", + "13326.0" + ], + [ + "09:00", + "12780.0" + ], + [ + "09:10", + "13242.0" + ], + [ + "09:19", + "12834.0" + ], + [ + "09:30", + "15090.0" + ], + [ + "09:40", + "15396.0" + ], + [ + "09:49", + "15480.0" + ], + [ + "10:00", + "15306.0" + ], + [ + "10:10", + "15174.0" + ], + [ + "10:19", + "14628.0" + ], + [ + "10:30", + "16152.0" + ], + [ + "10:40", + "16536.0" + ], + [ + "10:49", + "16584.0" + ], + [ + "11:00", + "14514.0" + ], + [ + "11:10", + "12984.0" + ], + [ + "11:19", + "13344.0" + ], + [ + "11:30", + "10836.0" + ], + [ + "11:40", + "10410.0" + ], + [ + "11:49", + "10752.0" + ], + [ + "12:00", + "7770.0" + ], + [ + "12:10", + "7818.0" + ], + [ + "12:19", + "8202.0" + ], + [ + "12:30", + "7902.0" + ], + [ + "12:40", + "8166.0" + ], + [ + "12:49", + "7788.0" + ], + [ + "13:00", + "8634.0" + ], + [ + "13:10", + "8412.0" + ], + [ + "13:19", + "8832.0" + ], + [ + "13:30", + "8892.0" + ], + [ + "13:40", + "9390.0" + ], + [ + "13:49", + "9312.0" + ], + [ + "14:00", + "10572.0" + ], + [ + "14:10", + "10848.0" + ], + [ + "14:19", + "10578.0" + ], + [ + "14:30", + "12906.0" + ], + [ + "14:40", + "13248.0" + ], + [ + "14:49", + "13338.0" + ], + [ + "15:00", + "16362.0" + ], + [ + "15:10", + "16206.0" + ], + [ + "15:19", + "17142.0" + ], + [ + "15:30", + "16152.0" + ], + [ + "15:40", + "15510.0" + ], + [ + "15:49", + "15978.0" + ], + [ + "16:00", + "18336.0" + ], + [ + "16:10", + "18156.0" + ], + [ + "16:19", + "18168.0" + ], + [ + "16:30", + "14376.0" + ], + [ + "16:40", + "14388.0" + ], + [ + "16:49", + "14310.0" + ], + [ + "17:00", + "15294.0" + ], + [ + "17:10", + "15126.0" + ], + [ + "17:19", + "15882.0" + ], + [ + "17:30", + "16320.0" + ], + [ + "17:40", + "15726.0" + ], + [ + "17:49", + "15798.0" + ], + [ + "18:00", + "14802.0" + ], + [ + "18:10", + "14646.0" + ], + [ + "18:19", + "14628.0" + ], + [ + "18:30", + "14142.0" + ], + [ + "18:40", + "14844.0" + ], + [ + "18:49", + "14862.0" + ], + [ + "19:00", + "14838.0" + ], + [ + "19:10", + "14886.0" + ], + [ + "19:19", + "15006.0" + ], + [ + "19:30", + "12102.0" + ], + [ + "19:40", + "12054.0" + ], + [ + "19:49", + "12732.0" + ], + [ + "20:00", + "12090.0" + ], + [ + "20:10", + "12036.0" + ], + [ + "20:19", + "12096.0" + ], + [ + "20:30", + "9792.0" + ], + [ + "20:40", + "10584.0" + ], + [ + "20:49", + "10536.0" + ], + [ + "21:00", + "10242.0" + ], + [ + "21:10", + "11400.0" + ], + [ + "21:19", + "10530.0" + ], + [ + "21:30", + "6924.0" + ], + [ + "21:40", + "6780.0" + ], + [ + "21:49", + "6570.0" + ], + [ + "22:00", + "5808.0" + ], + [ + "22:10", + "6840.0" + ], + [ + "22:19", + "6264.0" + ], + [ + "22:30", + "4332.0" + ], + [ + "22:40", + "3852.0" + ], + [ + "22:49", + "4008.0" + ], + [ + "23:00", + "4794.0" + ], + [ + "23:10", + "4512.0" + ], + [ + "23:19", + "4380.0" + ], + [ + "23:30", + "3366.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1308.0" + ], + [ + "00:10", + "1134.0" + ], + [ + "00:19", + "1122.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "570.0" + ], + [ + "01:19", + "618.0" + ], + [ + "01:30", + "606.0" + ], + [ + "01:40", + "408.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "474.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 450, + 480, + 498, + 576, + 1014, + 1302, + 1296, + 2016, + 1644, + 2028, + 3042, + 3402, + 3744, + 8136, + 8430, + 8478, + 12432, + 12216, + 12546, + 14910, + 14982, + 14856, + 14022, + 13818, + 14448, + 13050, + 12876, + 13326, + 12780, + 13242, + 12834, + 15090, + 15396, + 15480, + 15306, + 15174, + 14628, + 16152, + 16536, + 16584, + 14514, + 12984, + 13344, + 10836, + 10410, + 10752, + 7770, + 7818, + 8202, + 7902, + 8166, + 7788, + 8634, + 8412, + 8832, + 8892, + 9390, + 9312, + 10572, + 10848, + 10578, + 12906, + 13248, + 13338, + 16362, + 16206, + 17142, + 16152, + 15510, + 15978, + 18336, + 18156, + 18168, + 14376, + 14388, + 14310, + 15294, + 15126, + 15882, + 16320, + 15726, + 15798, + 14802, + 14646, + 14628, + 14142, + 14844, + 14862, + 14838, + 14886, + 15006, + 12102, + 12054, + 12732, + 12090, + 12036, + 12096, + 9792, + 10584, + 10536, + 10242, + 11400, + 10530, + 6924, + 6780, + 6570, + 5808, + 6840, + 6264, + 4332, + 3852, + 4008, + 4794, + 4512, + 4380, + 3366, + 3222, + 3348, + 1308, + 1134, + 1122, + 666, + 720, + 702, + 510, + 570, + 618, + 606, + 408, + 528, + 474, + 342, + 426, + 384, + 396, + 390, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "264.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "246.0" + ], + [ + "03:30", + "252.0" + ], + [ + "03:40", + "330.0" + ], + [ + "03:49", + "348.0" + ], + [ + "04:00", + "396.0" + ], + [ + "04:10", + "378.0" + ], + [ + "04:19", + "372.0" + ], + [ + "04:30", + "576.0" + ], + [ + "04:40", + "480.0" + ], + [ + "04:49", + "546.0" + ], + [ + "05:00", + "1002.0" + ], + [ + "05:10", + "1140.0" + ], + [ + "05:19", + "1386.0" + ], + [ + "05:30", + "1800.0" + ], + [ + "05:40", + "1968.0" + ], + [ + "05:49", + "1824.0" + ], + [ + "06:00", + "3228.0" + ], + [ + "06:10", + "3426.0" + ], + [ + "06:19", + "3606.0" + ], + [ + "06:30", + "7902.0" + ], + [ + "06:40", + "8838.0" + ], + [ + "06:49", + "8106.0" + ], + [ + "07:00", + "12318.0" + ], + [ + "07:10", + "12198.0" + ], + [ + "07:19", + "12270.0" + ], + [ + "07:30", + "14184.0" + ], + [ + "07:40", + "14778.0" + ], + [ + "07:49", + "14622.0" + ], + [ + "08:00", + "14082.0" + ], + [ + "08:10", + "13260.0" + ], + [ + "08:19", + "14148.0" + ], + [ + "08:30", + "12612.0" + ], + [ + "08:40", + "12162.0" + ], + [ + "08:49", + "12468.0" + ], + [ + "09:00", + "11838.0" + ], + [ + "09:10", + "12126.0" + ], + [ + "09:19", + "12540.0" + ], + [ + "09:30", + "13926.0" + ], + [ + "09:40", + "14028.0" + ], + [ + "09:49", + "14448.0" + ], + [ + "10:00", + "13272.0" + ], + [ + "10:10", + "13386.0" + ], + [ + "10:19", + "13764.0" + ], + [ + "10:30", + "14964.0" + ], + [ + "10:40", + "15216.0" + ], + [ + "10:49", + "14700.0" + ], + [ + "11:00", + "12828.0" + ], + [ + "11:10", + "11940.0" + ], + [ + "11:19", + "12228.0" + ], + [ + "11:30", + "9912.0" + ], + [ + "11:40", + "9966.0" + ], + [ + "11:49", + "9846.0" + ], + [ + "12:00", + "7530.0" + ], + [ + "12:10", + "7536.0" + ], + [ + "12:19", + "7770.0" + ], + [ + "12:30", + "7992.0" + ], + [ + "12:40", + "7620.0" + ], + [ + "12:49", + "7464.0" + ], + [ + "13:00", + "8472.0" + ], + [ + "13:10", + "7908.0" + ], + [ + "13:19", + "8292.0" + ], + [ + "13:30", + "8466.0" + ], + [ + "13:40", + "8634.0" + ], + [ + "13:49", + "9018.0" + ], + [ + "14:00", + "10452.0" + ], + [ + "14:10", + "10128.0" + ], + [ + "14:19", + "10122.0" + ], + [ + "14:30", + "12420.0" + ], + [ + "14:40", + "12636.0" + ], + [ + "14:49", + "12612.0" + ], + [ + "15:00", + "15144.0" + ], + [ + "15:10", + "16332.0" + ], + [ + "15:19", + "16032.0" + ], + [ + "15:30", + "14928.0" + ], + [ + "15:40", + "15072.0" + ], + [ + "15:49", + "15036.0" + ], + [ + "16:00", + "17262.0" + ], + [ + "16:10", + "17244.0" + ], + [ + "16:19", + "17040.0" + ], + [ + "16:30", + "13434.0" + ], + [ + "16:40", + "13704.0" + ], + [ + "16:49", + "13530.0" + ], + [ + "17:00", + "14010.0" + ], + [ + "17:10", + "14178.0" + ], + [ + "17:19", + "14862.0" + ], + [ + "17:30", + "15042.0" + ], + [ + "17:40", + "14598.0" + ], + [ + "17:49", + "14730.0" + ], + [ + "18:00", + "13062.0" + ], + [ + "18:10", + "14208.0" + ], + [ + "18:19", + "13380.0" + ], + [ + "18:30", + "13128.0" + ], + [ + "18:40", + "13488.0" + ], + [ + "18:49", + "13680.0" + ], + [ + "19:00", + "13608.0" + ], + [ + "19:10", + "13470.0" + ], + [ + "19:19", + "13470.0" + ], + [ + "19:30", + "10968.0" + ], + [ + "19:40", + "11136.0" + ], + [ + "19:49", + "11190.0" + ], + [ + "20:00", + "10428.0" + ], + [ + "20:10", + "10758.0" + ], + [ + "20:19", + "10896.0" + ], + [ + "20:30", + "9780.0" + ], + [ + "20:40", + "9552.0" + ], + [ + "20:49", + "9576.0" + ], + [ + "21:00", + "9540.0" + ], + [ + "21:10", + "9426.0" + ], + [ + "21:19", + "9792.0" + ], + [ + "21:30", + "6252.0" + ], + [ + "21:40", + "6114.0" + ], + [ + "21:49", + "6030.0" + ], + [ + "22:00", + "5676.0" + ], + [ + "22:10", + "5946.0" + ], + [ + "22:19", + "5460.0" + ], + [ + "22:30", + "3954.0" + ], + [ + "22:40", + "3606.0" + ], + [ + "22:49", + "4056.0" + ], + [ + "23:00", + "4062.0" + ], + [ + "23:10", + "4002.0" + ], + [ + "23:19", + "3984.0" + ], + [ + "23:30", + "3072.0" + ], + [ + "23:40", + "2880.0" + ], + [ + "23:49", + "3066.0" + ], + [ + "00:00", + "1128.0" + ], + [ + "00:10", + "1152.0" + ], + [ + "00:19", + "1092.0" + ], + [ + "00:30", + "594.0" + ], + [ + "00:40", + "672.0" + ], + [ + "00:49", + "804.0" + ], + [ + "01:00", + "606.0" + ], + [ + "01:10", + "528.0" + ], + [ + "01:19", + "564.0" + ], + [ + "01:30", + "534.0" + ], + [ + "01:40", + "432.0" + ], + [ + "01:49", + "576.0" + ], + [ + "02:00", + "384.0" + ], + [ + "02:10", + "438.0" + ], + [ + "02:19", + "402.0" + ], + [ + "02:30", + "324.0" + ], + [ + "02:40", + "438.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 264, + 282, + 246, + 252, + 330, + 348, + 396, + 378, + 372, + 576, + 480, + 546, + 1002, + 1140, + 1386, + 1800, + 1968, + 1824, + 3228, + 3426, + 3606, + 7902, + 8838, + 8106, + 12318, + 12198, + 12270, + 14184, + 14778, + 14622, + 14082, + 13260, + 14148, + 12612, + 12162, + 12468, + 11838, + 12126, + 12540, + 13926, + 14028, + 14448, + 13272, + 13386, + 13764, + 14964, + 15216, + 14700, + 12828, + 11940, + 12228, + 9912, + 9966, + 9846, + 7530, + 7536, + 7770, + 7992, + 7620, + 7464, + 8472, + 7908, + 8292, + 8466, + 8634, + 9018, + 10452, + 10128, + 10122, + 12420, + 12636, + 12612, + 15144, + 16332, + 16032, + 14928, + 15072, + 15036, + 17262, + 17244, + 17040, + 13434, + 13704, + 13530, + 14010, + 14178, + 14862, + 15042, + 14598, + 14730, + 13062, + 14208, + 13380, + 13128, + 13488, + 13680, + 13608, + 13470, + 13470, + 10968, + 11136, + 11190, + 10428, + 10758, + 10896, + 9780, + 9552, + 9576, + 9540, + 9426, + 9792, + 6252, + 6114, + 6030, + 5676, + 5946, + 5460, + 3954, + 3606, + 4056, + 4062, + 4002, + 3984, + 3072, + 2880, + 3066, + 1128, + 1152, + 1092, + 594, + 672, + 804, + 606, + 528, + 564, + 534, + 432, + 576, + 384, + 438, + 402, + 324, + 438, + 390, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "240.0" + ], + [ + "03:10", + "288.0" + ], + [ + "03:19", + "258.0" + ], + [ + "03:30", + "300.0" + ], + [ + "03:40", + "306.0" + ], + [ + "03:49", + "348.0" + ], + [ + "04:00", + "348.0" + ], + [ + "04:10", + "438.0" + ], + [ + "04:19", + "360.0" + ], + [ + "04:30", + "516.0" + ], + [ + "04:40", + "528.0" + ], + [ + "04:49", + "462.0" + ], + [ + "05:00", + "1080.0" + ], + [ + "05:10", + "1224.0" + ], + [ + "05:19", + "1284.0" + ], + [ + "05:30", + "1806.0" + ], + [ + "05:40", + "1842.0" + ], + [ + "05:49", + "1938.0" + ], + [ + "06:00", + "3000.0" + ], + [ + "06:10", + "3774.0" + ], + [ + "06:19", + "3474.0" + ], + [ + "06:30", + "7926.0" + ], + [ + "06:40", + "8622.0" + ], + [ + "06:49", + "8208.0" + ], + [ + "07:00", + "11868.0" + ], + [ + "07:10", + "11808.0" + ], + [ + "07:19", + "12588.0" + ], + [ + "07:30", + "14136.0" + ], + [ + "07:40", + "14316.0" + ], + [ + "07:49", + "14754.0" + ], + [ + "08:00", + "13380.0" + ], + [ + "08:10", + "13566.0" + ], + [ + "08:19", + "13194.0" + ], + [ + "08:30", + "11910.0" + ], + [ + "08:40", + "11706.0" + ], + [ + "08:49", + "12402.0" + ], + [ + "09:00", + "11388.0" + ], + [ + "09:10", + "11586.0" + ], + [ + "09:19", + "11946.0" + ], + [ + "09:30", + "13188.0" + ], + [ + "09:40", + "13608.0" + ], + [ + "09:49", + "13674.0" + ], + [ + "10:00", + "13218.0" + ], + [ + "10:10", + "12618.0" + ], + [ + "10:19", + "12756.0" + ], + [ + "10:30", + "14190.0" + ], + [ + "10:40", + "14154.0" + ], + [ + "10:49", + "14196.0" + ], + [ + "11:00", + "11970.0" + ], + [ + "11:10", + "11556.0" + ], + [ + "11:19", + "11790.0" + ], + [ + "11:30", + "9576.0" + ], + [ + "11:40", + "9594.0" + ], + [ + "11:49", + "9450.0" + ], + [ + "12:00", + "7464.0" + ], + [ + "12:10", + "7428.0" + ], + [ + "12:19", + "7698.0" + ], + [ + "12:30", + "7650.0" + ], + [ + "12:40", + "7632.0" + ], + [ + "12:49", + "7200.0" + ], + [ + "13:00", + "7974.0" + ], + [ + "13:10", + "8124.0" + ], + [ + "13:19", + "7842.0" + ], + [ + "13:30", + "8346.0" + ], + [ + "13:40", + "8292.0" + ], + [ + "13:49", + "8820.0" + ], + [ + "14:00", + "10356.0" + ], + [ + "14:10", + "9840.0" + ], + [ + "14:19", + "9648.0" + ], + [ + "14:30", + "11832.0" + ], + [ + "14:40", + "12450.0" + ], + [ + "14:49", + "12480.0" + ], + [ + "15:00", + "15150.0" + ], + [ + "15:10", + "15414.0" + ], + [ + "15:19", + "15048.0" + ], + [ + "15:30", + "14574.0" + ], + [ + "15:40", + "14562.0" + ], + [ + "15:49", + "14580.0" + ], + [ + "16:00", + "15984.0" + ], + [ + "16:10", + "16854.0" + ], + [ + "16:19", + "17166.0" + ], + [ + "16:30", + "12972.0" + ], + [ + "16:40", + "12918.0" + ], + [ + "16:49", + "12990.0" + ], + [ + "17:00", + "13176.0" + ], + [ + "17:10", + "13482.0" + ], + [ + "17:19", + "14160.0" + ], + [ + "17:30", + "14646.0" + ], + [ + "17:40", + "13662.0" + ], + [ + "17:49", + "13914.0" + ], + [ + "18:00", + "13248.0" + ], + [ + "18:10", + "12540.0" + ], + [ + "18:19", + "12804.0" + ], + [ + "18:30", + "12918.0" + ], + [ + "18:40", + "12630.0" + ], + [ + "18:49", + "12552.0" + ], + [ + "19:00", + "12852.0" + ], + [ + "19:10", + "12522.0" + ], + [ + "19:19", + "12642.0" + ], + [ + "19:30", + "10296.0" + ], + [ + "19:40", + "10728.0" + ], + [ + "19:49", + "10272.0" + ], + [ + "20:00", + "9852.0" + ], + [ + "20:10", + "10560.0" + ], + [ + "20:19", + "10080.0" + ], + [ + "20:30", + "9000.0" + ], + [ + "20:40", + "8730.0" + ], + [ + "20:49", + "9192.0" + ], + [ + "21:00", + "8778.0" + ], + [ + "21:10", + "8958.0" + ], + [ + "21:19", + "9402.0" + ], + [ + "21:30", + "5808.0" + ], + [ + "21:40", + "5532.0" + ], + [ + "21:49", + "5724.0" + ], + [ + "22:00", + "5232.0" + ], + [ + "22:10", + "5760.0" + ], + [ + "22:19", + "5202.0" + ], + [ + "22:30", + "3384.0" + ], + [ + "22:40", + "3372.0" + ], + [ + "22:49", + "4176.0" + ], + [ + "23:00", + "3750.0" + ], + [ + "23:10", + "3738.0" + ], + [ + "23:19", + "3510.0" + ], + [ + "23:30", + "2934.0" + ], + [ + "23:40", + "2688.0" + ], + [ + "23:49", + "2838.0" + ], + [ + "00:00", + "1104.0" + ], + [ + "00:10", + "1080.0" + ], + [ + "00:19", + "1062.0" + ], + [ + "00:30", + "678.0" + ], + [ + "00:40", + "660.0" + ], + [ + "00:49", + "732.0" + ], + [ + "01:00", + "630.0" + ], + [ + "01:10", + "546.0" + ], + [ + "01:19", + "522.0" + ], + [ + "01:30", + "528.0" + ], + [ + "01:40", + "528.0" + ], + [ + "01:49", + "468.0" + ], + [ + "02:00", + "360.0" + ], + [ + "02:10", + "450.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "342.0" + ], + [ + "02:40", + "402.0" + ], + [ + "02:49", + "408.0" + ], + [ + "03:00", + "12.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 240, + 288, + 258, + 300, + 306, + 348, + 348, + 438, + 360, + 516, + 528, + 462, + 1080, + 1224, + 1284, + 1806, + 1842, + 1938, + 3000, + 3774, + 3474, + 7926, + 8622, + 8208, + 11868, + 11808, + 12588, + 14136, + 14316, + 14754, + 13380, + 13566, + 13194, + 11910, + 11706, + 12402, + 11388, + 11586, + 11946, + 13188, + 13608, + 13674, + 13218, + 12618, + 12756, + 14190, + 14154, + 14196, + 11970, + 11556, + 11790, + 9576, + 9594, + 9450, + 7464, + 7428, + 7698, + 7650, + 7632, + 7200, + 7974, + 8124, + 7842, + 8346, + 8292, + 8820, + 10356, + 9840, + 9648, + 11832, + 12450, + 12480, + 15150, + 15414, + 15048, + 14574, + 14562, + 14580, + 15984, + 16854, + 17166, + 12972, + 12918, + 12990, + 13176, + 13482, + 14160, + 14646, + 13662, + 13914, + 13248, + 12540, + 12804, + 12918, + 12630, + 12552, + 12852, + 12522, + 12642, + 10296, + 10728, + 10272, + 9852, + 10560, + 10080, + 9000, + 8730, + 9192, + 8778, + 8958, + 9402, + 5808, + 5532, + 5724, + 5232, + 5760, + 5202, + 3384, + 3372, + 4176, + 3750, + 3738, + 3510, + 2934, + 2688, + 2838, + 1104, + 1080, + 1062, + 678, + 660, + 732, + 630, + 546, + 522, + 528, + 528, + 468, + 360, + 450, + 426, + 342, + 402, + 408, + 12 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Number of vehicle trips serviced (REAL) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Veh trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "300.0" + ], + [ + "03:10", + "282.0" + ], + [ + "03:19", + "234.0" + ], + [ + "03:30", + "270.0" + ], + [ + "03:40", + "342.0" + ], + [ + "03:49", + "330.0" + ], + [ + "04:00", + "384.0" + ], + [ + "04:10", + "360.0" + ], + [ + "04:19", + "450.0" + ], + [ + "04:30", + "480.0" + ], + [ + "04:40", + "498.0" + ], + [ + "04:49", + "576.0" + ], + [ + "05:00", + "1014.0" + ], + [ + "05:10", + "1302.0" + ], + [ + "05:19", + "1296.0" + ], + [ + "05:30", + "2016.0" + ], + [ + "05:40", + "1644.0" + ], + [ + "05:49", + "2028.0" + ], + [ + "06:00", + "3042.0" + ], + [ + "06:10", + "3402.0" + ], + [ + "06:19", + "3744.0" + ], + [ + "06:30", + "8136.0" + ], + [ + "06:40", + "8430.0" + ], + [ + "06:49", + "8478.0" + ], + [ + "07:00", + "12432.0" + ], + [ + "07:10", + "12216.0" + ], + [ + "07:19", + "12546.0" + ], + [ + "07:30", + "14910.0" + ], + [ + "07:40", + "14982.0" + ], + [ + "07:49", + "14856.0" + ], + [ + "08:00", + "14022.0" + ], + [ + "08:10", + "13818.0" + ], + [ + "08:19", + "14448.0" + ], + [ + "08:30", + "13050.0" + ], + [ + "08:40", + "12876.0" + ], + [ + "08:49", + "13326.0" + ], + [ + "09:00", + "12780.0" + ], + [ + "09:10", + "13242.0" + ], + [ + "09:19", + "12834.0" + ], + [ + "09:30", + "15090.0" + ], + [ + "09:40", + "15396.0" + ], + [ + "09:49", + "15480.0" + ], + [ + "10:00", + "15306.0" + ], + [ + "10:10", + "15174.0" + ], + [ + "10:19", + "14628.0" + ], + [ + "10:30", + "16152.0" + ], + [ + "10:40", + "16536.0" + ], + [ + "10:49", + "16584.0" + ], + [ + "11:00", + "14514.0" + ], + [ + "11:10", + "12984.0" + ], + [ + "11:19", + "13344.0" + ], + [ + "11:30", + "10836.0" + ], + [ + "11:40", + "10410.0" + ], + [ + "11:49", + "10752.0" + ], + [ + "12:00", + "7770.0" + ], + [ + "12:10", + "7818.0" + ], + [ + "12:19", + "8202.0" + ], + [ + "12:30", + "7902.0" + ], + [ + "12:40", + "8166.0" + ], + [ + "12:49", + "7788.0" + ], + [ + "13:00", + "8634.0" + ], + [ + "13:10", + "8412.0" + ], + [ + "13:19", + "8832.0" + ], + [ + "13:30", + "8892.0" + ], + [ + "13:40", + "9390.0" + ], + [ + "13:49", + "9312.0" + ], + [ + "14:00", + "10572.0" + ], + [ + "14:10", + "10848.0" + ], + [ + "14:19", + "10578.0" + ], + [ + "14:30", + "12906.0" + ], + [ + "14:40", + "13248.0" + ], + [ + "14:49", + "13338.0" + ], + [ + "15:00", + "16362.0" + ], + [ + "15:10", + "16206.0" + ], + [ + "15:19", + "17142.0" + ], + [ + "15:30", + "16152.0" + ], + [ + "15:40", + "15510.0" + ], + [ + "15:49", + "15978.0" + ], + [ + "16:00", + "18336.0" + ], + [ + "16:10", + "18156.0" + ], + [ + "16:19", + "18168.0" + ], + [ + "16:30", + "14376.0" + ], + [ + "16:40", + "14388.0" + ], + [ + "16:49", + "14310.0" + ], + [ + "17:00", + "15294.0" + ], + [ + "17:10", + "15126.0" + ], + [ + "17:19", + "15882.0" + ], + [ + "17:30", + "16320.0" + ], + [ + "17:40", + "15726.0" + ], + [ + "17:49", + "15798.0" + ], + [ + "18:00", + "14802.0" + ], + [ + "18:10", + "14646.0" + ], + [ + "18:19", + "14628.0" + ], + [ + "18:30", + "14142.0" + ], + [ + "18:40", + "14844.0" + ], + [ + "18:49", + "14862.0" + ], + [ + "19:00", + "14838.0" + ], + [ + "19:10", + "14886.0" + ], + [ + "19:19", + "15006.0" + ], + [ + "19:30", + "12102.0" + ], + [ + "19:40", + "12054.0" + ], + [ + "19:49", + "12732.0" + ], + [ + "20:00", + "12090.0" + ], + [ + "20:10", + "12036.0" + ], + [ + "20:19", + "12096.0" + ], + [ + "20:30", + "9792.0" + ], + [ + "20:40", + "10584.0" + ], + [ + "20:49", + "10536.0" + ], + [ + "21:00", + "10242.0" + ], + [ + "21:10", + "11400.0" + ], + [ + "21:19", + "10530.0" + ], + [ + "21:30", + "6924.0" + ], + [ + "21:40", + "6780.0" + ], + [ + "21:49", + "6570.0" + ], + [ + "22:00", + "5808.0" + ], + [ + "22:10", + "6840.0" + ], + [ + "22:19", + "6264.0" + ], + [ + "22:30", + "4332.0" + ], + [ + "22:40", + "3852.0" + ], + [ + "22:49", + "4008.0" + ], + [ + "23:00", + "4794.0" + ], + [ + "23:10", + "4512.0" + ], + [ + "23:19", + "4380.0" + ], + [ + "23:30", + "3366.0" + ], + [ + "23:40", + "3222.0" + ], + [ + "23:49", + "3348.0" + ], + [ + "00:00", + "1308.0" + ], + [ + "00:10", + "1134.0" + ], + [ + "00:19", + "1122.0" + ], + [ + "00:30", + "666.0" + ], + [ + "00:40", + "720.0" + ], + [ + "00:49", + "702.0" + ], + [ + "01:00", + "510.0" + ], + [ + "01:10", + "570.0" + ], + [ + "01:19", + "618.0" + ], + [ + "01:30", + "606.0" + ], + [ + "01:40", + "408.0" + ], + [ + "01:49", + "528.0" + ], + [ + "02:00", + "474.0" + ], + [ + "02:10", + "342.0" + ], + [ + "02:19", + "426.0" + ], + [ + "02:30", + "384.0" + ], + [ + "02:40", + "396.0" + ], + [ + "02:49", + "390.0" + ], + [ + "03:00", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 300, + 282, + 234, + 270, + 342, + 330, + 384, + 360, + 450, + 480, + 498, + 576, + 1014, + 1302, + 1296, + 2016, + 1644, + 2028, + 3042, + 3402, + 3744, + 8136, + 8430, + 8478, + 12432, + 12216, + 12546, + 14910, + 14982, + 14856, + 14022, + 13818, + 14448, + 13050, + 12876, + 13326, + 12780, + 13242, + 12834, + 15090, + 15396, + 15480, + 15306, + 15174, + 14628, + 16152, + 16536, + 16584, + 14514, + 12984, + 13344, + 10836, + 10410, + 10752, + 7770, + 7818, + 8202, + 7902, + 8166, + 7788, + 8634, + 8412, + 8832, + 8892, + 9390, + 9312, + 10572, + 10848, + 10578, + 12906, + 13248, + 13338, + 16362, + 16206, + 17142, + 16152, + 15510, + 15978, + 18336, + 18156, + 18168, + 14376, + 14388, + 14310, + 15294, + 15126, + 15882, + 16320, + 15726, + 15798, + 14802, + 14646, + 14628, + 14142, + 14844, + 14862, + 14838, + 14886, + 15006, + 12102, + 12054, + 12732, + 12090, + 12036, + 12096, + 9792, + 10584, + 10536, + 10242, + 11400, + 10530, + 6924, + 6780, + 6570, + 5808, + 6840, + 6264, + 4332, + 3852, + 4008, + 4794, + 4512, + 4380, + 3366, + 3222, + 3348, + 1308, + 1134, + 1122, + 666, + 720, + 702, + 510, + 570, + 618, + 606, + 408, + 528, + 474, + 342, + 426, + 384, + 396, + 390, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "15108.0" + ], + [ + "03:10", + "16686.0" + ], + [ + "03:19", + "17430.0" + ], + [ + "03:30", + "21738.0" + ], + [ + "03:40", + "22500.0" + ], + [ + "03:49", + "22878.0" + ], + [ + "04:00", + "32250.0" + ], + [ + "04:10", + "32772.0" + ], + [ + "04:19", + "35040.0" + ], + [ + "04:30", + "51624.0" + ], + [ + "04:40", + "55566.0" + ], + [ + "04:49", + "56688.0" + ], + [ + "05:00", + "91578.0" + ], + [ + "05:10", + "98028.0" + ], + [ + "05:19", + "100716.0" + ], + [ + "05:30", + "168684.0" + ], + [ + "05:40", + "185334.0" + ], + [ + "05:49", + "190122.0" + ], + [ + "06:00", + "356964.0" + ], + [ + "06:10", + "385404.0" + ], + [ + "06:19", + "398280.0" + ], + [ + "06:30", + "951072.0" + ], + [ + "06:40", + "1032420.0" + ], + [ + "06:49", + "1062438.0" + ], + [ + "07:00", + "1486602.0" + ], + [ + "07:10", + "1546392.0" + ], + [ + "07:19", + "1596408.0" + ], + [ + "07:30", + "1856034.0" + ], + [ + "07:40", + "1922376.0" + ], + [ + "07:49", + "1910208.0" + ], + [ + "08:00", + "1545720.0" + ], + [ + "08:10", + "1474476.0" + ], + [ + "08:19", + "1450002.0" + ], + [ + "08:30", + "1244388.0" + ], + [ + "08:40", + "1192590.0" + ], + [ + "08:49", + "1179018.0" + ], + [ + "09:00", + "991614.0" + ], + [ + "09:10", + "943956.0" + ], + [ + "09:19", + "933132.0" + ], + [ + "09:30", + "874074.0" + ], + [ + "09:40", + "858438.0" + ], + [ + "09:49", + "855078.0" + ], + [ + "10:00", + "803130.0" + ], + [ + "10:10", + "793548.0" + ], + [ + "10:19", + "792876.0" + ], + [ + "10:30", + "795840.0" + ], + [ + "10:40", + "792354.0" + ], + [ + "10:49", + "793632.0" + ], + [ + "11:00", + "827196.0" + ], + [ + "11:10", + "830454.0" + ], + [ + "11:19", + "823950.0" + ], + [ + "11:30", + "903738.0" + ], + [ + "11:40", + "928734.0" + ], + [ + "11:49", + "924420.0" + ], + [ + "12:00", + "940620.0" + ], + [ + "12:10", + "938316.0" + ], + [ + "12:19", + "936966.0" + ], + [ + "12:30", + "919344.0" + ], + [ + "12:40", + "913644.0" + ], + [ + "12:49", + "911358.0" + ], + [ + "13:00", + "901662.0" + ], + [ + "13:10", + "906714.0" + ], + [ + "13:19", + "906066.0" + ], + [ + "13:30", + "889128.0" + ], + [ + "13:40", + "893358.0" + ], + [ + "13:49", + "896412.0" + ], + [ + "14:00", + "961950.0" + ], + [ + "14:10", + "990948.0" + ], + [ + "14:19", + "997038.0" + ], + [ + "14:30", + "1121838.0" + ], + [ + "14:40", + "1163148.0" + ], + [ + "14:49", + "1165158.0" + ], + [ + "15:00", + "1353432.0" + ], + [ + "15:10", + "1402662.0" + ], + [ + "15:19", + "1416876.0" + ], + [ + "15:30", + "1431684.0" + ], + [ + "15:40", + "1441548.0" + ], + [ + "15:49", + "1437936.0" + ], + [ + "16:00", + "1501938.0" + ], + [ + "16:10", + "1540290.0" + ], + [ + "16:19", + "1540914.0" + ], + [ + "16:30", + "1262040.0" + ], + [ + "16:40", + "1225374.0" + ], + [ + "16:49", + "1212678.0" + ], + [ + "17:00", + "1203348.0" + ], + [ + "17:10", + "1195398.0" + ], + [ + "17:19", + "1205922.0" + ], + [ + "17:30", + "1175514.0" + ], + [ + "17:40", + "1161246.0" + ], + [ + "17:49", + "1165902.0" + ], + [ + "18:00", + "1046286.0" + ], + [ + "18:10", + "1011696.0" + ], + [ + "18:19", + "1000950.0" + ], + [ + "18:30", + "937206.0" + ], + [ + "18:40", + "912534.0" + ], + [ + "18:49", + "903678.0" + ], + [ + "19:00", + "770502.0" + ], + [ + "19:10", + "729408.0" + ], + [ + "19:19", + "719274.0" + ], + [ + "19:30", + "644388.0" + ], + [ + "19:40", + "621594.0" + ], + [ + "19:49", + "611928.0" + ], + [ + "20:00", + "549522.0" + ], + [ + "20:10", + "533286.0" + ], + [ + "20:19", + "530340.0" + ], + [ + "20:30", + "486240.0" + ], + [ + "20:40", + "473910.0" + ], + [ + "20:49", + "471066.0" + ], + [ + "21:00", + "414732.0" + ], + [ + "21:10", + "392334.0" + ], + [ + "21:19", + "391812.0" + ], + [ + "21:30", + "292800.0" + ], + [ + "21:40", + "264372.0" + ], + [ + "21:49", + "254046.0" + ], + [ + "22:00", + "213384.0" + ], + [ + "22:10", + "202614.0" + ], + [ + "22:19", + "196950.0" + ], + [ + "22:30", + "161868.0" + ], + [ + "22:40", + "153198.0" + ], + [ + "22:49", + "148416.0" + ], + [ + "23:00", + "124794.0" + ], + [ + "23:10", + "119862.0" + ], + [ + "23:19", + "115896.0" + ], + [ + "23:30", + "99834.0" + ], + [ + "23:40", + "96594.0" + ], + [ + "23:49", + "95826.0" + ], + [ + "00:00", + "76788.0" + ], + [ + "00:10", + "69138.0" + ], + [ + "00:19", + "65136.0" + ], + [ + "00:30", + "55968.0" + ], + [ + "00:40", + "52050.0" + ], + [ + "00:49", + "51336.0" + ], + [ + "01:00", + "44562.0" + ], + [ + "01:10", + "43020.0" + ], + [ + "01:19", + "41706.0" + ], + [ + "01:30", + "34278.0" + ], + [ + "01:40", + "32988.0" + ], + [ + "01:49", + "33324.0" + ], + [ + "02:00", + "26400.0" + ], + [ + "02:10", + "25824.0" + ], + [ + "02:19", + "24822.0" + ], + [ + "02:30", + "20010.0" + ], + [ + "02:40", + "19332.0" + ], + [ + "02:49", + "18468.0" + ], + [ + "03:00", + "5754.0" + ], + [ + "03:10", + "1776.0" + ], + [ + "03:19", + "516.0" + ], + [ + "03:30", + "258.0" + ], + [ + "03:40", + "90.0" + ], + [ + "03:49", + "102.0" + ], + [ + "04:00", + "90.0" + ], + [ + "04:10", + "54.0" + ], + [ + "04:19", + "36.0" + ], + [ + "04:30", + "48.0" + ], + [ + "04:40", + "18.0" + ], + [ + "04:49", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332, + 25.5, + 25.666666666666668, + 25.833333333333332 + ], + "y": [ + 15108, + 16686, + 17430, + 21738, + 22500, + 22878, + 32250, + 32772, + 35040, + 51624, + 55566, + 56688, + 91578, + 98028, + 100716, + 168684, + 185334, + 190122, + 356964, + 385404, + 398280, + 951072, + 1032420, + 1062438, + 1486602, + 1546392, + 1596408, + 1856034, + 1922376, + 1910208, + 1545720, + 1474476, + 1450002, + 1244388, + 1192590, + 1179018, + 991614, + 943956, + 933132, + 874074, + 858438, + 855078, + 803130, + 793548, + 792876, + 795840, + 792354, + 793632, + 827196, + 830454, + 823950, + 903738, + 928734, + 924420, + 940620, + 938316, + 936966, + 919344, + 913644, + 911358, + 901662, + 906714, + 906066, + 889128, + 893358, + 896412, + 961950, + 990948, + 997038, + 1121838, + 1163148, + 1165158, + 1353432, + 1402662, + 1416876, + 1431684, + 1441548, + 1437936, + 1501938, + 1540290, + 1540914, + 1262040, + 1225374, + 1212678, + 1203348, + 1195398, + 1205922, + 1175514, + 1161246, + 1165902, + 1046286, + 1011696, + 1000950, + 937206, + 912534, + 903678, + 770502, + 729408, + 719274, + 644388, + 621594, + 611928, + 549522, + 533286, + 530340, + 486240, + 473910, + 471066, + 414732, + 392334, + 391812, + 292800, + 264372, + 254046, + 213384, + 202614, + 196950, + 161868, + 153198, + 148416, + 124794, + 119862, + 115896, + 99834, + 96594, + 95826, + 76788, + 69138, + 65136, + 55968, + 52050, + 51336, + 44562, + 43020, + 41706, + 34278, + 32988, + 33324, + 26400, + 25824, + 24822, + 20010, + 19332, + 18468, + 5754, + 1776, + 516, + 258, + 90, + 102, + 90, + 54, + 36, + 48, + 18, + 6 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Number of vehicle trips serviced (REAL) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Veh trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_requested_trips_per_hour(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " Requested veh trips/hour by time of day.\n", + " Requested veh trips = veh trips with passengers onboard:\n", + " - trip_i or trip_j non-null\n", + " - is_deadhead == False\n", + " Scaled to veh trips/hour using the scenario’s bin size.\n", + " \"\"\"\n", + " requested_mask = (\n", + " (new_df[\"trip_i\"].notna() | new_df[\"trip_j\"].notna())\n", + " & (new_df[\"is_deadhead\"] == False)\n", + " )\n", + "\n", + " bins = pd.to_numeric(new_df.loc[requested_mask, \"depart_bin\"], errors=\"coerce\").dropna().astype(int)\n", + " if bins.empty:\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " counts = (\n", + " bins.value_counts()\n", + " .sort_index()\n", + " .reindex(pd.RangeIndex(0, bins.max() + 1), fill_value=0)\n", + " )\n", + "\n", + " # normalize to trips/hour according to bin size\n", + " factor = 60.0 / bin_minutes\n", + " rate = counts * factor\n", + "\n", + " times = start_time + pd.to_timedelta(rate.index * bin_minutes, unit=\"m\")\n", + " vals = rate.values\n", + "\n", + " df = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " df[\"hover\"] = [\n", + " f\"Veh trips/hour: {v:,.2f} (bin trips: {int(c):,}, bin={bin_minutes} min)\"\n", + " for v, c in zip(vals, counts.values)\n", + " ]\n", + " return df\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_requested_trips_per_hour,\n", + " \"Number of vehicle trips serviced (REAL)\",\n", + " \"Veh trips per hour\",\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "REAL veh trips totals — time_bin_size\n", + " requested_trips all_trips share_real\n", + "scenario \n", + "base 213596 428566 49.84%\n", + "timebin_5 213329 429146 49.71%\n", + "timebin_15 213802 427906 49.96%\n", + "\n", + "REAL veh trips totals — max_detour\n", + " requested_trips all_trips share_real\n", + "scenario \n", + "base 213596 428566 49.84%\n", + "detour_5 212822 428575 49.66%\n", + "detour_10 213148 428570 49.73%\n", + "detour_20 213808 428617 49.88%\n", + "\n", + "REAL veh trips totals — max_occupancy\n", + " requested_trips all_trips share_real\n", + "scenario \n", + "base 213596 428566 49.84%\n", + "occ_6 199956 400900 49.88%\n", + "occ_8 192021 384969 49.88%\n", + "\n", + "REAL veh trips totals — tnc_shared_demand\n", + " requested_trips all_trips share_real\n", + "scenario \n", + "base 213596 428566 49.84%\n", + "shift_to_all_shared_tnc 16322851 22328970 73.1%\n" + ] + } + ], + "source": [ + "def metric_requested_trip_totals(new_df, pooled_df):\n", + " requested_mask = (\n", + " (new_df[\"trip_i\"].notna() | new_df[\"trip_j\"].notna())\n", + " & (new_df[\"is_deadhead\"] == False)\n", + " )\n", + " total_real = int(requested_mask.sum())\n", + " total_trips = len(new_df)\n", + " return {\n", + " \"requested_trips\": total_real,\n", + " \"all_trips\": total_trips,\n", + " \"share_real\": total_real / total_trips if total_trips else np.nan,\n", + " }\n", + "\n", + "run_scalar_metric(metric_requested_trip_totals, \"REAL veh trips totals\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Share of deadheading trips (by trips and VMT)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Share of deadheading trips — time_bin_size\n", + " dead_trips total_trips share_trips dead_vmt total_vmt share_vmt\n", + "scenario \n", + "base 214970 428566 50.16% 237333.623497 1.874488e+06 12.66%\n", + "timebin_5 215817 429146 50.29% 267909.644660 1.905020e+06 14.06%\n", + "timebin_15 214104 427906 50.04% 222415.540618 1.859414e+06 11.96%\n", + "\n", + "Share of deadheading trips — max_detour\n", + " dead_trips total_trips share_trips dead_vmt total_vmt share_vmt\n", + "scenario \n", + "base 214970 428566 50.16% 237333.623497 1.874488e+06 12.66%\n", + "detour_5 215753 428575 50.34% 238908.533389 1.875645e+06 12.74%\n", + "detour_10 215422 428570 50.27% 238535.462350 1.875214e+06 12.72%\n", + "detour_20 214809 428617 50.12% 238031.593581 1.875890e+06 12.69%\n", + "\n", + "Share of deadheading trips — max_occupancy\n", + " dead_trips total_trips share_trips dead_vmt total_vmt share_vmt\n", + "scenario \n", + "base 214970 428566 50.16% 237333.623497 1.874488e+06 12.66%\n", + "occ_6 200944 400900 50.12% 218815.209416 1.754936e+06 12.47%\n", + "occ_8 192948 384969 50.12% 208050.437002 1.697862e+06 12.25%\n", + "\n", + "Share of deadheading trips — tnc_shared_demand\n", + " dead_trips total_trips share_trips dead_vmt total_vmt share_vmt\n", + "scenario \n", + "base 214970 428566 50.16% 2.373336e+05 1.874488e+06 12.66%\n", + "shift_to_all_shared_tnc 6006119 22328970 26.9% 5.522598e+06 5.502521e+07 10.04%\n" + ] + } + ], + "source": [ + "def metric_deadhead_share(new_df, pooled_df):\n", + " d = new_df.copy()\n", + " d[dist_col_new] = pd.to_numeric(d[dist_col_new], errors=\"coerce\").fillna(0.0)\n", + "\n", + " total_trips = len(d)\n", + " dead_trips = int(d[\"is_deadhead\"].sum())\n", + " share_trips = dead_trips / total_trips if total_trips else np.nan\n", + "\n", + " dead_vmt = d.loc[d[\"is_deadhead\"], dist_col_new].sum()\n", + " total_vmt = d[dist_col_new].sum()\n", + " share_vmt = dead_vmt / total_vmt if total_vmt else np.nan\n", + "\n", + " return {\n", + " \"dead_trips\": dead_trips,\n", + " \"total_trips\": total_trips,\n", + " \"share_trips\": share_trips,\n", + " \"dead_vmt\": dead_vmt,\n", + " \"total_vmt\": total_vmt,\n", + " \"share_vmt\": share_vmt,\n", + " }\n", + "\n", + "run_scalar_metric(metric_deadhead_share, \"Share of deadheading trips\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Number and VMT of all veh trips made by TNCs (per hour)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "786.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "864.0" + ], + [ + "04:30", + "990.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1176.0" + ], + [ + "05:00", + "2154.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3384.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6480.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7440.0" + ], + [ + "06:30", + "16296.0" + ], + [ + "06:40", + "16722.0" + ], + [ + "06:49", + "17016.0" + ], + [ + "07:00", + "24396.0" + ], + [ + "07:10", + "24486.0" + ], + [ + "07:19", + "24936.0" + ], + [ + "07:30", + "29712.0" + ], + [ + "07:40", + "29790.0" + ], + [ + "07:49", + "29160.0" + ], + [ + "08:00", + "27996.0" + ], + [ + "08:10", + "27528.0" + ], + [ + "08:19", + "28596.0" + ], + [ + "08:30", + "25830.0" + ], + [ + "08:40", + "25776.0" + ], + [ + "08:49", + "26508.0" + ], + [ + "09:00", + "25680.0" + ], + [ + "09:10", + "26220.0" + ], + [ + "09:19", + "25602.0" + ], + [ + "09:30", + "30732.0" + ], + [ + "09:40", + "30474.0" + ], + [ + "09:49", + "31008.0" + ], + [ + "10:00", + "30210.0" + ], + [ + "10:10", + "30048.0" + ], + [ + "10:19", + "29256.0" + ], + [ + "10:30", + "32334.0" + ], + [ + "10:40", + "33186.0" + ], + [ + "10:49", + "33054.0" + ], + [ + "11:00", + "28254.0" + ], + [ + "11:10", + "25770.0" + ], + [ + "11:19", + "26694.0" + ], + [ + "11:30", + "21366.0" + ], + [ + "11:40", + "20658.0" + ], + [ + "11:49", + "21486.0" + ], + [ + "12:00", + "15354.0" + ], + [ + "12:10", + "15534.0" + ], + [ + "12:19", + "16260.0" + ], + [ + "12:30", + "15834.0" + ], + [ + "12:40", + "16224.0" + ], + [ + "12:49", + "15732.0" + ], + [ + "13:00", + "16938.0" + ], + [ + "13:10", + "16782.0" + ], + [ + "13:19", + "17430.0" + ], + [ + "13:30", + "18186.0" + ], + [ + "13:40", + "18618.0" + ], + [ + "13:49", + "18432.0" + ], + [ + "14:00", + "21084.0" + ], + [ + "14:10", + "21834.0" + ], + [ + "14:19", + "20808.0" + ], + [ + "14:30", + "26136.0" + ], + [ + "14:40", + "26226.0" + ], + [ + "14:49", + "26538.0" + ], + [ + "15:00", + "32988.0" + ], + [ + "15:10", + "32244.0" + ], + [ + "15:19", + "34296.0" + ], + [ + "15:30", + "32052.0" + ], + [ + "15:40", + "31014.0" + ], + [ + "15:49", + "31884.0" + ], + [ + "16:00", + "36690.0" + ], + [ + "16:10", + "36420.0" + ], + [ + "16:19", + "36420.0" + ], + [ + "16:30", + "28092.0" + ], + [ + "16:40", + "28866.0" + ], + [ + "16:49", + "28620.0" + ], + [ + "17:00", + "31218.0" + ], + [ + "17:10", + "30618.0" + ], + [ + "17:19", + "31866.0" + ], + [ + "17:30", + "32112.0" + ], + [ + "17:40", + "31824.0" + ], + [ + "17:49", + "32040.0" + ], + [ + "18:00", + "29592.0" + ], + [ + "18:10", + "29544.0" + ], + [ + "18:19", + "29412.0" + ], + [ + "18:30", + "28740.0" + ], + [ + "18:40", + "30060.0" + ], + [ + "18:49", + "30138.0" + ], + [ + "19:00", + "30312.0" + ], + [ + "19:10", + "30048.0" + ], + [ + "19:19", + "30498.0" + ], + [ + "19:30", + "24486.0" + ], + [ + "19:40", + "24588.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24486.0" + ], + [ + "20:10", + "24750.0" + ], + [ + "20:19", + "24216.0" + ], + [ + "20:30", + "20298.0" + ], + [ + "20:40", + "21474.0" + ], + [ + "20:49", + "21396.0" + ], + [ + "21:00", + "21270.0" + ], + [ + "21:10", + "23052.0" + ], + [ + "21:19", + "21462.0" + ], + [ + "21:30", + "13836.0" + ], + [ + "21:40", + "14346.0" + ], + [ + "21:49", + "13614.0" + ], + [ + "22:00", + "12006.0" + ], + [ + "22:10", + "13608.0" + ], + [ + "22:19", + "12732.0" + ], + [ + "22:30", + "8760.0" + ], + [ + "22:40", + "8364.0" + ], + [ + "22:49", + "8340.0" + ], + [ + "23:00", + "9390.0" + ], + [ + "23:10", + "9264.0" + ], + [ + "23:19", + "8982.0" + ], + [ + "23:30", + "6834.0" + ], + [ + "23:40", + "6570.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2382.0" + ], + [ + "00:19", + "2346.0" + ], + [ + "00:30", + "1416.0" + ], + [ + "00:40", + "1506.0" + ], + [ + "00:49", + "1470.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1206.0" + ], + [ + "01:19", + "1278.0" + ], + [ + "01:30", + "1260.0" + ], + [ + "01:40", + "858.0" + ], + [ + "01:49", + "1086.0" + ], + [ + "02:00", + "984.0" + ], + [ + "02:10", + "738.0" + ], + [ + "02:19", + "906.0" + ], + [ + "02:30", + "780.0" + ], + [ + "02:40", + "846.0" + ], + [ + "02:49", + "816.0" + ], + [ + "03:00", + "54.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 786, + 762, + 864, + 990, + 1008, + 1176, + 2154, + 2592, + 2544, + 4086, + 3384, + 3912, + 6480, + 6798, + 7440, + 16296, + 16722, + 17016, + 24396, + 24486, + 24936, + 29712, + 29790, + 29160, + 27996, + 27528, + 28596, + 25830, + 25776, + 26508, + 25680, + 26220, + 25602, + 30732, + 30474, + 31008, + 30210, + 30048, + 29256, + 32334, + 33186, + 33054, + 28254, + 25770, + 26694, + 21366, + 20658, + 21486, + 15354, + 15534, + 16260, + 15834, + 16224, + 15732, + 16938, + 16782, + 17430, + 18186, + 18618, + 18432, + 21084, + 21834, + 20808, + 26136, + 26226, + 26538, + 32988, + 32244, + 34296, + 32052, + 31014, + 31884, + 36690, + 36420, + 36420, + 28092, + 28866, + 28620, + 31218, + 30618, + 31866, + 32112, + 31824, + 32040, + 29592, + 29544, + 29412, + 28740, + 30060, + 30138, + 30312, + 30048, + 30498, + 24486, + 24588, + 25842, + 24486, + 24750, + 24216, + 20298, + 21474, + 21396, + 21270, + 23052, + 21462, + 13836, + 14346, + 13614, + 12006, + 13608, + 12732, + 8760, + 8364, + 8340, + 9390, + 9264, + 8982, + 6834, + 6570, + 6972, + 2526, + 2382, + 2346, + 1416, + 1506, + 1470, + 1068, + 1206, + 1278, + 1260, + 858, + 1086, + 984, + 738, + 906, + 780, + 846, + 816, + 54, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "372.0" + ], + [ + "03:04", + "828.0" + ], + [ + "03:10", + "624.0" + ], + [ + "03:15", + "516.0" + ], + [ + "03:19", + "348.0" + ], + [ + "03:25", + "588.0" + ], + [ + "03:30", + "612.0" + ], + [ + "03:34", + "588.0" + ], + [ + "03:40", + "768.0" + ], + [ + "03:45", + "504.0" + ], + [ + "03:49", + "744.0" + ], + [ + "03:55", + "588.0" + ], + [ + "04:00", + "636.0" + ], + [ + "04:04", + "852.0" + ], + [ + "04:10", + "840.0" + ], + [ + "04:15", + "804.0" + ], + [ + "04:19", + "732.0" + ], + [ + "04:25", + "936.0" + ], + [ + "04:30", + "1104.0" + ], + [ + "04:34", + "852.0" + ], + [ + "04:40", + "948.0" + ], + [ + "04:45", + "1044.0" + ], + [ + "04:49", + "1164.0" + ], + [ + "04:55", + "1152.0" + ], + [ + "05:00", + "1992.0" + ], + [ + "05:04", + "2196.0" + ], + [ + "05:10", + "2712.0" + ], + [ + "05:15", + "2400.0" + ], + [ + "05:19", + "2364.0" + ], + [ + "05:25", + "2592.0" + ], + [ + "05:30", + "3600.0" + ], + [ + "05:34", + "4644.0" + ], + [ + "05:40", + "3432.0" + ], + [ + "05:45", + "3084.0" + ], + [ + "05:49", + "4080.0" + ], + [ + "05:55", + "3792.0" + ], + [ + "06:00", + "6228.0" + ], + [ + "06:04", + "6372.0" + ], + [ + "06:10", + "7128.0" + ], + [ + "06:15", + "6696.0" + ], + [ + "06:19", + "7020.0" + ], + [ + "06:25", + "8004.0" + ], + [ + "06:30", + "15420.0" + ], + [ + "06:34", + "16140.0" + ], + [ + "06:40", + "16656.0" + ], + [ + "06:45", + "17424.0" + ], + [ + "06:49", + "16740.0" + ], + [ + "06:55", + "16764.0" + ], + [ + "07:00", + "24312.0" + ], + [ + "07:04", + "24072.0" + ], + [ + "07:10", + "24576.0" + ], + [ + "07:15", + "24240.0" + ], + [ + "07:19", + "24384.0" + ], + [ + "07:25", + "24948.0" + ], + [ + "07:30", + "29172.0" + ], + [ + "07:34", + "30636.0" + ], + [ + "07:40", + "29868.0" + ], + [ + "07:45", + "29604.0" + ], + [ + "07:49", + "29244.0" + ], + [ + "07:55", + "29256.0" + ], + [ + "08:00", + "27612.0" + ], + [ + "08:04", + "28488.0" + ], + [ + "08:10", + "27720.0" + ], + [ + "08:15", + "28008.0" + ], + [ + "08:19", + "27840.0" + ], + [ + "08:25", + "28308.0" + ], + [ + "08:30", + "26532.0" + ], + [ + "08:34", + "25932.0" + ], + [ + "08:40", + "25968.0" + ], + [ + "08:45", + "25080.0" + ], + [ + "08:49", + "27048.0" + ], + [ + "08:55", + "26172.0" + ], + [ + "09:00", + "25836.0" + ], + [ + "09:04", + "25500.0" + ], + [ + "09:10", + "25740.0" + ], + [ + "09:15", + "26652.0" + ], + [ + "09:19", + "24708.0" + ], + [ + "09:25", + "25776.0" + ], + [ + "09:30", + "31056.0" + ], + [ + "09:34", + "30900.0" + ], + [ + "09:40", + "29892.0" + ], + [ + "09:45", + "30420.0" + ], + [ + "09:49", + "31920.0" + ], + [ + "09:55", + "30036.0" + ], + [ + "10:00", + "30744.0" + ], + [ + "10:04", + "29892.0" + ], + [ + "10:10", + "30204.0" + ], + [ + "10:15", + "29652.0" + ], + [ + "10:19", + "29028.0" + ], + [ + "10:25", + "29520.0" + ], + [ + "10:30", + "32292.0" + ], + [ + "10:34", + "31920.0" + ], + [ + "10:40", + "33348.0" + ], + [ + "10:45", + "32724.0" + ], + [ + "10:49", + "33732.0" + ], + [ + "10:55", + "32868.0" + ], + [ + "11:00", + "28812.0" + ], + [ + "11:04", + "28536.0" + ], + [ + "11:10", + "27456.0" + ], + [ + "11:15", + "24876.0" + ], + [ + "11:19", + "27072.0" + ], + [ + "11:25", + "26196.0" + ], + [ + "11:30", + "21792.0" + ], + [ + "11:34", + "21456.0" + ], + [ + "11:40", + "21396.0" + ], + [ + "11:45", + "20136.0" + ], + [ + "11:49", + "20928.0" + ], + [ + "11:55", + "21864.0" + ], + [ + "12:00", + "15096.0" + ], + [ + "12:04", + "16140.0" + ], + [ + "12:10", + "15384.0" + ], + [ + "12:15", + "15780.0" + ], + [ + "12:19", + "16584.0" + ], + [ + "12:25", + "15648.0" + ], + [ + "12:30", + "16068.0" + ], + [ + "12:34", + "16116.0" + ], + [ + "12:40", + "15972.0" + ], + [ + "12:45", + "16296.0" + ], + [ + "12:49", + "15744.0" + ], + [ + "12:55", + "15996.0" + ], + [ + "13:00", + "16992.0" + ], + [ + "13:04", + "16452.0" + ], + [ + "13:10", + "17604.0" + ], + [ + "13:15", + "16284.0" + ], + [ + "13:19", + "18156.0" + ], + [ + "13:25", + "16704.0" + ], + [ + "13:30", + "18660.0" + ], + [ + "13:34", + "17928.0" + ], + [ + "13:40", + "18792.0" + ], + [ + "13:45", + "18696.0" + ], + [ + "13:49", + "17268.0" + ], + [ + "13:55", + "19020.0" + ], + [ + "14:00", + "21168.0" + ], + [ + "14:04", + "20640.0" + ], + [ + "14:10", + "22068.0" + ], + [ + "14:15", + "22296.0" + ], + [ + "14:19", + "20856.0" + ], + [ + "14:25", + "20712.0" + ], + [ + "14:30", + "26460.0" + ], + [ + "14:34", + "25584.0" + ], + [ + "14:40", + "26088.0" + ], + [ + "14:45", + "26484.0" + ], + [ + "14:49", + "26940.0" + ], + [ + "14:55", + "26316.0" + ], + [ + "15:00", + "31968.0" + ], + [ + "15:04", + "33252.0" + ], + [ + "15:10", + "32172.0" + ], + [ + "15:15", + "32292.0" + ], + [ + "15:19", + "35256.0" + ], + [ + "15:25", + "33372.0" + ], + [ + "15:30", + "33684.0" + ], + [ + "15:34", + "30936.0" + ], + [ + "15:40", + "30696.0" + ], + [ + "15:45", + "32172.0" + ], + [ + "15:49", + "31776.0" + ], + [ + "15:55", + "31632.0" + ], + [ + "16:00", + "37116.0" + ], + [ + "16:04", + "36048.0" + ], + [ + "16:10", + "35556.0" + ], + [ + "16:15", + "37332.0" + ], + [ + "16:19", + "37368.0" + ], + [ + "16:25", + "36084.0" + ], + [ + "16:30", + "29352.0" + ], + [ + "16:34", + "28788.0" + ], + [ + "16:40", + "29496.0" + ], + [ + "16:45", + "28788.0" + ], + [ + "16:49", + "28524.0" + ], + [ + "16:55", + "28668.0" + ], + [ + "17:00", + "30312.0" + ], + [ + "17:04", + "31200.0" + ], + [ + "17:10", + "30972.0" + ], + [ + "17:15", + "30672.0" + ], + [ + "17:19", + "33372.0" + ], + [ + "17:25", + "31992.0" + ], + [ + "17:30", + "32208.0" + ], + [ + "17:34", + "32028.0" + ], + [ + "17:40", + "31860.0" + ], + [ + "17:45", + "31884.0" + ], + [ + "17:49", + "33228.0" + ], + [ + "17:55", + "31548.0" + ], + [ + "18:00", + "30048.0" + ], + [ + "18:04", + "29748.0" + ], + [ + "18:10", + "28956.0" + ], + [ + "18:15", + "30600.0" + ], + [ + "18:19", + "29448.0" + ], + [ + "18:25", + "29436.0" + ], + [ + "18:30", + "27744.0" + ], + [ + "18:34", + "30096.0" + ], + [ + "18:40", + "29352.0" + ], + [ + "18:45", + "30852.0" + ], + [ + "18:49", + "30000.0" + ], + [ + "18:55", + "30432.0" + ], + [ + "19:00", + "30984.0" + ], + [ + "19:04", + "29964.0" + ], + [ + "19:10", + "29928.0" + ], + [ + "19:15", + "30216.0" + ], + [ + "19:19", + "30480.0" + ], + [ + "19:25", + "30708.0" + ], + [ + "19:30", + "25908.0" + ], + [ + "19:34", + "23904.0" + ], + [ + "19:40", + "24600.0" + ], + [ + "19:45", + "24708.0" + ], + [ + "19:49", + "25356.0" + ], + [ + "19:55", + "25608.0" + ], + [ + "20:00", + "24252.0" + ], + [ + "20:04", + "24900.0" + ], + [ + "20:10", + "24996.0" + ], + [ + "20:15", + "24876.0" + ], + [ + "20:19", + "23100.0" + ], + [ + "20:25", + "24492.0" + ], + [ + "20:30", + "20664.0" + ], + [ + "20:34", + "21024.0" + ], + [ + "20:40", + "21804.0" + ], + [ + "20:45", + "21600.0" + ], + [ + "20:49", + "20808.0" + ], + [ + "20:55", + "21108.0" + ], + [ + "21:00", + "22296.0" + ], + [ + "21:04", + "20544.0" + ], + [ + "21:10", + "22824.0" + ], + [ + "21:15", + "22932.0" + ], + [ + "21:19", + "21324.0" + ], + [ + "21:25", + "21672.0" + ], + [ + "21:30", + "14148.0" + ], + [ + "21:34", + "13632.0" + ], + [ + "21:40", + "14976.0" + ], + [ + "21:45", + "13572.0" + ], + [ + "21:49", + "12960.0" + ], + [ + "21:55", + "14328.0" + ], + [ + "22:00", + "11988.0" + ], + [ + "22:04", + "13128.0" + ], + [ + "22:10", + "12936.0" + ], + [ + "22:15", + "13116.0" + ], + [ + "22:19", + "12264.0" + ], + [ + "22:25", + "12888.0" + ], + [ + "22:30", + "9216.0" + ], + [ + "22:34", + "8052.0" + ], + [ + "22:40", + "8832.0" + ], + [ + "22:45", + "8448.0" + ], + [ + "22:49", + "8232.0" + ], + [ + "22:55", + "8808.0" + ], + [ + "23:00", + "9432.0" + ], + [ + "23:04", + "8592.0" + ], + [ + "23:10", + "9696.0" + ], + [ + "23:15", + "8844.0" + ], + [ + "23:19", + "8868.0" + ], + [ + "23:25", + "9396.0" + ], + [ + "23:30", + "6936.0" + ], + [ + "23:34", + "6696.0" + ], + [ + "23:40", + "6600.0" + ], + [ + "23:45", + "6420.0" + ], + [ + "23:49", + "6552.0" + ], + [ + "23:55", + "6972.0" + ], + [ + "00:00", + "3168.0" + ], + [ + "00:04", + "2364.0" + ], + [ + "00:10", + "2496.0" + ], + [ + "00:15", + "2328.0" + ], + [ + "00:19", + "2304.0" + ], + [ + "00:25", + "2184.0" + ], + [ + "00:30", + "1476.0" + ], + [ + "00:34", + "1392.0" + ], + [ + "00:40", + "1536.0" + ], + [ + "00:45", + "1476.0" + ], + [ + "00:49", + "1404.0" + ], + [ + "00:55", + "1440.0" + ], + [ + "01:00", + "984.0" + ], + [ + "01:04", + "1140.0" + ], + [ + "01:10", + "1176.0" + ], + [ + "01:15", + "1128.0" + ], + [ + "01:19", + "1164.0" + ], + [ + "01:25", + "1272.0" + ], + [ + "01:30", + "1188.0" + ], + [ + "01:34", + "1308.0" + ], + [ + "01:40", + "900.0" + ], + [ + "01:45", + "696.0" + ], + [ + "01:49", + "1044.0" + ], + [ + "01:55", + "1152.0" + ], + [ + "02:00", + "996.0" + ], + [ + "02:04", + "924.0" + ], + [ + "02:10", + "696.0" + ], + [ + "02:15", + "696.0" + ], + [ + "02:19", + "912.0" + ], + [ + "02:25", + "828.0" + ], + [ + "02:30", + "708.0" + ], + [ + "02:34", + "876.0" + ], + [ + "02:40", + "840.0" + ], + [ + "02:45", + "828.0" + ], + [ + "02:49", + "744.0" + ], + [ + "02:55", + "792.0" + ], + [ + "03:00", + "120.0" + ], + [ + "03:04", + "36.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:15", + "24.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:25", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:34", + "12.0" + ], + [ + "03:40", + "12.0" + ], + [ + "03:45", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "03:55", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:04", + "12.0" + ], + [ + "04:10", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25, + 23.333333333333332, + 23.416666666666668, + 23.5, + 23.583333333333332, + 23.666666666666668, + 23.75, + 23.833333333333332, + 23.916666666666668, + 24, + 24.083333333333332, + 24.166666666666668, + 24.25, + 24.333333333333332, + 24.416666666666668, + 24.5, + 24.583333333333332, + 24.666666666666668, + 24.75, + 24.833333333333332, + 24.916666666666668, + 25, + 25.083333333333332, + 25.166666666666668 + ], + "y": [ + 372, + 828, + 624, + 516, + 348, + 588, + 612, + 588, + 768, + 504, + 744, + 588, + 636, + 852, + 840, + 804, + 732, + 936, + 1104, + 852, + 948, + 1044, + 1164, + 1152, + 1992, + 2196, + 2712, + 2400, + 2364, + 2592, + 3600, + 4644, + 3432, + 3084, + 4080, + 3792, + 6228, + 6372, + 7128, + 6696, + 7020, + 8004, + 15420, + 16140, + 16656, + 17424, + 16740, + 16764, + 24312, + 24072, + 24576, + 24240, + 24384, + 24948, + 29172, + 30636, + 29868, + 29604, + 29244, + 29256, + 27612, + 28488, + 27720, + 28008, + 27840, + 28308, + 26532, + 25932, + 25968, + 25080, + 27048, + 26172, + 25836, + 25500, + 25740, + 26652, + 24708, + 25776, + 31056, + 30900, + 29892, + 30420, + 31920, + 30036, + 30744, + 29892, + 30204, + 29652, + 29028, + 29520, + 32292, + 31920, + 33348, + 32724, + 33732, + 32868, + 28812, + 28536, + 27456, + 24876, + 27072, + 26196, + 21792, + 21456, + 21396, + 20136, + 20928, + 21864, + 15096, + 16140, + 15384, + 15780, + 16584, + 15648, + 16068, + 16116, + 15972, + 16296, + 15744, + 15996, + 16992, + 16452, + 17604, + 16284, + 18156, + 16704, + 18660, + 17928, + 18792, + 18696, + 17268, + 19020, + 21168, + 20640, + 22068, + 22296, + 20856, + 20712, + 26460, + 25584, + 26088, + 26484, + 26940, + 26316, + 31968, + 33252, + 32172, + 32292, + 35256, + 33372, + 33684, + 30936, + 30696, + 32172, + 31776, + 31632, + 37116, + 36048, + 35556, + 37332, + 37368, + 36084, + 29352, + 28788, + 29496, + 28788, + 28524, + 28668, + 30312, + 31200, + 30972, + 30672, + 33372, + 31992, + 32208, + 32028, + 31860, + 31884, + 33228, + 31548, + 30048, + 29748, + 28956, + 30600, + 29448, + 29436, + 27744, + 30096, + 29352, + 30852, + 30000, + 30432, + 30984, + 29964, + 29928, + 30216, + 30480, + 30708, + 25908, + 23904, + 24600, + 24708, + 25356, + 25608, + 24252, + 24900, + 24996, + 24876, + 23100, + 24492, + 20664, + 21024, + 21804, + 21600, + 20808, + 21108, + 22296, + 20544, + 22824, + 22932, + 21324, + 21672, + 14148, + 13632, + 14976, + 13572, + 12960, + 14328, + 11988, + 13128, + 12936, + 13116, + 12264, + 12888, + 9216, + 8052, + 8832, + 8448, + 8232, + 8808, + 9432, + 8592, + 9696, + 8844, + 8868, + 9396, + 6936, + 6696, + 6600, + 6420, + 6552, + 6972, + 3168, + 2364, + 2496, + 2328, + 2304, + 2184, + 1476, + 1392, + 1536, + 1476, + 1404, + 1440, + 984, + 1140, + 1176, + 1128, + 1164, + 1272, + 1188, + 1308, + 900, + 696, + 1044, + 1152, + 996, + 924, + 696, + 696, + 912, + 828, + 708, + 876, + 840, + 828, + 744, + 792, + 120, + 36, + 12, + 24, + 0, + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 12, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "640.0" + ], + [ + "03:15", + "504.0" + ], + [ + "03:30", + "680.0" + ], + [ + "03:45", + "616.0" + ], + [ + "04:00", + "820.0" + ], + [ + "04:15", + "812.0" + ], + [ + "04:30", + "1024.0" + ], + [ + "04:45", + "1136.0" + ], + [ + "05:00", + "2464.0" + ], + [ + "05:15", + "2448.0" + ], + [ + "05:30", + "3976.0" + ], + [ + "05:45", + "3620.0" + ], + [ + "06:00", + "6964.0" + ], + [ + "06:15", + "7128.0" + ], + [ + "06:30", + "16296.0" + ], + [ + "06:45", + "17148.0" + ], + [ + "07:00", + "24172.0" + ], + [ + "07:15", + "24888.0" + ], + [ + "07:30", + "29916.0" + ], + [ + "07:45", + "29056.0" + ], + [ + "08:00", + "27964.0" + ], + [ + "08:15", + "28076.0" + ], + [ + "08:30", + "25880.0" + ], + [ + "08:45", + "26152.0" + ], + [ + "09:00", + "25728.0" + ], + [ + "09:15", + "26012.0" + ], + [ + "09:30", + "30988.0" + ], + [ + "09:45", + "30924.0" + ], + [ + "10:00", + "29836.0" + ], + [ + "10:15", + "29528.0" + ], + [ + "10:30", + "32828.0" + ], + [ + "10:45", + "33132.0" + ], + [ + "11:00", + "27376.0" + ], + [ + "11:15", + "25996.0" + ], + [ + "11:30", + "21228.0" + ], + [ + "11:45", + "21004.0" + ], + [ + "12:00", + "15260.0" + ], + [ + "12:15", + "16116.0" + ], + [ + "12:30", + "16040.0" + ], + [ + "12:45", + "16084.0" + ], + [ + "13:00", + "16824.0" + ], + [ + "13:15", + "17068.0" + ], + [ + "13:30", + "18652.0" + ], + [ + "13:45", + "18292.0" + ], + [ + "14:00", + "21460.0" + ], + [ + "14:15", + "20880.0" + ], + [ + "14:30", + "26248.0" + ], + [ + "14:45", + "26348.0" + ], + [ + "15:00", + "32792.0" + ], + [ + "15:15", + "33568.0" + ], + [ + "15:30", + "31160.0" + ], + [ + "15:45", + "31916.0" + ], + [ + "16:00", + "36316.0" + ], + [ + "16:15", + "36856.0" + ], + [ + "16:30", + "28100.0" + ], + [ + "16:45", + "28424.0" + ], + [ + "17:00", + "31336.0" + ], + [ + "17:15", + "31388.0" + ], + [ + "17:30", + "31724.0" + ], + [ + "17:45", + "31920.0" + ], + [ + "18:00", + "28948.0" + ], + [ + "18:15", + "29528.0" + ], + [ + "18:30", + "28788.0" + ], + [ + "18:45", + "30228.0" + ], + [ + "19:00", + "30088.0" + ], + [ + "19:15", + "30272.0" + ], + [ + "19:30", + "24284.0" + ], + [ + "19:45", + "25120.0" + ], + [ + "20:00", + "24648.0" + ], + [ + "20:15", + "23948.0" + ], + [ + "20:30", + "20876.0" + ], + [ + "20:45", + "21184.0" + ], + [ + "21:00", + "21948.0" + ], + [ + "21:15", + "21920.0" + ], + [ + "21:30", + "13984.0" + ], + [ + "21:45", + "13872.0" + ], + [ + "22:00", + "12448.0" + ], + [ + "22:15", + "12888.0" + ], + [ + "22:30", + "8604.0" + ], + [ + "22:45", + "8660.0" + ], + [ + "23:00", + "9256.0" + ], + [ + "23:15", + "9088.0" + ], + [ + "23:30", + "6652.0" + ], + [ + "23:45", + "6988.0" + ], + [ + "00:00", + "2344.0" + ], + [ + "00:15", + "2308.0" + ], + [ + "00:30", + "1460.0" + ], + [ + "00:45", + "1492.0" + ], + [ + "01:00", + "1200.0" + ], + [ + "01:15", + "1272.0" + ], + [ + "01:30", + "1136.0" + ], + [ + "01:45", + "1032.0" + ], + [ + "02:00", + "880.0" + ], + [ + "02:15", + "836.0" + ], + [ + "02:30", + "808.0" + ], + [ + "02:45", + "844.0" + ], + [ + "03:00", + "24.0" + ], + [ + "03:15", + "8.0" + ], + [ + "03:30", + "4.0" + ], + [ + "03:45", + "4.0" + ], + [ + "04:00", + "20.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25, + 23.5, + 23.75, + 24, + 24.25, + 24.5, + 24.75, + 25 + ], + "y": [ + 640, + 504, + 680, + 616, + 820, + 812, + 1024, + 1136, + 2464, + 2448, + 3976, + 3620, + 6964, + 7128, + 16296, + 17148, + 24172, + 24888, + 29916, + 29056, + 27964, + 28076, + 25880, + 26152, + 25728, + 26012, + 30988, + 30924, + 29836, + 29528, + 32828, + 33132, + 27376, + 25996, + 21228, + 21004, + 15260, + 16116, + 16040, + 16084, + 16824, + 17068, + 18652, + 18292, + 21460, + 20880, + 26248, + 26348, + 32792, + 33568, + 31160, + 31916, + 36316, + 36856, + 28100, + 28424, + 31336, + 31388, + 31724, + 31920, + 28948, + 29528, + 28788, + 30228, + 30088, + 30272, + 24284, + 25120, + 24648, + 23948, + 20876, + 21184, + 21948, + 21920, + 13984, + 13872, + 12448, + 12888, + 8604, + 8660, + 9256, + 9088, + 6652, + 6988, + 2344, + 2308, + 1460, + 1492, + 1200, + 1272, + 1136, + 1032, + 880, + 836, + 808, + 844, + 24, + 8, + 4, + 4, + 20 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC trips (normalized to trips/hour) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "786.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "864.0" + ], + [ + "04:30", + "990.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1176.0" + ], + [ + "05:00", + "2154.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3384.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6480.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7440.0" + ], + [ + "06:30", + "16296.0" + ], + [ + "06:40", + "16722.0" + ], + [ + "06:49", + "17016.0" + ], + [ + "07:00", + "24396.0" + ], + [ + "07:10", + "24486.0" + ], + [ + "07:19", + "24936.0" + ], + [ + "07:30", + "29712.0" + ], + [ + "07:40", + "29790.0" + ], + [ + "07:49", + "29160.0" + ], + [ + "08:00", + "27996.0" + ], + [ + "08:10", + "27528.0" + ], + [ + "08:19", + "28596.0" + ], + [ + "08:30", + "25830.0" + ], + [ + "08:40", + "25776.0" + ], + [ + "08:49", + "26508.0" + ], + [ + "09:00", + "25680.0" + ], + [ + "09:10", + "26220.0" + ], + [ + "09:19", + "25602.0" + ], + [ + "09:30", + "30732.0" + ], + [ + "09:40", + "30474.0" + ], + [ + "09:49", + "31008.0" + ], + [ + "10:00", + "30210.0" + ], + [ + "10:10", + "30048.0" + ], + [ + "10:19", + "29256.0" + ], + [ + "10:30", + "32334.0" + ], + [ + "10:40", + "33186.0" + ], + [ + "10:49", + "33054.0" + ], + [ + "11:00", + "28254.0" + ], + [ + "11:10", + "25770.0" + ], + [ + "11:19", + "26694.0" + ], + [ + "11:30", + "21366.0" + ], + [ + "11:40", + "20658.0" + ], + [ + "11:49", + "21486.0" + ], + [ + "12:00", + "15354.0" + ], + [ + "12:10", + "15534.0" + ], + [ + "12:19", + "16260.0" + ], + [ + "12:30", + "15834.0" + ], + [ + "12:40", + "16224.0" + ], + [ + "12:49", + "15732.0" + ], + [ + "13:00", + "16938.0" + ], + [ + "13:10", + "16782.0" + ], + [ + "13:19", + "17430.0" + ], + [ + "13:30", + "18186.0" + ], + [ + "13:40", + "18618.0" + ], + [ + "13:49", + "18432.0" + ], + [ + "14:00", + "21084.0" + ], + [ + "14:10", + "21834.0" + ], + [ + "14:19", + "20808.0" + ], + [ + "14:30", + "26136.0" + ], + [ + "14:40", + "26226.0" + ], + [ + "14:49", + "26538.0" + ], + [ + "15:00", + "32988.0" + ], + [ + "15:10", + "32244.0" + ], + [ + "15:19", + "34296.0" + ], + [ + "15:30", + "32052.0" + ], + [ + "15:40", + "31014.0" + ], + [ + "15:49", + "31884.0" + ], + [ + "16:00", + "36690.0" + ], + [ + "16:10", + "36420.0" + ], + [ + "16:19", + "36420.0" + ], + [ + "16:30", + "28092.0" + ], + [ + "16:40", + "28866.0" + ], + [ + "16:49", + "28620.0" + ], + [ + "17:00", + "31218.0" + ], + [ + "17:10", + "30618.0" + ], + [ + "17:19", + "31866.0" + ], + [ + "17:30", + "32112.0" + ], + [ + "17:40", + "31824.0" + ], + [ + "17:49", + "32040.0" + ], + [ + "18:00", + "29592.0" + ], + [ + "18:10", + "29544.0" + ], + [ + "18:19", + "29412.0" + ], + [ + "18:30", + "28740.0" + ], + [ + "18:40", + "30060.0" + ], + [ + "18:49", + "30138.0" + ], + [ + "19:00", + "30312.0" + ], + [ + "19:10", + "30048.0" + ], + [ + "19:19", + "30498.0" + ], + [ + "19:30", + "24486.0" + ], + [ + "19:40", + "24588.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24486.0" + ], + [ + "20:10", + "24750.0" + ], + [ + "20:19", + "24216.0" + ], + [ + "20:30", + "20298.0" + ], + [ + "20:40", + "21474.0" + ], + [ + "20:49", + "21396.0" + ], + [ + "21:00", + "21270.0" + ], + [ + "21:10", + "23052.0" + ], + [ + "21:19", + "21462.0" + ], + [ + "21:30", + "13836.0" + ], + [ + "21:40", + "14346.0" + ], + [ + "21:49", + "13614.0" + ], + [ + "22:00", + "12006.0" + ], + [ + "22:10", + "13608.0" + ], + [ + "22:19", + "12732.0" + ], + [ + "22:30", + "8760.0" + ], + [ + "22:40", + "8364.0" + ], + [ + "22:49", + "8340.0" + ], + [ + "23:00", + "9390.0" + ], + [ + "23:10", + "9264.0" + ], + [ + "23:19", + "8982.0" + ], + [ + "23:30", + "6834.0" + ], + [ + "23:40", + "6570.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2382.0" + ], + [ + "00:19", + "2346.0" + ], + [ + "00:30", + "1416.0" + ], + [ + "00:40", + "1506.0" + ], + [ + "00:49", + "1470.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1206.0" + ], + [ + "01:19", + "1278.0" + ], + [ + "01:30", + "1260.0" + ], + [ + "01:40", + "858.0" + ], + [ + "01:49", + "1086.0" + ], + [ + "02:00", + "984.0" + ], + [ + "02:10", + "738.0" + ], + [ + "02:19", + "906.0" + ], + [ + "02:30", + "780.0" + ], + [ + "02:40", + "846.0" + ], + [ + "02:49", + "816.0" + ], + [ + "03:00", + "54.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 786, + 762, + 864, + 990, + 1008, + 1176, + 2154, + 2592, + 2544, + 4086, + 3384, + 3912, + 6480, + 6798, + 7440, + 16296, + 16722, + 17016, + 24396, + 24486, + 24936, + 29712, + 29790, + 29160, + 27996, + 27528, + 28596, + 25830, + 25776, + 26508, + 25680, + 26220, + 25602, + 30732, + 30474, + 31008, + 30210, + 30048, + 29256, + 32334, + 33186, + 33054, + 28254, + 25770, + 26694, + 21366, + 20658, + 21486, + 15354, + 15534, + 16260, + 15834, + 16224, + 15732, + 16938, + 16782, + 17430, + 18186, + 18618, + 18432, + 21084, + 21834, + 20808, + 26136, + 26226, + 26538, + 32988, + 32244, + 34296, + 32052, + 31014, + 31884, + 36690, + 36420, + 36420, + 28092, + 28866, + 28620, + 31218, + 30618, + 31866, + 32112, + 31824, + 32040, + 29592, + 29544, + 29412, + 28740, + 30060, + 30138, + 30312, + 30048, + 30498, + 24486, + 24588, + 25842, + 24486, + 24750, + 24216, + 20298, + 21474, + 21396, + 21270, + 23052, + 21462, + 13836, + 14346, + 13614, + 12006, + 13608, + 12732, + 8760, + 8364, + 8340, + 9390, + 9264, + 8982, + 6834, + 6570, + 6972, + 2526, + 2382, + 2346, + 1416, + 1506, + 1470, + 1068, + 1206, + 1278, + 1260, + 858, + 1086, + 984, + 738, + 906, + 780, + 846, + 816, + 54, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "792.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "852.0" + ], + [ + "04:30", + "996.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1182.0" + ], + [ + "05:00", + "2148.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3390.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6468.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7482.0" + ], + [ + "06:30", + "16278.0" + ], + [ + "06:40", + "16716.0" + ], + [ + "06:49", + "17106.0" + ], + [ + "07:00", + "24408.0" + ], + [ + "07:10", + "24432.0" + ], + [ + "07:19", + "24834.0" + ], + [ + "07:30", + "29832.0" + ], + [ + "07:40", + "29700.0" + ], + [ + "07:49", + "29226.0" + ], + [ + "08:00", + "28008.0" + ], + [ + "08:10", + "27474.0" + ], + [ + "08:19", + "28620.0" + ], + [ + "08:30", + "25764.0" + ], + [ + "08:40", + "25824.0" + ], + [ + "08:49", + "26538.0" + ], + [ + "09:00", + "25734.0" + ], + [ + "09:10", + "26058.0" + ], + [ + "09:19", + "25686.0" + ], + [ + "09:30", + "30672.0" + ], + [ + "09:40", + "30594.0" + ], + [ + "09:49", + "30960.0" + ], + [ + "10:00", + "30270.0" + ], + [ + "10:10", + "29964.0" + ], + [ + "10:19", + "29184.0" + ], + [ + "10:30", + "32436.0" + ], + [ + "10:40", + "33222.0" + ], + [ + "10:49", + "33018.0" + ], + [ + "11:00", + "28260.0" + ], + [ + "11:10", + "25716.0" + ], + [ + "11:19", + "26742.0" + ], + [ + "11:30", + "21378.0" + ], + [ + "11:40", + "20652.0" + ], + [ + "11:49", + "21420.0" + ], + [ + "12:00", + "15438.0" + ], + [ + "12:10", + "15528.0" + ], + [ + "12:19", + "16236.0" + ], + [ + "12:30", + "15822.0" + ], + [ + "12:40", + "16206.0" + ], + [ + "12:49", + "15726.0" + ], + [ + "13:00", + "16944.0" + ], + [ + "13:10", + "16830.0" + ], + [ + "13:19", + "17370.0" + ], + [ + "13:30", + "18246.0" + ], + [ + "13:40", + "18666.0" + ], + [ + "13:49", + "18378.0" + ], + [ + "14:00", + "21108.0" + ], + [ + "14:10", + "21882.0" + ], + [ + "14:19", + "20724.0" + ], + [ + "14:30", + "26220.0" + ], + [ + "14:40", + "26184.0" + ], + [ + "14:49", + "26460.0" + ], + [ + "15:00", + "33030.0" + ], + [ + "15:10", + "32310.0" + ], + [ + "15:19", + "34248.0" + ], + [ + "15:30", + "31980.0" + ], + [ + "15:40", + "31050.0" + ], + [ + "15:49", + "31926.0" + ], + [ + "16:00", + "36702.0" + ], + [ + "16:10", + "36366.0" + ], + [ + "16:19", + "36402.0" + ], + [ + "16:30", + "28128.0" + ], + [ + "16:40", + "28914.0" + ], + [ + "16:49", + "28716.0" + ], + [ + "17:00", + "31104.0" + ], + [ + "17:10", + "30612.0" + ], + [ + "17:19", + "31782.0" + ], + [ + "17:30", + "32244.0" + ], + [ + "17:40", + "31890.0" + ], + [ + "17:49", + "31872.0" + ], + [ + "18:00", + "29688.0" + ], + [ + "18:10", + "29610.0" + ], + [ + "18:19", + "29352.0" + ], + [ + "18:30", + "28662.0" + ], + [ + "18:40", + "30048.0" + ], + [ + "18:49", + "30018.0" + ], + [ + "19:00", + "30228.0" + ], + [ + "19:10", + "30162.0" + ], + [ + "19:19", + "30432.0" + ], + [ + "19:30", + "24402.0" + ], + [ + "19:40", + "24600.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24510.0" + ], + [ + "20:10", + "24666.0" + ], + [ + "20:19", + "24276.0" + ], + [ + "20:30", + "20532.0" + ], + [ + "20:40", + "21534.0" + ], + [ + "20:49", + "21264.0" + ], + [ + "21:00", + "21354.0" + ], + [ + "21:10", + "23112.0" + ], + [ + "21:19", + "21582.0" + ], + [ + "21:30", + "13794.0" + ], + [ + "21:40", + "14340.0" + ], + [ + "21:49", + "13614.0" + ], + [ + "22:00", + "11964.0" + ], + [ + "22:10", + "13674.0" + ], + [ + "22:19", + "12732.0" + ], + [ + "22:30", + "8640.0" + ], + [ + "22:40", + "8424.0" + ], + [ + "22:49", + "8322.0" + ], + [ + "23:00", + "9426.0" + ], + [ + "23:10", + "9198.0" + ], + [ + "23:19", + "9000.0" + ], + [ + "23:30", + "6792.0" + ], + [ + "23:40", + "6612.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2418.0" + ], + [ + "00:19", + "2316.0" + ], + [ + "00:30", + "1440.0" + ], + [ + "00:40", + "1500.0" + ], + [ + "00:49", + "1482.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1206.0" + ], + [ + "01:19", + "1266.0" + ], + [ + "01:30", + "1248.0" + ], + [ + "01:40", + "858.0" + ], + [ + "01:49", + "1098.0" + ], + [ + "02:00", + "960.0" + ], + [ + "02:10", + "726.0" + ], + [ + "02:19", + "858.0" + ], + [ + "02:30", + "804.0" + ], + [ + "02:40", + "864.0" + ], + [ + "02:49", + "810.0" + ], + [ + "03:00", + "42.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 792, + 762, + 852, + 996, + 1008, + 1182, + 2148, + 2592, + 2544, + 4086, + 3390, + 3912, + 6468, + 6798, + 7482, + 16278, + 16716, + 17106, + 24408, + 24432, + 24834, + 29832, + 29700, + 29226, + 28008, + 27474, + 28620, + 25764, + 25824, + 26538, + 25734, + 26058, + 25686, + 30672, + 30594, + 30960, + 30270, + 29964, + 29184, + 32436, + 33222, + 33018, + 28260, + 25716, + 26742, + 21378, + 20652, + 21420, + 15438, + 15528, + 16236, + 15822, + 16206, + 15726, + 16944, + 16830, + 17370, + 18246, + 18666, + 18378, + 21108, + 21882, + 20724, + 26220, + 26184, + 26460, + 33030, + 32310, + 34248, + 31980, + 31050, + 31926, + 36702, + 36366, + 36402, + 28128, + 28914, + 28716, + 31104, + 30612, + 31782, + 32244, + 31890, + 31872, + 29688, + 29610, + 29352, + 28662, + 30048, + 30018, + 30228, + 30162, + 30432, + 24402, + 24600, + 25842, + 24510, + 24666, + 24276, + 20532, + 21534, + 21264, + 21354, + 23112, + 21582, + 13794, + 14340, + 13614, + 11964, + 13674, + 12732, + 8640, + 8424, + 8322, + 9426, + 9198, + 9000, + 6792, + 6612, + 6972, + 2526, + 2418, + 2316, + 1440, + 1500, + 1482, + 1068, + 1206, + 1266, + 1248, + 858, + 1098, + 960, + 726, + 858, + 804, + 864, + 810, + 42, + 6, + 0, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "792.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "852.0" + ], + [ + "04:30", + "996.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1182.0" + ], + [ + "05:00", + "2148.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3390.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6468.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7482.0" + ], + [ + "06:30", + "16254.0" + ], + [ + "06:40", + "16722.0" + ], + [ + "06:49", + "17118.0" + ], + [ + "07:00", + "24384.0" + ], + [ + "07:10", + "24450.0" + ], + [ + "07:19", + "24852.0" + ], + [ + "07:30", + "29772.0" + ], + [ + "07:40", + "29712.0" + ], + [ + "07:49", + "29322.0" + ], + [ + "08:00", + "27960.0" + ], + [ + "08:10", + "27504.0" + ], + [ + "08:19", + "28560.0" + ], + [ + "08:30", + "25818.0" + ], + [ + "08:40", + "25830.0" + ], + [ + "08:49", + "26484.0" + ], + [ + "09:00", + "25698.0" + ], + [ + "09:10", + "26130.0" + ], + [ + "09:19", + "25662.0" + ], + [ + "09:30", + "30666.0" + ], + [ + "09:40", + "30576.0" + ], + [ + "09:49", + "30924.0" + ], + [ + "10:00", + "30264.0" + ], + [ + "10:10", + "30054.0" + ], + [ + "10:19", + "29172.0" + ], + [ + "10:30", + "32430.0" + ], + [ + "10:40", + "33138.0" + ], + [ + "10:49", + "33072.0" + ], + [ + "11:00", + "28302.0" + ], + [ + "11:10", + "25704.0" + ], + [ + "11:19", + "26748.0" + ], + [ + "11:30", + "21372.0" + ], + [ + "11:40", + "20634.0" + ], + [ + "11:49", + "21462.0" + ], + [ + "12:00", + "15378.0" + ], + [ + "12:10", + "15546.0" + ], + [ + "12:19", + "16224.0" + ], + [ + "12:30", + "15852.0" + ], + [ + "12:40", + "16206.0" + ], + [ + "12:49", + "15708.0" + ], + [ + "13:00", + "16968.0" + ], + [ + "13:10", + "16800.0" + ], + [ + "13:19", + "17382.0" + ], + [ + "13:30", + "18252.0" + ], + [ + "13:40", + "18648.0" + ], + [ + "13:49", + "18372.0" + ], + [ + "14:00", + "21102.0" + ], + [ + "14:10", + "21834.0" + ], + [ + "14:19", + "20790.0" + ], + [ + "14:30", + "26142.0" + ], + [ + "14:40", + "26262.0" + ], + [ + "14:49", + "26490.0" + ], + [ + "15:00", + "32994.0" + ], + [ + "15:10", + "32298.0" + ], + [ + "15:19", + "34188.0" + ], + [ + "15:30", + "32028.0" + ], + [ + "15:40", + "31080.0" + ], + [ + "15:49", + "31890.0" + ], + [ + "16:00", + "36768.0" + ], + [ + "16:10", + "36408.0" + ], + [ + "16:19", + "36366.0" + ], + [ + "16:30", + "28224.0" + ], + [ + "16:40", + "28920.0" + ], + [ + "16:49", + "28668.0" + ], + [ + "17:00", + "31122.0" + ], + [ + "17:10", + "30630.0" + ], + [ + "17:19", + "31872.0" + ], + [ + "17:30", + "32268.0" + ], + [ + "17:40", + "31782.0" + ], + [ + "17:49", + "32172.0" + ], + [ + "18:00", + "29538.0" + ], + [ + "18:10", + "29538.0" + ], + [ + "18:19", + "29340.0" + ], + [ + "18:30", + "28686.0" + ], + [ + "18:40", + "30006.0" + ], + [ + "18:49", + "30000.0" + ], + [ + "19:00", + "30318.0" + ], + [ + "19:10", + "30162.0" + ], + [ + "19:19", + "30408.0" + ], + [ + "19:30", + "24438.0" + ], + [ + "19:40", + "24558.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24450.0" + ], + [ + "20:10", + "24672.0" + ], + [ + "20:19", + "24306.0" + ], + [ + "20:30", + "20400.0" + ], + [ + "20:40", + "21552.0" + ], + [ + "20:49", + "21312.0" + ], + [ + "21:00", + "21330.0" + ], + [ + "21:10", + "22968.0" + ], + [ + "21:19", + "21636.0" + ], + [ + "21:30", + "13752.0" + ], + [ + "21:40", + "14304.0" + ], + [ + "21:49", + "13620.0" + ], + [ + "22:00", + "11874.0" + ], + [ + "22:10", + "13710.0" + ], + [ + "22:19", + "12720.0" + ], + [ + "22:30", + "8700.0" + ], + [ + "22:40", + "8382.0" + ], + [ + "22:49", + "8370.0" + ], + [ + "23:00", + "9390.0" + ], + [ + "23:10", + "9330.0" + ], + [ + "23:19", + "8970.0" + ], + [ + "23:30", + "6840.0" + ], + [ + "23:40", + "6558.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2556.0" + ], + [ + "00:10", + "2388.0" + ], + [ + "00:19", + "2316.0" + ], + [ + "00:30", + "1386.0" + ], + [ + "00:40", + "1506.0" + ], + [ + "00:49", + "1464.0" + ], + [ + "01:00", + "1074.0" + ], + [ + "01:10", + "1218.0" + ], + [ + "01:19", + "1278.0" + ], + [ + "01:30", + "1254.0" + ], + [ + "01:40", + "840.0" + ], + [ + "01:49", + "1116.0" + ], + [ + "02:00", + "960.0" + ], + [ + "02:10", + "702.0" + ], + [ + "02:19", + "870.0" + ], + [ + "02:30", + "780.0" + ], + [ + "02:40", + "852.0" + ], + [ + "02:49", + "822.0" + ], + [ + "03:00", + "48.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "12.0" + ], + [ + "04:00", + "18.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 792, + 762, + 852, + 996, + 1008, + 1182, + 2148, + 2592, + 2544, + 4086, + 3390, + 3912, + 6468, + 6798, + 7482, + 16254, + 16722, + 17118, + 24384, + 24450, + 24852, + 29772, + 29712, + 29322, + 27960, + 27504, + 28560, + 25818, + 25830, + 26484, + 25698, + 26130, + 25662, + 30666, + 30576, + 30924, + 30264, + 30054, + 29172, + 32430, + 33138, + 33072, + 28302, + 25704, + 26748, + 21372, + 20634, + 21462, + 15378, + 15546, + 16224, + 15852, + 16206, + 15708, + 16968, + 16800, + 17382, + 18252, + 18648, + 18372, + 21102, + 21834, + 20790, + 26142, + 26262, + 26490, + 32994, + 32298, + 34188, + 32028, + 31080, + 31890, + 36768, + 36408, + 36366, + 28224, + 28920, + 28668, + 31122, + 30630, + 31872, + 32268, + 31782, + 32172, + 29538, + 29538, + 29340, + 28686, + 30006, + 30000, + 30318, + 30162, + 30408, + 24438, + 24558, + 25842, + 24450, + 24672, + 24306, + 20400, + 21552, + 21312, + 21330, + 22968, + 21636, + 13752, + 14304, + 13620, + 11874, + 13710, + 12720, + 8700, + 8382, + 8370, + 9390, + 9330, + 8970, + 6840, + 6558, + 6972, + 2556, + 2388, + 2316, + 1386, + 1506, + 1464, + 1074, + 1218, + 1278, + 1254, + 840, + 1116, + 960, + 702, + 870, + 780, + 852, + 822, + 48, + 6, + 6, + 6, + 0, + 12, + 18, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "786.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "864.0" + ], + [ + "04:30", + "990.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1176.0" + ], + [ + "05:00", + "2154.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3384.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6480.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7446.0" + ], + [ + "06:30", + "16272.0" + ], + [ + "06:40", + "16740.0" + ], + [ + "06:49", + "16974.0" + ], + [ + "07:00", + "24444.0" + ], + [ + "07:10", + "24390.0" + ], + [ + "07:19", + "25026.0" + ], + [ + "07:30", + "29706.0" + ], + [ + "07:40", + "29790.0" + ], + [ + "07:49", + "29148.0" + ], + [ + "08:00", + "28044.0" + ], + [ + "08:10", + "27462.0" + ], + [ + "08:19", + "28590.0" + ], + [ + "08:30", + "25800.0" + ], + [ + "08:40", + "25806.0" + ], + [ + "08:49", + "26520.0" + ], + [ + "09:00", + "25722.0" + ], + [ + "09:10", + "26178.0" + ], + [ + "09:19", + "25620.0" + ], + [ + "09:30", + "30672.0" + ], + [ + "09:40", + "30516.0" + ], + [ + "09:49", + "30936.0" + ], + [ + "10:00", + "30288.0" + ], + [ + "10:10", + "30042.0" + ], + [ + "10:19", + "29226.0" + ], + [ + "10:30", + "32322.0" + ], + [ + "10:40", + "33276.0" + ], + [ + "10:49", + "33000.0" + ], + [ + "11:00", + "28284.0" + ], + [ + "11:10", + "25734.0" + ], + [ + "11:19", + "26712.0" + ], + [ + "11:30", + "21396.0" + ], + [ + "11:40", + "20646.0" + ], + [ + "11:49", + "21450.0" + ], + [ + "12:00", + "15366.0" + ], + [ + "12:10", + "15570.0" + ], + [ + "12:19", + "16218.0" + ], + [ + "12:30", + "15846.0" + ], + [ + "12:40", + "16230.0" + ], + [ + "12:49", + "15714.0" + ], + [ + "13:00", + "16938.0" + ], + [ + "13:10", + "16758.0" + ], + [ + "13:19", + "17460.0" + ], + [ + "13:30", + "18264.0" + ], + [ + "13:40", + "18576.0" + ], + [ + "13:49", + "18420.0" + ], + [ + "14:00", + "21120.0" + ], + [ + "14:10", + "21810.0" + ], + [ + "14:19", + "20790.0" + ], + [ + "14:30", + "26160.0" + ], + [ + "14:40", + "26220.0" + ], + [ + "14:49", + "26544.0" + ], + [ + "15:00", + "32958.0" + ], + [ + "15:10", + "32286.0" + ], + [ + "15:19", + "34146.0" + ], + [ + "15:30", + "32076.0" + ], + [ + "15:40", + "31008.0" + ], + [ + "15:49", + "31962.0" + ], + [ + "16:00", + "36780.0" + ], + [ + "16:10", + "36342.0" + ], + [ + "16:19", + "36426.0" + ], + [ + "16:30", + "28206.0" + ], + [ + "16:40", + "28872.0" + ], + [ + "16:49", + "28692.0" + ], + [ + "17:00", + "31260.0" + ], + [ + "17:10", + "30540.0" + ], + [ + "17:19", + "31950.0" + ], + [ + "17:30", + "32124.0" + ], + [ + "17:40", + "31866.0" + ], + [ + "17:49", + "32016.0" + ], + [ + "18:00", + "29574.0" + ], + [ + "18:10", + "29616.0" + ], + [ + "18:19", + "29358.0" + ], + [ + "18:30", + "28614.0" + ], + [ + "18:40", + "30126.0" + ], + [ + "18:49", + "30030.0" + ], + [ + "19:00", + "30222.0" + ], + [ + "19:10", + "30102.0" + ], + [ + "19:19", + "30426.0" + ], + [ + "19:30", + "24408.0" + ], + [ + "19:40", + "24546.0" + ], + [ + "19:49", + "25740.0" + ], + [ + "20:00", + "24612.0" + ], + [ + "20:10", + "24534.0" + ], + [ + "20:19", + "24420.0" + ], + [ + "20:30", + "20448.0" + ], + [ + "20:40", + "21624.0" + ], + [ + "20:49", + "21456.0" + ], + [ + "21:00", + "21390.0" + ], + [ + "21:10", + "23034.0" + ], + [ + "21:19", + "21690.0" + ], + [ + "21:30", + "13782.0" + ], + [ + "21:40", + "14286.0" + ], + [ + "21:49", + "13716.0" + ], + [ + "22:00", + "12030.0" + ], + [ + "22:10", + "13566.0" + ], + [ + "22:19", + "12786.0" + ], + [ + "22:30", + "8586.0" + ], + [ + "22:40", + "8388.0" + ], + [ + "22:49", + "8256.0" + ], + [ + "23:00", + "9504.0" + ], + [ + "23:10", + "9246.0" + ], + [ + "23:19", + "9012.0" + ], + [ + "23:30", + "6750.0" + ], + [ + "23:40", + "6510.0" + ], + [ + "23:49", + "6960.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2394.0" + ], + [ + "00:19", + "2298.0" + ], + [ + "00:30", + "1434.0" + ], + [ + "00:40", + "1494.0" + ], + [ + "00:49", + "1458.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1242.0" + ], + [ + "01:19", + "1284.0" + ], + [ + "01:30", + "1278.0" + ], + [ + "01:40", + "840.0" + ], + [ + "01:49", + "1098.0" + ], + [ + "02:00", + "1008.0" + ], + [ + "02:10", + "720.0" + ], + [ + "02:19", + "870.0" + ], + [ + "02:30", + "768.0" + ], + [ + "02:40", + "846.0" + ], + [ + "02:49", + "822.0" + ], + [ + "03:00", + "42.0" + ], + [ + "03:10", + "24.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "6.0" + ], + [ + "03:49", + "6.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 786, + 762, + 864, + 990, + 1008, + 1176, + 2154, + 2592, + 2544, + 4086, + 3384, + 3912, + 6480, + 6798, + 7446, + 16272, + 16740, + 16974, + 24444, + 24390, + 25026, + 29706, + 29790, + 29148, + 28044, + 27462, + 28590, + 25800, + 25806, + 26520, + 25722, + 26178, + 25620, + 30672, + 30516, + 30936, + 30288, + 30042, + 29226, + 32322, + 33276, + 33000, + 28284, + 25734, + 26712, + 21396, + 20646, + 21450, + 15366, + 15570, + 16218, + 15846, + 16230, + 15714, + 16938, + 16758, + 17460, + 18264, + 18576, + 18420, + 21120, + 21810, + 20790, + 26160, + 26220, + 26544, + 32958, + 32286, + 34146, + 32076, + 31008, + 31962, + 36780, + 36342, + 36426, + 28206, + 28872, + 28692, + 31260, + 30540, + 31950, + 32124, + 31866, + 32016, + 29574, + 29616, + 29358, + 28614, + 30126, + 30030, + 30222, + 30102, + 30426, + 24408, + 24546, + 25740, + 24612, + 24534, + 24420, + 20448, + 21624, + 21456, + 21390, + 23034, + 21690, + 13782, + 14286, + 13716, + 12030, + 13566, + 12786, + 8586, + 8388, + 8256, + 9504, + 9246, + 9012, + 6750, + 6510, + 6960, + 2526, + 2394, + 2298, + 1434, + 1494, + 1458, + 1068, + 1242, + 1284, + 1278, + 840, + 1098, + 1008, + 720, + 870, + 768, + 846, + 822, + 42, + 24, + 0, + 6, + 6, + 6, + 0, + 0, + 6 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC trips (normalized to trips/hour) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "786.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "864.0" + ], + [ + "04:30", + "990.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1176.0" + ], + [ + "05:00", + "2154.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3384.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6480.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7440.0" + ], + [ + "06:30", + "16296.0" + ], + [ + "06:40", + "16722.0" + ], + [ + "06:49", + "17016.0" + ], + [ + "07:00", + "24396.0" + ], + [ + "07:10", + "24486.0" + ], + [ + "07:19", + "24936.0" + ], + [ + "07:30", + "29712.0" + ], + [ + "07:40", + "29790.0" + ], + [ + "07:49", + "29160.0" + ], + [ + "08:00", + "27996.0" + ], + [ + "08:10", + "27528.0" + ], + [ + "08:19", + "28596.0" + ], + [ + "08:30", + "25830.0" + ], + [ + "08:40", + "25776.0" + ], + [ + "08:49", + "26508.0" + ], + [ + "09:00", + "25680.0" + ], + [ + "09:10", + "26220.0" + ], + [ + "09:19", + "25602.0" + ], + [ + "09:30", + "30732.0" + ], + [ + "09:40", + "30474.0" + ], + [ + "09:49", + "31008.0" + ], + [ + "10:00", + "30210.0" + ], + [ + "10:10", + "30048.0" + ], + [ + "10:19", + "29256.0" + ], + [ + "10:30", + "32334.0" + ], + [ + "10:40", + "33186.0" + ], + [ + "10:49", + "33054.0" + ], + [ + "11:00", + "28254.0" + ], + [ + "11:10", + "25770.0" + ], + [ + "11:19", + "26694.0" + ], + [ + "11:30", + "21366.0" + ], + [ + "11:40", + "20658.0" + ], + [ + "11:49", + "21486.0" + ], + [ + "12:00", + "15354.0" + ], + [ + "12:10", + "15534.0" + ], + [ + "12:19", + "16260.0" + ], + [ + "12:30", + "15834.0" + ], + [ + "12:40", + "16224.0" + ], + [ + "12:49", + "15732.0" + ], + [ + "13:00", + "16938.0" + ], + [ + "13:10", + "16782.0" + ], + [ + "13:19", + "17430.0" + ], + [ + "13:30", + "18186.0" + ], + [ + "13:40", + "18618.0" + ], + [ + "13:49", + "18432.0" + ], + [ + "14:00", + "21084.0" + ], + [ + "14:10", + "21834.0" + ], + [ + "14:19", + "20808.0" + ], + [ + "14:30", + "26136.0" + ], + [ + "14:40", + "26226.0" + ], + [ + "14:49", + "26538.0" + ], + [ + "15:00", + "32988.0" + ], + [ + "15:10", + "32244.0" + ], + [ + "15:19", + "34296.0" + ], + [ + "15:30", + "32052.0" + ], + [ + "15:40", + "31014.0" + ], + [ + "15:49", + "31884.0" + ], + [ + "16:00", + "36690.0" + ], + [ + "16:10", + "36420.0" + ], + [ + "16:19", + "36420.0" + ], + [ + "16:30", + "28092.0" + ], + [ + "16:40", + "28866.0" + ], + [ + "16:49", + "28620.0" + ], + [ + "17:00", + "31218.0" + ], + [ + "17:10", + "30618.0" + ], + [ + "17:19", + "31866.0" + ], + [ + "17:30", + "32112.0" + ], + [ + "17:40", + "31824.0" + ], + [ + "17:49", + "32040.0" + ], + [ + "18:00", + "29592.0" + ], + [ + "18:10", + "29544.0" + ], + [ + "18:19", + "29412.0" + ], + [ + "18:30", + "28740.0" + ], + [ + "18:40", + "30060.0" + ], + [ + "18:49", + "30138.0" + ], + [ + "19:00", + "30312.0" + ], + [ + "19:10", + "30048.0" + ], + [ + "19:19", + "30498.0" + ], + [ + "19:30", + "24486.0" + ], + [ + "19:40", + "24588.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24486.0" + ], + [ + "20:10", + "24750.0" + ], + [ + "20:19", + "24216.0" + ], + [ + "20:30", + "20298.0" + ], + [ + "20:40", + "21474.0" + ], + [ + "20:49", + "21396.0" + ], + [ + "21:00", + "21270.0" + ], + [ + "21:10", + "23052.0" + ], + [ + "21:19", + "21462.0" + ], + [ + "21:30", + "13836.0" + ], + [ + "21:40", + "14346.0" + ], + [ + "21:49", + "13614.0" + ], + [ + "22:00", + "12006.0" + ], + [ + "22:10", + "13608.0" + ], + [ + "22:19", + "12732.0" + ], + [ + "22:30", + "8760.0" + ], + [ + "22:40", + "8364.0" + ], + [ + "22:49", + "8340.0" + ], + [ + "23:00", + "9390.0" + ], + [ + "23:10", + "9264.0" + ], + [ + "23:19", + "8982.0" + ], + [ + "23:30", + "6834.0" + ], + [ + "23:40", + "6570.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2382.0" + ], + [ + "00:19", + "2346.0" + ], + [ + "00:30", + "1416.0" + ], + [ + "00:40", + "1506.0" + ], + [ + "00:49", + "1470.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1206.0" + ], + [ + "01:19", + "1278.0" + ], + [ + "01:30", + "1260.0" + ], + [ + "01:40", + "858.0" + ], + [ + "01:49", + "1086.0" + ], + [ + "02:00", + "984.0" + ], + [ + "02:10", + "738.0" + ], + [ + "02:19", + "906.0" + ], + [ + "02:30", + "780.0" + ], + [ + "02:40", + "846.0" + ], + [ + "02:49", + "816.0" + ], + [ + "03:00", + "54.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 786, + 762, + 864, + 990, + 1008, + 1176, + 2154, + 2592, + 2544, + 4086, + 3384, + 3912, + 6480, + 6798, + 7440, + 16296, + 16722, + 17016, + 24396, + 24486, + 24936, + 29712, + 29790, + 29160, + 27996, + 27528, + 28596, + 25830, + 25776, + 26508, + 25680, + 26220, + 25602, + 30732, + 30474, + 31008, + 30210, + 30048, + 29256, + 32334, + 33186, + 33054, + 28254, + 25770, + 26694, + 21366, + 20658, + 21486, + 15354, + 15534, + 16260, + 15834, + 16224, + 15732, + 16938, + 16782, + 17430, + 18186, + 18618, + 18432, + 21084, + 21834, + 20808, + 26136, + 26226, + 26538, + 32988, + 32244, + 34296, + 32052, + 31014, + 31884, + 36690, + 36420, + 36420, + 28092, + 28866, + 28620, + 31218, + 30618, + 31866, + 32112, + 31824, + 32040, + 29592, + 29544, + 29412, + 28740, + 30060, + 30138, + 30312, + 30048, + 30498, + 24486, + 24588, + 25842, + 24486, + 24750, + 24216, + 20298, + 21474, + 21396, + 21270, + 23052, + 21462, + 13836, + 14346, + 13614, + 12006, + 13608, + 12732, + 8760, + 8364, + 8340, + 9390, + 9264, + 8982, + 6834, + 6570, + 6972, + 2526, + 2382, + 2346, + 1416, + 1506, + 1470, + 1068, + 1206, + 1278, + 1260, + 858, + 1086, + 984, + 738, + 906, + 780, + 846, + 816, + 54, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "528.0" + ], + [ + "03:10", + "582.0" + ], + [ + "03:19", + "522.0" + ], + [ + "03:30", + "516.0" + ], + [ + "03:40", + "672.0" + ], + [ + "03:49", + "702.0" + ], + [ + "04:00", + "810.0" + ], + [ + "04:10", + "774.0" + ], + [ + "04:19", + "756.0" + ], + [ + "04:30", + "1170.0" + ], + [ + "04:40", + "984.0" + ], + [ + "04:49", + "1032.0" + ], + [ + "05:00", + "2202.0" + ], + [ + "05:10", + "2184.0" + ], + [ + "05:19", + "2808.0" + ], + [ + "05:30", + "3708.0" + ], + [ + "05:40", + "3858.0" + ], + [ + "05:49", + "3684.0" + ], + [ + "06:00", + "6792.0" + ], + [ + "06:10", + "6828.0" + ], + [ + "06:19", + "7068.0" + ], + [ + "06:30", + "15882.0" + ], + [ + "06:40", + "17556.0" + ], + [ + "06:49", + "16206.0" + ], + [ + "07:00", + "24552.0" + ], + [ + "07:10", + "24264.0" + ], + [ + "07:19", + "24186.0" + ], + [ + "07:30", + "28422.0" + ], + [ + "07:40", + "29118.0" + ], + [ + "07:49", + "29154.0" + ], + [ + "08:00", + "27714.0" + ], + [ + "08:10", + "26328.0" + ], + [ + "08:19", + "28080.0" + ], + [ + "08:30", + "24966.0" + ], + [ + "08:40", + "24342.0" + ], + [ + "08:49", + "24636.0" + ], + [ + "09:00", + "23604.0" + ], + [ + "09:10", + "24462.0" + ], + [ + "09:19", + "24798.0" + ], + [ + "09:30", + "28116.0" + ], + [ + "09:40", + "27816.0" + ], + [ + "09:49", + "28578.0" + ], + [ + "10:00", + "26334.0" + ], + [ + "10:10", + "27036.0" + ], + [ + "10:19", + "27378.0" + ], + [ + "10:30", + "30024.0" + ], + [ + "10:40", + "29868.0" + ], + [ + "10:49", + "29412.0" + ], + [ + "11:00", + "25098.0" + ], + [ + "11:10", + "23712.0" + ], + [ + "11:19", + "24474.0" + ], + [ + "11:30", + "19626.0" + ], + [ + "11:40", + "19830.0" + ], + [ + "11:49", + "19710.0" + ], + [ + "12:00", + "14706.0" + ], + [ + "12:10", + "14976.0" + ], + [ + "12:19", + "15582.0" + ], + [ + "12:30", + "15924.0" + ], + [ + "12:40", + "15102.0" + ], + [ + "12:49", + "14748.0" + ], + [ + "13:00", + "17076.0" + ], + [ + "13:10", + "15672.0" + ], + [ + "13:19", + "16236.0" + ], + [ + "13:30", + "17178.0" + ], + [ + "13:40", + "17352.0" + ], + [ + "13:49", + "17922.0" + ], + [ + "14:00", + "20796.0" + ], + [ + "14:10", + "20100.0" + ], + [ + "14:19", + "20094.0" + ], + [ + "14:30", + "24852.0" + ], + [ + "14:40", + "25170.0" + ], + [ + "14:49", + "25302.0" + ], + [ + "15:00", + "30354.0" + ], + [ + "15:10", + "32826.0" + ], + [ + "15:19", + "31680.0" + ], + [ + "15:30", + "29646.0" + ], + [ + "15:40", + "30222.0" + ], + [ + "15:49", + "30132.0" + ], + [ + "16:00", + "34446.0" + ], + [ + "16:10", + "34428.0" + ], + [ + "16:19", + "34398.0" + ], + [ + "16:30", + "26274.0" + ], + [ + "16:40", + "27510.0" + ], + [ + "16:49", + "27102.0" + ], + [ + "17:00", + "28512.0" + ], + [ + "17:10", + "28908.0" + ], + [ + "17:19", + "29766.0" + ], + [ + "17:30", + "29838.0" + ], + [ + "17:40", + "29208.0" + ], + [ + "17:49", + "29544.0" + ], + [ + "18:00", + "26772.0" + ], + [ + "18:10", + "28062.0" + ], + [ + "18:19", + "27126.0" + ], + [ + "18:30", + "26712.0" + ], + [ + "18:40", + "27348.0" + ], + [ + "18:49", + "27636.0" + ], + [ + "19:00", + "27624.0" + ], + [ + "19:10", + "27144.0" + ], + [ + "19:19", + "27234.0" + ], + [ + "19:30", + "22524.0" + ], + [ + "19:40", + "22536.0" + ], + [ + "19:49", + "22542.0" + ], + [ + "20:00", + "21186.0" + ], + [ + "20:10", + "21822.0" + ], + [ + "20:19", + "22626.0" + ], + [ + "20:30", + "19374.0" + ], + [ + "20:40", + "19644.0" + ], + [ + "20:49", + "19386.0" + ], + [ + "21:00", + "19560.0" + ], + [ + "21:10", + "19446.0" + ], + [ + "21:19", + "19782.0" + ], + [ + "21:30", + "12552.0" + ], + [ + "21:40", + "12642.0" + ], + [ + "21:49", + "12582.0" + ], + [ + "22:00", + "11634.0" + ], + [ + "22:10", + "11694.0" + ], + [ + "22:19", + "11292.0" + ], + [ + "22:30", + "7950.0" + ], + [ + "22:40", + "7962.0" + ], + [ + "22:49", + "8010.0" + ], + [ + "23:00", + "8232.0" + ], + [ + "23:10", + "8130.0" + ], + [ + "23:19", + "8220.0" + ], + [ + "23:30", + "6168.0" + ], + [ + "23:40", + "5850.0" + ], + [ + "23:49", + "6348.0" + ], + [ + "00:00", + "2238.0" + ], + [ + "00:10", + "2430.0" + ], + [ + "00:19", + "2262.0" + ], + [ + "00:30", + "1278.0" + ], + [ + "00:40", + "1362.0" + ], + [ + "00:49", + "1698.0" + ], + [ + "01:00", + "1284.0" + ], + [ + "01:10", + "1092.0" + ], + [ + "01:19", + "1158.0" + ], + [ + "01:30", + "1098.0" + ], + [ + "01:40", + "906.0" + ], + [ + "01:49", + "1194.0" + ], + [ + "02:00", + "828.0" + ], + [ + "02:10", + "876.0" + ], + [ + "02:19", + "828.0" + ], + [ + "02:30", + "684.0" + ], + [ + "02:40", + "882.0" + ], + [ + "02:49", + "810.0" + ], + [ + "03:00", + "48.0" + ], + [ + "03:10", + "18.0" + ], + [ + "03:19", + "12.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "6.0" + ], + [ + "03:49", + "6.0" + ], + [ + "04:00", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 528, + 582, + 522, + 516, + 672, + 702, + 810, + 774, + 756, + 1170, + 984, + 1032, + 2202, + 2184, + 2808, + 3708, + 3858, + 3684, + 6792, + 6828, + 7068, + 15882, + 17556, + 16206, + 24552, + 24264, + 24186, + 28422, + 29118, + 29154, + 27714, + 26328, + 28080, + 24966, + 24342, + 24636, + 23604, + 24462, + 24798, + 28116, + 27816, + 28578, + 26334, + 27036, + 27378, + 30024, + 29868, + 29412, + 25098, + 23712, + 24474, + 19626, + 19830, + 19710, + 14706, + 14976, + 15582, + 15924, + 15102, + 14748, + 17076, + 15672, + 16236, + 17178, + 17352, + 17922, + 20796, + 20100, + 20094, + 24852, + 25170, + 25302, + 30354, + 32826, + 31680, + 29646, + 30222, + 30132, + 34446, + 34428, + 34398, + 26274, + 27510, + 27102, + 28512, + 28908, + 29766, + 29838, + 29208, + 29544, + 26772, + 28062, + 27126, + 26712, + 27348, + 27636, + 27624, + 27144, + 27234, + 22524, + 22536, + 22542, + 21186, + 21822, + 22626, + 19374, + 19644, + 19386, + 19560, + 19446, + 19782, + 12552, + 12642, + 12582, + 11634, + 11694, + 11292, + 7950, + 7962, + 8010, + 8232, + 8130, + 8220, + 6168, + 5850, + 6348, + 2238, + 2430, + 2262, + 1278, + 1362, + 1698, + 1284, + 1092, + 1158, + 1098, + 906, + 1194, + 828, + 876, + 828, + 684, + 882, + 810, + 48, + 18, + 12, + 0, + 6, + 6, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "480.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "558.0" + ], + [ + "03:30", + "606.0" + ], + [ + "03:40", + "618.0" + ], + [ + "03:49", + "690.0" + ], + [ + "04:00", + "738.0" + ], + [ + "04:10", + "888.0" + ], + [ + "04:19", + "714.0" + ], + [ + "04:30", + "1074.0" + ], + [ + "04:40", + "1026.0" + ], + [ + "04:49", + "990.0" + ], + [ + "05:00", + "2322.0" + ], + [ + "05:10", + "2370.0" + ], + [ + "05:19", + "2568.0" + ], + [ + "05:30", + "3660.0" + ], + [ + "05:40", + "3660.0" + ], + [ + "05:49", + "3918.0" + ], + [ + "06:00", + "6336.0" + ], + [ + "06:10", + "7446.0" + ], + [ + "06:19", + "6840.0" + ], + [ + "06:30", + "16044.0" + ], + [ + "06:40", + "16914.0" + ], + [ + "06:49", + "16446.0" + ], + [ + "07:00", + "23460.0" + ], + [ + "07:10", + "23724.0" + ], + [ + "07:19", + "24876.0" + ], + [ + "07:30", + "28050.0" + ], + [ + "07:40", + "28560.0" + ], + [ + "07:49", + "29148.0" + ], + [ + "08:00", + "26418.0" + ], + [ + "08:10", + "26892.0" + ], + [ + "08:19", + "26184.0" + ], + [ + "08:30", + "23568.0" + ], + [ + "08:40", + "23412.0" + ], + [ + "08:49", + "24594.0" + ], + [ + "09:00", + "22824.0" + ], + [ + "09:10", + "23136.0" + ], + [ + "09:19", + "23838.0" + ], + [ + "09:30", + "26628.0" + ], + [ + "09:40", + "27006.0" + ], + [ + "09:49", + "27000.0" + ], + [ + "10:00", + "26322.0" + ], + [ + "10:10", + "25176.0" + ], + [ + "10:19", + "25488.0" + ], + [ + "10:30", + "28290.0" + ], + [ + "10:40", + "28152.0" + ], + [ + "10:49", + "28056.0" + ], + [ + "11:00", + "23556.0" + ], + [ + "11:10", + "23112.0" + ], + [ + "11:19", + "23430.0" + ], + [ + "11:30", + "18942.0" + ], + [ + "11:40", + "19152.0" + ], + [ + "11:49", + "19062.0" + ], + [ + "12:00", + "14448.0" + ], + [ + "12:10", + "14754.0" + ], + [ + "12:19", + "15462.0" + ], + [ + "12:30", + "15252.0" + ], + [ + "12:40", + "15072.0" + ], + [ + "12:49", + "14238.0" + ], + [ + "13:00", + "16062.0" + ], + [ + "13:10", + "15912.0" + ], + [ + "13:19", + "15660.0" + ], + [ + "13:30", + "16968.0" + ], + [ + "13:40", + "16434.0" + ], + [ + "13:49", + "17604.0" + ], + [ + "14:00", + "20544.0" + ], + [ + "14:10", + "19476.0" + ], + [ + "14:19", + "19254.0" + ], + [ + "14:30", + "23880.0" + ], + [ + "14:40", + "24642.0" + ], + [ + "14:49", + "24918.0" + ], + [ + "15:00", + "30576.0" + ], + [ + "15:10", + "30612.0" + ], + [ + "15:19", + "30192.0" + ], + [ + "15:30", + "28836.0" + ], + [ + "15:40", + "29232.0" + ], + [ + "15:49", + "29040.0" + ], + [ + "16:00", + "31920.0" + ], + [ + "16:10", + "33624.0" + ], + [ + "16:19", + "34314.0" + ], + [ + "16:30", + "25578.0" + ], + [ + "16:40", + "25824.0" + ], + [ + "16:49", + "26124.0" + ], + [ + "17:00", + "26502.0" + ], + [ + "17:10", + "27660.0" + ], + [ + "17:19", + "28596.0" + ], + [ + "17:30", + "29142.0" + ], + [ + "17:40", + "27462.0" + ], + [ + "17:49", + "27792.0" + ], + [ + "18:00", + "26508.0" + ], + [ + "18:10", + "25428.0" + ], + [ + "18:19", + "25806.0" + ], + [ + "18:30", + "25986.0" + ], + [ + "18:40", + "25560.0" + ], + [ + "18:49", + "25428.0" + ], + [ + "19:00", + "26244.0" + ], + [ + "19:10", + "25464.0" + ], + [ + "19:19", + "25524.0" + ], + [ + "19:30", + "21102.0" + ], + [ + "19:40", + "21522.0" + ], + [ + "19:49", + "20844.0" + ], + [ + "20:00", + "20016.0" + ], + [ + "20:10", + "21234.0" + ], + [ + "20:19", + "20850.0" + ], + [ + "20:30", + "18294.0" + ], + [ + "20:40", + "17898.0" + ], + [ + "20:49", + "18690.0" + ], + [ + "21:00", + "18138.0" + ], + [ + "21:10", + "18372.0" + ], + [ + "21:19", + "19008.0" + ], + [ + "21:30", + "11652.0" + ], + [ + "21:40", + "11832.0" + ], + [ + "21:49", + "11766.0" + ], + [ + "22:00", + "10614.0" + ], + [ + "22:10", + "11274.0" + ], + [ + "22:19", + "10734.0" + ], + [ + "22:30", + "6774.0" + ], + [ + "22:40", + "7332.0" + ], + [ + "22:49", + "8190.0" + ], + [ + "23:00", + "7854.0" + ], + [ + "23:10", + "7458.0" + ], + [ + "23:19", + "7404.0" + ], + [ + "23:30", + "5886.0" + ], + [ + "23:40", + "5490.0" + ], + [ + "23:49", + "5766.0" + ], + [ + "00:00", + "2232.0" + ], + [ + "00:10", + "2208.0" + ], + [ + "00:19", + "2208.0" + ], + [ + "00:30", + "1470.0" + ], + [ + "00:40", + "1350.0" + ], + [ + "00:49", + "1500.0" + ], + [ + "01:00", + "1326.0" + ], + [ + "01:10", + "1164.0" + ], + [ + "01:19", + "1092.0" + ], + [ + "01:30", + "1116.0" + ], + [ + "01:40", + "1086.0" + ], + [ + "01:49", + "1002.0" + ], + [ + "02:00", + "744.0" + ], + [ + "02:10", + "912.0" + ], + [ + "02:19", + "852.0" + ], + [ + "02:30", + "720.0" + ], + [ + "02:40", + "804.0" + ], + [ + "02:49", + "858.0" + ], + [ + "03:00", + "54.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 480, + 588, + 558, + 606, + 618, + 690, + 738, + 888, + 714, + 1074, + 1026, + 990, + 2322, + 2370, + 2568, + 3660, + 3660, + 3918, + 6336, + 7446, + 6840, + 16044, + 16914, + 16446, + 23460, + 23724, + 24876, + 28050, + 28560, + 29148, + 26418, + 26892, + 26184, + 23568, + 23412, + 24594, + 22824, + 23136, + 23838, + 26628, + 27006, + 27000, + 26322, + 25176, + 25488, + 28290, + 28152, + 28056, + 23556, + 23112, + 23430, + 18942, + 19152, + 19062, + 14448, + 14754, + 15462, + 15252, + 15072, + 14238, + 16062, + 15912, + 15660, + 16968, + 16434, + 17604, + 20544, + 19476, + 19254, + 23880, + 24642, + 24918, + 30576, + 30612, + 30192, + 28836, + 29232, + 29040, + 31920, + 33624, + 34314, + 25578, + 25824, + 26124, + 26502, + 27660, + 28596, + 29142, + 27462, + 27792, + 26508, + 25428, + 25806, + 25986, + 25560, + 25428, + 26244, + 25464, + 25524, + 21102, + 21522, + 20844, + 20016, + 21234, + 20850, + 18294, + 17898, + 18690, + 18138, + 18372, + 19008, + 11652, + 11832, + 11766, + 10614, + 11274, + 10734, + 6774, + 7332, + 8190, + 7854, + 7458, + 7404, + 5886, + 5490, + 5766, + 2232, + 2208, + 2208, + 1470, + 1350, + 1500, + 1326, + 1164, + 1092, + 1116, + 1086, + 1002, + 744, + 912, + 852, + 720, + 804, + 858, + 54, + 6, + 0, + 6, + 0, + 0, + 0, + 6 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC trips (normalized to trips/hour) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "600.0" + ], + [ + "03:10", + "588.0" + ], + [ + "03:19", + "486.0" + ], + [ + "03:30", + "588.0" + ], + [ + "03:40", + "660.0" + ], + [ + "03:49", + "666.0" + ], + [ + "04:00", + "786.0" + ], + [ + "04:10", + "762.0" + ], + [ + "04:19", + "864.0" + ], + [ + "04:30", + "990.0" + ], + [ + "04:40", + "1008.0" + ], + [ + "04:49", + "1176.0" + ], + [ + "05:00", + "2154.0" + ], + [ + "05:10", + "2592.0" + ], + [ + "05:19", + "2544.0" + ], + [ + "05:30", + "4086.0" + ], + [ + "05:40", + "3384.0" + ], + [ + "05:49", + "3912.0" + ], + [ + "06:00", + "6480.0" + ], + [ + "06:10", + "6798.0" + ], + [ + "06:19", + "7440.0" + ], + [ + "06:30", + "16296.0" + ], + [ + "06:40", + "16722.0" + ], + [ + "06:49", + "17016.0" + ], + [ + "07:00", + "24396.0" + ], + [ + "07:10", + "24486.0" + ], + [ + "07:19", + "24936.0" + ], + [ + "07:30", + "29712.0" + ], + [ + "07:40", + "29790.0" + ], + [ + "07:49", + "29160.0" + ], + [ + "08:00", + "27996.0" + ], + [ + "08:10", + "27528.0" + ], + [ + "08:19", + "28596.0" + ], + [ + "08:30", + "25830.0" + ], + [ + "08:40", + "25776.0" + ], + [ + "08:49", + "26508.0" + ], + [ + "09:00", + "25680.0" + ], + [ + "09:10", + "26220.0" + ], + [ + "09:19", + "25602.0" + ], + [ + "09:30", + "30732.0" + ], + [ + "09:40", + "30474.0" + ], + [ + "09:49", + "31008.0" + ], + [ + "10:00", + "30210.0" + ], + [ + "10:10", + "30048.0" + ], + [ + "10:19", + "29256.0" + ], + [ + "10:30", + "32334.0" + ], + [ + "10:40", + "33186.0" + ], + [ + "10:49", + "33054.0" + ], + [ + "11:00", + "28254.0" + ], + [ + "11:10", + "25770.0" + ], + [ + "11:19", + "26694.0" + ], + [ + "11:30", + "21366.0" + ], + [ + "11:40", + "20658.0" + ], + [ + "11:49", + "21486.0" + ], + [ + "12:00", + "15354.0" + ], + [ + "12:10", + "15534.0" + ], + [ + "12:19", + "16260.0" + ], + [ + "12:30", + "15834.0" + ], + [ + "12:40", + "16224.0" + ], + [ + "12:49", + "15732.0" + ], + [ + "13:00", + "16938.0" + ], + [ + "13:10", + "16782.0" + ], + [ + "13:19", + "17430.0" + ], + [ + "13:30", + "18186.0" + ], + [ + "13:40", + "18618.0" + ], + [ + "13:49", + "18432.0" + ], + [ + "14:00", + "21084.0" + ], + [ + "14:10", + "21834.0" + ], + [ + "14:19", + "20808.0" + ], + [ + "14:30", + "26136.0" + ], + [ + "14:40", + "26226.0" + ], + [ + "14:49", + "26538.0" + ], + [ + "15:00", + "32988.0" + ], + [ + "15:10", + "32244.0" + ], + [ + "15:19", + "34296.0" + ], + [ + "15:30", + "32052.0" + ], + [ + "15:40", + "31014.0" + ], + [ + "15:49", + "31884.0" + ], + [ + "16:00", + "36690.0" + ], + [ + "16:10", + "36420.0" + ], + [ + "16:19", + "36420.0" + ], + [ + "16:30", + "28092.0" + ], + [ + "16:40", + "28866.0" + ], + [ + "16:49", + "28620.0" + ], + [ + "17:00", + "31218.0" + ], + [ + "17:10", + "30618.0" + ], + [ + "17:19", + "31866.0" + ], + [ + "17:30", + "32112.0" + ], + [ + "17:40", + "31824.0" + ], + [ + "17:49", + "32040.0" + ], + [ + "18:00", + "29592.0" + ], + [ + "18:10", + "29544.0" + ], + [ + "18:19", + "29412.0" + ], + [ + "18:30", + "28740.0" + ], + [ + "18:40", + "30060.0" + ], + [ + "18:49", + "30138.0" + ], + [ + "19:00", + "30312.0" + ], + [ + "19:10", + "30048.0" + ], + [ + "19:19", + "30498.0" + ], + [ + "19:30", + "24486.0" + ], + [ + "19:40", + "24588.0" + ], + [ + "19:49", + "25842.0" + ], + [ + "20:00", + "24486.0" + ], + [ + "20:10", + "24750.0" + ], + [ + "20:19", + "24216.0" + ], + [ + "20:30", + "20298.0" + ], + [ + "20:40", + "21474.0" + ], + [ + "20:49", + "21396.0" + ], + [ + "21:00", + "21270.0" + ], + [ + "21:10", + "23052.0" + ], + [ + "21:19", + "21462.0" + ], + [ + "21:30", + "13836.0" + ], + [ + "21:40", + "14346.0" + ], + [ + "21:49", + "13614.0" + ], + [ + "22:00", + "12006.0" + ], + [ + "22:10", + "13608.0" + ], + [ + "22:19", + "12732.0" + ], + [ + "22:30", + "8760.0" + ], + [ + "22:40", + "8364.0" + ], + [ + "22:49", + "8340.0" + ], + [ + "23:00", + "9390.0" + ], + [ + "23:10", + "9264.0" + ], + [ + "23:19", + "8982.0" + ], + [ + "23:30", + "6834.0" + ], + [ + "23:40", + "6570.0" + ], + [ + "23:49", + "6972.0" + ], + [ + "00:00", + "2526.0" + ], + [ + "00:10", + "2382.0" + ], + [ + "00:19", + "2346.0" + ], + [ + "00:30", + "1416.0" + ], + [ + "00:40", + "1506.0" + ], + [ + "00:49", + "1470.0" + ], + [ + "01:00", + "1068.0" + ], + [ + "01:10", + "1206.0" + ], + [ + "01:19", + "1278.0" + ], + [ + "01:30", + "1260.0" + ], + [ + "01:40", + "858.0" + ], + [ + "01:49", + "1086.0" + ], + [ + "02:00", + "984.0" + ], + [ + "02:10", + "738.0" + ], + [ + "02:19", + "906.0" + ], + [ + "02:30", + "780.0" + ], + [ + "02:40", + "846.0" + ], + [ + "02:49", + "816.0" + ], + [ + "03:00", + "54.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 600, + 588, + 486, + 588, + 660, + 666, + 786, + 762, + 864, + 990, + 1008, + 1176, + 2154, + 2592, + 2544, + 4086, + 3384, + 3912, + 6480, + 6798, + 7440, + 16296, + 16722, + 17016, + 24396, + 24486, + 24936, + 29712, + 29790, + 29160, + 27996, + 27528, + 28596, + 25830, + 25776, + 26508, + 25680, + 26220, + 25602, + 30732, + 30474, + 31008, + 30210, + 30048, + 29256, + 32334, + 33186, + 33054, + 28254, + 25770, + 26694, + 21366, + 20658, + 21486, + 15354, + 15534, + 16260, + 15834, + 16224, + 15732, + 16938, + 16782, + 17430, + 18186, + 18618, + 18432, + 21084, + 21834, + 20808, + 26136, + 26226, + 26538, + 32988, + 32244, + 34296, + 32052, + 31014, + 31884, + 36690, + 36420, + 36420, + 28092, + 28866, + 28620, + 31218, + 30618, + 31866, + 32112, + 31824, + 32040, + 29592, + 29544, + 29412, + 28740, + 30060, + 30138, + 30312, + 30048, + 30498, + 24486, + 24588, + 25842, + 24486, + 24750, + 24216, + 20298, + 21474, + 21396, + 21270, + 23052, + 21462, + 13836, + 14346, + 13614, + 12006, + 13608, + 12732, + 8760, + 8364, + 8340, + 9390, + 9264, + 8982, + 6834, + 6570, + 6972, + 2526, + 2382, + 2346, + 1416, + 1506, + 1470, + 1068, + 1206, + 1278, + 1260, + 858, + 1086, + 984, + 738, + 906, + 780, + 846, + 816, + 54, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "24588.0" + ], + [ + "03:10", + "25938.0" + ], + [ + "03:19", + "26820.0" + ], + [ + "03:30", + "32754.0" + ], + [ + "03:40", + "33360.0" + ], + [ + "03:49", + "33552.0" + ], + [ + "04:00", + "47640.0" + ], + [ + "04:10", + "47550.0" + ], + [ + "04:19", + "50220.0" + ], + [ + "04:30", + "75288.0" + ], + [ + "04:40", + "79890.0" + ], + [ + "04:49", + "80238.0" + ], + [ + "05:00", + "132072.0" + ], + [ + "05:10", + "138810.0" + ], + [ + "05:19", + "141666.0" + ], + [ + "05:30", + "241500.0" + ], + [ + "05:40", + "258882.0" + ], + [ + "05:49", + "263706.0" + ], + [ + "06:00", + "505632.0" + ], + [ + "06:10", + "533958.0" + ], + [ + "06:19", + "546036.0" + ], + [ + "06:30", + "1342422.0" + ], + [ + "06:40", + "1423170.0" + ], + [ + "06:49", + "1452966.0" + ], + [ + "07:00", + "2050326.0" + ], + [ + "07:10", + "2113128.0" + ], + [ + "07:19", + "2163108.0" + ], + [ + "07:30", + "2523504.0" + ], + [ + "07:40", + "2587740.0" + ], + [ + "07:49", + "2573634.0" + ], + [ + "08:00", + "2061486.0" + ], + [ + "08:10", + "1987320.0" + ], + [ + "08:19", + "1963326.0" + ], + [ + "08:30", + "1658646.0" + ], + [ + "08:40", + "1606374.0" + ], + [ + "08:49", + "1593426.0" + ], + [ + "09:00", + "1325244.0" + ], + [ + "09:10", + "1277838.0" + ], + [ + "09:19", + "1267140.0" + ], + [ + "09:30", + "1181208.0" + ], + [ + "09:40", + "1166178.0" + ], + [ + "09:49", + "1162584.0" + ], + [ + "10:00", + "1088328.0" + ], + [ + "10:10", + "1081110.0" + ], + [ + "10:19", + "1078224.0" + ], + [ + "10:30", + "1085778.0" + ], + [ + "10:40", + "1079778.0" + ], + [ + "10:49", + "1082808.0" + ], + [ + "11:00", + "1123212.0" + ], + [ + "11:10", + "1128654.0" + ], + [ + "11:19", + "1121832.0" + ], + [ + "11:30", + "1232970.0" + ], + [ + "11:40", + "1258722.0" + ], + [ + "11:49", + "1254588.0" + ], + [ + "12:00", + "1271928.0" + ], + [ + "12:10", + "1271874.0" + ], + [ + "12:19", + "1270626.0" + ], + [ + "12:30", + "1243224.0" + ], + [ + "12:40", + "1238766.0" + ], + [ + "12:49", + "1236054.0" + ], + [ + "13:00", + "1225098.0" + ], + [ + "13:10", + "1230486.0" + ], + [ + "13:19", + "1228782.0" + ], + [ + "13:30", + "1208694.0" + ], + [ + "13:40", + "1212726.0" + ], + [ + "13:49", + "1215984.0" + ], + [ + "14:00", + "1315752.0" + ], + [ + "14:10", + "1345284.0" + ], + [ + "14:19", + "1352646.0" + ], + [ + "14:30", + "1538586.0" + ], + [ + "14:40", + "1581066.0" + ], + [ + "14:49", + "1581978.0" + ], + [ + "15:00", + "1856130.0" + ], + [ + "15:10", + "1908756.0" + ], + [ + "15:19", + "1920324.0" + ], + [ + "15:30", + "1946484.0" + ], + [ + "15:40", + "1956582.0" + ], + [ + "15:49", + "1951788.0" + ], + [ + "16:00", + "2054004.0" + ], + [ + "16:10", + "2096760.0" + ], + [ + "16:19", + "2096424.0" + ], + [ + "16:30", + "1700280.0" + ], + [ + "16:40", + "1668114.0" + ], + [ + "16:49", + "1656306.0" + ], + [ + "17:00", + "1651380.0" + ], + [ + "17:10", + "1643880.0" + ], + [ + "17:19", + "1656024.0" + ], + [ + "17:30", + "1617528.0" + ], + [ + "17:40", + "1602114.0" + ], + [ + "17:49", + "1614228.0" + ], + [ + "18:00", + "1436952.0" + ], + [ + "18:10", + "1403916.0" + ], + [ + "18:19", + "1395696.0" + ], + [ + "18:30", + "1300422.0" + ], + [ + "18:40", + "1274448.0" + ], + [ + "18:49", + "1265196.0" + ], + [ + "19:00", + "1066998.0" + ], + [ + "19:10", + "1021950.0" + ], + [ + "19:19", + "1009236.0" + ], + [ + "19:30", + "895344.0" + ], + [ + "19:40", + "870582.0" + ], + [ + "19:49", + "858234.0" + ], + [ + "20:00", + "764604.0" + ], + [ + "20:10", + "746760.0" + ], + [ + "20:19", + "741330.0" + ], + [ + "20:30", + "672582.0" + ], + [ + "20:40", + "659580.0" + ], + [ + "20:49", + "655998.0" + ], + [ + "21:00", + "573576.0" + ], + [ + "21:10", + "548304.0" + ], + [ + "21:19", + "548580.0" + ], + [ + "21:30", + "397254.0" + ], + [ + "21:40", + "369162.0" + ], + [ + "21:49", + "357558.0" + ], + [ + "22:00", + "296676.0" + ], + [ + "22:10", + "286518.0" + ], + [ + "22:19", + "280158.0" + ], + [ + "22:30", + "225870.0" + ], + [ + "22:40", + "218076.0" + ], + [ + "22:49", + "212910.0" + ], + [ + "23:00", + "177576.0" + ], + [ + "23:10", + "173880.0" + ], + [ + "23:19", + "169488.0" + ], + [ + "23:30", + "144684.0" + ], + [ + "23:40", + "141120.0" + ], + [ + "23:49", + "140670.0" + ], + [ + "00:00", + "108732.0" + ], + [ + "00:10", + "101082.0" + ], + [ + "00:19", + "95634.0" + ], + [ + "00:30", + "80946.0" + ], + [ + "00:40", + "76638.0" + ], + [ + "00:49", + "75294.0" + ], + [ + "01:00", + "64884.0" + ], + [ + "01:10", + "63444.0" + ], + [ + "01:19", + "61566.0" + ], + [ + "01:30", + "50286.0" + ], + [ + "01:40", + "49074.0" + ], + [ + "01:49", + "49428.0" + ], + [ + "02:00", + "38544.0" + ], + [ + "02:10", + "38124.0" + ], + [ + "02:19", + "36624.0" + ], + [ + "02:30", + "29544.0" + ], + [ + "02:40", + "29100.0" + ], + [ + "02:49", + "27612.0" + ], + [ + "03:00", + "6630.0" + ], + [ + "03:10", + "2460.0" + ], + [ + "03:19", + "1086.0" + ], + [ + "03:30", + "558.0" + ], + [ + "03:40", + "276.0" + ], + [ + "03:49", + "246.0" + ], + [ + "04:00", + "234.0" + ], + [ + "04:10", + "144.0" + ], + [ + "04:19", + "96.0" + ], + [ + "04:30", + "60.0" + ], + [ + "04:40", + "36.0" + ], + [ + "04:49", + "18.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332, + 25.5, + 25.666666666666668, + 25.833333333333332 + ], + "y": [ + 24588, + 25938, + 26820, + 32754, + 33360, + 33552, + 47640, + 47550, + 50220, + 75288, + 79890, + 80238, + 132072, + 138810, + 141666, + 241500, + 258882, + 263706, + 505632, + 533958, + 546036, + 1342422, + 1423170, + 1452966, + 2050326, + 2113128, + 2163108, + 2523504, + 2587740, + 2573634, + 2061486, + 1987320, + 1963326, + 1658646, + 1606374, + 1593426, + 1325244, + 1277838, + 1267140, + 1181208, + 1166178, + 1162584, + 1088328, + 1081110, + 1078224, + 1085778, + 1079778, + 1082808, + 1123212, + 1128654, + 1121832, + 1232970, + 1258722, + 1254588, + 1271928, + 1271874, + 1270626, + 1243224, + 1238766, + 1236054, + 1225098, + 1230486, + 1228782, + 1208694, + 1212726, + 1215984, + 1315752, + 1345284, + 1352646, + 1538586, + 1581066, + 1581978, + 1856130, + 1908756, + 1920324, + 1946484, + 1956582, + 1951788, + 2054004, + 2096760, + 2096424, + 1700280, + 1668114, + 1656306, + 1651380, + 1643880, + 1656024, + 1617528, + 1602114, + 1614228, + 1436952, + 1403916, + 1395696, + 1300422, + 1274448, + 1265196, + 1066998, + 1021950, + 1009236, + 895344, + 870582, + 858234, + 764604, + 746760, + 741330, + 672582, + 659580, + 655998, + 573576, + 548304, + 548580, + 397254, + 369162, + 357558, + 296676, + 286518, + 280158, + 225870, + 218076, + 212910, + 177576, + 173880, + 169488, + 144684, + 141120, + 140670, + 108732, + 101082, + 95634, + 80946, + 76638, + 75294, + 64884, + 63444, + 61566, + 50286, + 49074, + 49428, + 38544, + 38124, + 36624, + 29544, + 29100, + 27612, + 6630, + 2460, + 1086, + 558, + 276, + 246, + 234, + 144, + 96, + 60, + 36, + 18 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC trips (normalized to trips/hour) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_all_trips_per_hour(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " All veh trips/hour (requested + deadhead + refuel), scaled by bin size.\n", + " \"\"\"\n", + " bins = pd.to_numeric(new_df[\"depart_bin\"], errors=\"coerce\").dropna().astype(int)\n", + " if bins.empty:\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " counts = (\n", + " bins.value_counts()\n", + " .sort_index()\n", + " .reindex(pd.RangeIndex(0, bins.max() + 1), fill_value=0)\n", + " )\n", + "\n", + " factor = 60.0 / bin_minutes\n", + " rate = counts * factor\n", + "\n", + " times = start_time + pd.to_timedelta(rate.index * bin_minutes, unit=\"m\")\n", + " vals = rate.values\n", + "\n", + " df = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " df[\"hover\"] = [\n", + " f\"Trips/hour: {v:,.2f} (bin legs: {int(c):,}, bin={bin_minutes} min)\"\n", + " for v, c in zip(vals, counts.values)\n", + " ]\n", + " return df\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_all_trips_per_hour,\n", + " \"All TNC trips (normalized to trips/hour)\",\n", + " \"Trips per hour\",\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6545.189950123429" + ], + [ + "04:10", + "6547.63733536005" + ], + [ + "04:19", + "6831.531698405743" + ], + [ + "04:30", + "7917.918021798134" + ], + [ + "04:40", + "7749.150493249297" + ], + [ + "04:49", + "10240.911189079285" + ], + [ + "05:00", + "14747.59193265438" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20364.247886538506" + ], + [ + "05:30", + "28459.98631489277" + ], + [ + "05:40", + "25730.680422976613" + ], + [ + "05:49", + "27020.28838004172" + ], + [ + "06:00", + "36028.31477924064" + ], + [ + "06:10", + "43611.85952364653" + ], + [ + "06:19", + "44809.230216991156" + ], + [ + "06:30", + "84425.27709580958" + ], + [ + "06:40", + "82493.299576208" + ], + [ + "06:49", + "88236.05687234178" + ], + [ + "07:00", + "116652.43129101768" + ], + [ + "07:10", + "118311.24182028696" + ], + [ + "07:19", + "122550.91666447744" + ], + [ + "07:30", + "120680.99991070479" + ], + [ + "07:40", + "125823.76901327446" + ], + [ + "07:49", + "117770.40686918423" + ], + [ + "08:00", + "122151.47995305061" + ], + [ + "08:10", + "112554.267947115" + ], + [ + "08:19", + "130849.85913445428" + ], + [ + "08:30", + "102335.97105936706" + ], + [ + "08:40", + "102159.07312686369" + ], + [ + "08:49", + "107317.45056152344" + ], + [ + "09:00", + "107087.94615885615" + ], + [ + "09:10", + "117479.2766706571" + ], + [ + "09:19", + "123910.1672979109" + ], + [ + "09:30", + "129940.61579728872" + ], + [ + "09:40", + "129135.27079512924" + ], + [ + "09:49", + "131717.1171552278" + ], + [ + "10:00", + "124023.95888963342" + ], + [ + "10:10", + "131488.02519186214" + ], + [ + "10:19", + "119981.13164405152" + ], + [ + "10:30", + "142663.99847487733" + ], + [ + "10:40", + "141939.49763879925" + ], + [ + "10:49", + "140620.72027832642" + ], + [ + "11:00", + "121510.95984230563" + ], + [ + "11:10", + "106107.00804445893" + ], + [ + "11:19", + "107144.45218217745" + ], + [ + "11:30", + "86173.86165357381" + ], + [ + "11:40", + "80756.30324059725" + ], + [ + "11:49", + "83026.9595419541" + ], + [ + "12:00", + "66499.82963436842" + ], + [ + "12:10", + "66522.10454239324" + ], + [ + "12:19", + "66767.47853575274" + ], + [ + "12:30", + "64797.937318291515" + ], + [ + "12:40", + "67540.4185876809" + ], + [ + "12:49", + "65817.49586266279" + ], + [ + "13:00", + "78893.71533411741" + ], + [ + "13:10", + "73186.95984994993" + ], + [ + "13:19", + "70820.12788375095" + ], + [ + "13:30", + "70141.49779724702" + ], + [ + "13:40", + "84438.92533489689" + ], + [ + "13:49", + "84645.03119849414" + ], + [ + "14:00", + "92751.94683626667" + ], + [ + "14:10", + "87159.73329018429" + ], + [ + "14:19", + "93246.05263940245" + ], + [ + "14:30", + "114421.92231094837" + ], + [ + "14:40", + "108935.24962072447" + ], + [ + "14:49", + "105085.34844318777" + ], + [ + "15:00", + "134634.76266261935" + ], + [ + "15:10", + "133594.49480363354" + ], + [ + "15:19", + "139617.18787082657" + ], + [ + "15:30", + "128217.16166194528" + ], + [ + "15:40", + "127250.38479238003" + ], + [ + "15:49", + "127925.5896627903" + ], + [ + "16:00", + "152510.46986863017" + ], + [ + "16:10", + "148874.2583978176" + ], + [ + "16:19", + "151230.81790877134" + ], + [ + "16:30", + "107271.56698781624" + ], + [ + "16:40", + "106096.95737218112" + ], + [ + "16:49", + "106781.60374093428" + ], + [ + "17:00", + "122290.48391813412" + ], + [ + "17:10", + "123406.75806841627" + ], + [ + "17:19", + "135934.28426523507" + ], + [ + "17:30", + "144874.6012623757" + ], + [ + "17:40", + "128595.86153997481" + ], + [ + "17:49", + "132427.4469172731" + ], + [ + "18:00", + "124987.8809068501" + ], + [ + "18:10", + "125323.04861487821" + ], + [ + "18:19", + "122169.98825505003" + ], + [ + "18:30", + "120369.02038862184" + ], + [ + "18:40", + "129061.70185616612" + ], + [ + "18:49", + "121210.32663008943" + ], + [ + "19:00", + "129968.94652555883" + ], + [ + "19:10", + "131935.00063871965" + ], + [ + "19:19", + "133914.28902984783" + ], + [ + "19:30", + "105752.50942078605" + ], + [ + "19:40", + "102922.43924526125" + ], + [ + "19:49", + "118489.34243253618" + ], + [ + "20:00", + "111287.41973752901" + ], + [ + "20:10", + "114647.97871280462" + ], + [ + "20:19", + "109956.89612265676" + ], + [ + "20:30", + "90391.92895484716" + ], + [ + "20:40", + "105613.34460686892" + ], + [ + "20:49", + "102467.60150550306" + ], + [ + "21:00", + "98823.85649678484" + ], + [ + "21:10", + "106246.67787430063" + ], + [ + "21:19", + "102564.0241005756" + ], + [ + "21:30", + "68453.44811526686" + ], + [ + "21:40", + "63265.85060498491" + ], + [ + "21:49", + "68141.74796426296" + ], + [ + "22:00", + "69350.52440794185" + ], + [ + "22:10", + "76802.08567362651" + ], + [ + "22:19", + "65153.63947523385" + ], + [ + "22:30", + "41843.99157308042" + ], + [ + "22:40", + "39165.55959096551" + ], + [ + "22:49", + "51238.52599506453" + ], + [ + "23:00", + "51276.68657583743" + ], + [ + "23:10", + "41077.39914666116" + ], + [ + "23:19", + "42151.66996664554" + ], + [ + "23:30", + "30736.063846215606" + ], + [ + "23:40", + "36045.196448497474" + ], + [ + "23:49", + "38385.81055063382" + ], + [ + "00:00", + "21591.845989063382" + ], + [ + "00:10", + "10654.732493117452" + ], + [ + "00:19", + "10611.375357069075" + ], + [ + "00:30", + "5985.382693145424" + ], + [ + "00:40", + "6057.369140423834" + ], + [ + "00:49", + "7414.433489698917" + ], + [ + "01:00", + "5372.706222161651" + ], + [ + "01:10", + "6427.535049766302" + ], + [ + "01:19", + "6284.730732411146" + ], + [ + "01:30", + "6337.76782887429" + ], + [ + "01:40", + "4290.477592796087" + ], + [ + "01:49", + "5177.2016314566135" + ], + [ + "02:00", + "6058.832576304674" + ], + [ + "02:10", + "4773.717004671693" + ], + [ + "02:19", + "4721.482507389039" + ], + [ + "02:30", + "5093.498391665518" + ], + [ + "02:40", + "4175.626140207052" + ], + [ + "02:49", + "5613.475714121014" + ], + [ + "03:00", + "1450.455493569374" + ], + [ + "03:10", + "7.14672714471817" + ], + [ + "03:19", + "7.662584066390989" + ], + [ + "03:30", + "15.863901615142826" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "5.607187271118163" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6545.189950123429, + 6547.63733536005, + 6831.531698405743, + 7917.918021798134, + 7749.150493249297, + 10240.911189079285, + 14747.59193265438, + 19564.96947826445, + 20364.247886538506, + 28459.98631489277, + 25730.680422976613, + 27020.28838004172, + 36028.31477924064, + 43611.85952364653, + 44809.230216991156, + 84425.27709580958, + 82493.299576208, + 88236.05687234178, + 116652.43129101768, + 118311.24182028696, + 122550.91666447744, + 120680.99991070479, + 125823.76901327446, + 117770.40686918423, + 122151.47995305061, + 112554.267947115, + 130849.85913445428, + 102335.97105936706, + 102159.07312686369, + 107317.45056152344, + 107087.94615885615, + 117479.2766706571, + 123910.1672979109, + 129940.61579728872, + 129135.27079512924, + 131717.1171552278, + 124023.95888963342, + 131488.02519186214, + 119981.13164405152, + 142663.99847487733, + 141939.49763879925, + 140620.72027832642, + 121510.95984230563, + 106107.00804445893, + 107144.45218217745, + 86173.86165357381, + 80756.30324059725, + 83026.9595419541, + 66499.82963436842, + 66522.10454239324, + 66767.47853575274, + 64797.937318291515, + 67540.4185876809, + 65817.49586266279, + 78893.71533411741, + 73186.95984994993, + 70820.12788375095, + 70141.49779724702, + 84438.92533489689, + 84645.03119849414, + 92751.94683626667, + 87159.73329018429, + 93246.05263940245, + 114421.92231094837, + 108935.24962072447, + 105085.34844318777, + 134634.76266261935, + 133594.49480363354, + 139617.18787082657, + 128217.16166194528, + 127250.38479238003, + 127925.5896627903, + 152510.46986863017, + 148874.2583978176, + 151230.81790877134, + 107271.56698781624, + 106096.95737218112, + 106781.60374093428, + 122290.48391813412, + 123406.75806841627, + 135934.28426523507, + 144874.6012623757, + 128595.86153997481, + 132427.4469172731, + 124987.8809068501, + 125323.04861487821, + 122169.98825505003, + 120369.02038862184, + 129061.70185616612, + 121210.32663008943, + 129968.94652555883, + 131935.00063871965, + 133914.28902984783, + 105752.50942078605, + 102922.43924526125, + 118489.34243253618, + 111287.41973752901, + 114647.97871280462, + 109956.89612265676, + 90391.92895484716, + 105613.34460686892, + 102467.60150550306, + 98823.85649678484, + 106246.67787430063, + 102564.0241005756, + 68453.44811526686, + 63265.85060498491, + 68141.74796426296, + 69350.52440794185, + 76802.08567362651, + 65153.63947523385, + 41843.99157308042, + 39165.55959096551, + 51238.52599506453, + 51276.68657583743, + 41077.39914666116, + 42151.66996664554, + 30736.063846215606, + 36045.196448497474, + 38385.81055063382, + 21591.845989063382, + 10654.732493117452, + 10611.375357069075, + 5985.382693145424, + 6057.369140423834, + 7414.433489698917, + 5372.706222161651, + 6427.535049766302, + 6284.730732411146, + 6337.76782887429, + 4290.477592796087, + 5177.2016314566135, + 6058.832576304674, + 4773.717004671693, + 4721.482507389039, + 5093.498391665518, + 4175.626140207052, + 5613.475714121014, + 1450.455493569374, + 7.14672714471817, + 7.662584066390989, + 15.863901615142826, + 0, + 0, + 0, + 5.607187271118163 + ] + }, + { + "customdata": [ + [ + "03:00", + "2442.159960307181" + ], + [ + "03:04", + "6101.76404106617" + ], + [ + "03:10", + "4096.84218621254" + ], + [ + "03:15", + "3993.5988091528416" + ], + [ + "03:19", + "3126.721272736788" + ], + [ + "03:25", + "5465.715449810028" + ], + [ + "03:30", + "5089.945628464222" + ], + [ + "03:34", + "5688.559496194124" + ], + [ + "03:40", + "6723.306904256344" + ], + [ + "03:45", + "4690.288877427578" + ], + [ + "03:49", + "6085.737823963165" + ], + [ + "03:55", + "4283.7068502902985" + ], + [ + "04:00", + "5101.243597000837" + ], + [ + "04:04", + "6466.667730510235" + ], + [ + "04:10", + "8500.7641299963" + ], + [ + "04:15", + "6714.211458384991" + ], + [ + "04:19", + "5791.346609741449" + ], + [ + "04:25", + "8004.908908009529" + ], + [ + "04:30", + "8393.852798223495" + ], + [ + "04:34", + "7430.817796647549" + ], + [ + "04:40", + "7555.4690218269825" + ], + [ + "04:45", + "7414.5700498223305" + ], + [ + "04:49", + "10203.112193226814" + ], + [ + "04:55", + "10176.470433533192" + ], + [ + "05:00", + "13261.239642262459" + ], + [ + "05:04", + "16175.50711414218" + ], + [ + "05:10", + "19223.32828053832" + ], + [ + "05:15", + "18330.48909366131" + ], + [ + "05:19", + "19876.531479746103" + ], + [ + "05:25", + "21772.77336037159" + ], + [ + "05:30", + "24298.180496782064" + ], + [ + "05:34", + "32329.95630785823" + ], + [ + "05:40", + "26033.78880929947" + ], + [ + "05:45", + "24567.817966282368" + ], + [ + "05:49", + "27876.194976836443" + ], + [ + "05:55", + "26587.557391941547" + ], + [ + "06:00", + "35969.47717731446" + ], + [ + "06:04", + "37623.14236611128" + ], + [ + "06:10", + "42955.84823973477" + ], + [ + "06:15", + "43184.211517721415" + ], + [ + "06:19", + "42747.49138042331" + ], + [ + "06:25", + "51048.90474676341" + ], + [ + "06:30", + "83735.81762811542" + ], + [ + "06:34", + "85709.50152549148" + ], + [ + "06:40", + "81129.73899111897" + ], + [ + "06:45", + "90927.46608906984" + ], + [ + "06:49", + "81034.02995708585" + ], + [ + "06:55", + "88572.18544084579" + ], + [ + "07:00", + "124660.40519640595" + ], + [ + "07:04", + "116904.58920110017" + ], + [ + "07:10", + "119343.42921218276" + ], + [ + "07:15", + "119012.49123555422" + ], + [ + "07:19", + "126488.60886284709" + ], + [ + "07:25", + "121940.94932220876" + ], + [ + "07:30", + "127538.99263072014" + ], + [ + "07:34", + "127064.54248903692" + ], + [ + "07:40", + "130154.0633039698" + ], + [ + "07:45", + "128814.77934868634" + ], + [ + "07:49", + "121412.45690643042" + ], + [ + "07:55", + "122546.94740344584" + ], + [ + "08:00", + "116625.88461886346" + ], + [ + "08:04", + "125128.35504499823" + ], + [ + "08:10", + "125076.5391080752" + ], + [ + "08:15", + "115795.74830970168" + ], + [ + "08:19", + "127485.3109568283" + ], + [ + "08:25", + "126044.93174886703" + ], + [ + "08:30", + "108728.03611817211" + ], + [ + "08:34", + "108161.61375834793" + ], + [ + "08:40", + "105064.50407579541" + ], + [ + "08:45", + "102118.92613665015" + ], + [ + "08:49", + "106159.67208722234" + ], + [ + "08:55", + "104713.74286821485" + ], + [ + "09:00", + "109700.59095040709" + ], + [ + "09:04", + "106102.71488779038" + ], + [ + "09:10", + "110397.7230026722" + ], + [ + "09:15", + "130955.98645077646" + ], + [ + "09:19", + "119763.57505054772" + ], + [ + "09:25", + "119476.7316678688" + ], + [ + "09:30", + "141689.2346702814" + ], + [ + "09:34", + "137743.88839522004" + ], + [ + "09:40", + "130650.41707523167" + ], + [ + "09:45", + "128164.82456434518" + ], + [ + "09:49", + "134391.29973770678" + ], + [ + "09:55", + "127369.48631069809" + ], + [ + "10:00", + "132323.3252762854" + ], + [ + "10:04", + "124883.4271255061" + ], + [ + "10:10", + "131660.0024594441" + ], + [ + "10:15", + "125729.97113484889" + ], + [ + "10:19", + "120806.97001571953" + ], + [ + "10:25", + "124340.46271202713" + ], + [ + "10:30", + "151175.25510500371" + ], + [ + "10:34", + "136245.2093012184" + ], + [ + "10:40", + "146775.95488639176" + ], + [ + "10:45", + "138499.7812634334" + ], + [ + "10:49", + "149466.7578696236" + ], + [ + "10:55", + "140526.67628169805" + ], + [ + "11:00", + "122007.00126611441" + ], + [ + "11:04", + "122865.15792513639" + ], + [ + "11:10", + "119273.83925369382" + ], + [ + "11:15", + "106582.90568782389" + ], + [ + "11:19", + "108305.56482186913" + ], + [ + "11:25", + "107744.24759978056" + ], + [ + "11:30", + "88099.09427782148" + ], + [ + "11:34", + "85685.08781933784" + ], + [ + "11:40", + "86463.36082188785" + ], + [ + "11:45", + "81954.31189394742" + ], + [ + "11:49", + "83061.75641287118" + ], + [ + "11:55", + "85340.56330756098" + ], + [ + "12:00", + "59956.420608244836" + ], + [ + "12:04", + "76164.33885392547" + ], + [ + "12:10", + "67119.8515715003" + ], + [ + "12:15", + "64970.918949857354" + ], + [ + "12:19", + "71042.46189916134" + ], + [ + "12:25", + "62139.49437189102" + ], + [ + "12:30", + "75243.36745876819" + ], + [ + "12:34", + "67754.55264924467" + ], + [ + "12:40", + "66328.1141545996" + ], + [ + "12:45", + "63618.18822777271" + ], + [ + "12:49", + "70061.66395148635" + ], + [ + "12:55", + "70031.08401348442" + ], + [ + "13:00", + "73604.83869089931" + ], + [ + "13:04", + "75796.39972237498" + ], + [ + "13:10", + "88397.98636418581" + ], + [ + "13:15", + "64762.33725193888" + ], + [ + "13:19", + "77096.89882732183" + ], + [ + "13:25", + "66134.02285377681" + ], + [ + "13:30", + "78957.52077908814" + ], + [ + "13:34", + "65920.05561447144" + ], + [ + "13:40", + "85297.38350980729" + ], + [ + "13:45", + "83998.50582329929" + ], + [ + "13:49", + "80681.96422091872" + ], + [ + "13:55", + "82501.70465471596" + ], + [ + "14:00", + "94231.08453194797" + ], + [ + "14:04", + "96997.16412623227" + ], + [ + "14:10", + "90040.8505306989" + ], + [ + "14:15", + "92302.82563901693" + ], + [ + "14:19", + "93978.2457601726" + ], + [ + "14:25", + "94053.0474903211" + ], + [ + "14:30", + "112098.62743484974" + ], + [ + "14:34", + "114847.64016640931" + ], + [ + "14:40", + "115024.11887412518" + ], + [ + "14:45", + "110981.68294604123" + ], + [ + "14:49", + "108123.12041328102" + ], + [ + "14:55", + "103304.00379145145" + ], + [ + "15:00", + "127781.37377467006" + ], + [ + "15:04", + "144584.79420083016" + ], + [ + "15:10", + "133237.65544961393" + ], + [ + "15:15", + "135602.5360186547" + ], + [ + "15:19", + "150155.37222386152" + ], + [ + "15:25", + "134485.15917744488" + ], + [ + "15:30", + "149563.4833671078" + ], + [ + "15:34", + "117269.12600393593" + ], + [ + "15:40", + "123921.3278889656" + ], + [ + "15:45", + "137988.383302778" + ], + [ + "15:49", + "122636.04209205508" + ], + [ + "15:55", + "135109.10547765344" + ], + [ + "16:00", + "159514.65452136844" + ], + [ + "16:04", + "147768.0811148286" + ], + [ + "16:10", + "147563.59453578293" + ], + [ + "16:15", + "155505.28014720976" + ], + [ + "16:19", + "153057.6689326018" + ], + [ + "16:25", + "149146.46730510145" + ], + [ + "16:30", + "119419.63546977192" + ], + [ + "16:34", + "118327.16562252492" + ], + [ + "16:40", + "110301.16407678276" + ], + [ + "16:45", + "109048.75903496146" + ], + [ + "16:49", + "106006.96316309273" + ], + [ + "16:55", + "107160.03734267503" + ], + [ + "17:00", + "120523.45299042016" + ], + [ + "17:04", + "121285.25514936447" + ], + [ + "17:10", + "126114.21617165208" + ], + [ + "17:15", + "129844.19807162136" + ], + [ + "17:19", + "156767.44842123985" + ], + [ + "17:25", + "135655.3715422824" + ], + [ + "17:30", + "139532.15956914425" + ], + [ + "17:34", + "142962.0831612423" + ], + [ + "17:40", + "125594.47365074605" + ], + [ + "17:45", + "131002.14585652202" + ], + [ + "17:49", + "149251.20131067932" + ], + [ + "17:55", + "129703.8017790243" + ], + [ + "18:00", + "133149.9636822939" + ], + [ + "18:04", + "121689.37213777006" + ], + [ + "18:10", + "124537.75486222655" + ], + [ + "18:15", + "130241.6926182881" + ], + [ + "18:19", + "117882.3039938584" + ], + [ + "18:25", + "127883.14960511774" + ], + [ + "18:30", + "117176.94523823261" + ], + [ + "18:34", + "130392.52203941345" + ], + [ + "18:40", + "128664.3219338134" + ], + [ + "18:45", + "132710.53314813226" + ], + [ + "18:49", + "124541.21405442059" + ], + [ + "18:55", + "123036.89000228047" + ], + [ + "19:00", + "136620.8825027123" + ], + [ + "19:04", + "126777.15106918663" + ], + [ + "19:10", + "133615.4372830689" + ], + [ + "19:15", + "131867.83353006095" + ], + [ + "19:19", + "135065.65061149746" + ], + [ + "19:25", + "137679.74942676723" + ], + [ + "19:30", + "118393.324091658" + ], + [ + "19:34", + "100384.6061874032" + ], + [ + "19:40", + "100131.69933532923" + ], + [ + "19:45", + "111484.06697865576" + ], + [ + "19:49", + "118040.95872724056" + ], + [ + "19:55", + "118956.45714826137" + ], + [ + "20:00", + "110418.13855873793" + ], + [ + "20:04", + "117404.6205926612" + ], + [ + "20:10", + "120113.88420615345" + ], + [ + "20:15", + "113954.48816167563" + ], + [ + "20:19", + "105464.0087928772" + ], + [ + "20:25", + "114903.04009086639" + ], + [ + "20:30", + "90582.76298531145" + ], + [ + "20:34", + "99977.28023725748" + ], + [ + "20:40", + "111648.63689944893" + ], + [ + "20:45", + "111073.29131430387" + ], + [ + "20:49", + "93350.96177005023" + ], + [ + "20:55", + "99777.66455516964" + ], + [ + "21:00", + "104445.18437719345" + ], + [ + "21:04", + "99716.15071322769" + ], + [ + "21:10", + "107342.17645637691" + ], + [ + "21:15", + "107169.76542824507" + ], + [ + "21:19", + "99286.43326109648" + ], + [ + "21:25", + "103921.33797734231" + ], + [ + "21:30", + "67096.39472863823" + ], + [ + "21:34", + "68431.62763381004" + ], + [ + "21:40", + "72172.02985315025" + ], + [ + "21:45", + "61287.53478645533" + ], + [ + "21:49", + "67930.70524203032" + ], + [ + "21:55", + "80373.74432064593" + ], + [ + "22:00", + "65956.21784037352" + ], + [ + "22:04", + "83583.05131521821" + ], + [ + "22:10", + "63187.834031648934" + ], + [ + "22:15", + "72082.73197634518" + ], + [ + "22:19", + "61087.43166703731" + ], + [ + "22:25", + "70804.4464006573" + ], + [ + "22:30", + "44266.9039362967" + ], + [ + "22:34", + "34819.01328326762" + ], + [ + "22:40", + "48097.2586908862" + ], + [ + "22:45", + "41138.89569917321" + ], + [ + "22:49", + "52781.80184108019" + ], + [ + "22:55", + "60510.71275509149" + ], + [ + "23:00", + "45011.91629482806" + ], + [ + "23:04", + "43279.417712531984" + ], + [ + "23:10", + "45475.11655046046" + ], + [ + "23:15", + "37594.81166553497" + ], + [ + "23:19", + "42930.88209553063" + ], + [ + "23:25", + "40929.38628291339" + ], + [ + "23:30", + "33160.784819841385" + ], + [ + "23:34", + "31388.137028709054" + ], + [ + "23:40", + "38113.18020924926" + ], + [ + "23:45", + "34160.550609871745" + ], + [ + "23:49", + "36192.269059717655" + ], + [ + "23:55", + "37386.37595676631" + ], + [ + "00:00", + "28652.36933925748" + ], + [ + "00:04", + "19040.519249796867" + ], + [ + "00:10", + "13433.548933625221" + ], + [ + "00:15", + "9125.798127382994" + ], + [ + "00:19", + "10214.753816708922" + ], + [ + "00:25", + "9024.98402774334" + ], + [ + "00:30", + "7004.370533198118" + ], + [ + "00:34", + "7340.190939724445" + ], + [ + "00:40", + "6784.986977130175" + ], + [ + "00:45", + "4987.887875542045" + ], + [ + "00:49", + "7601.605780877173" + ], + [ + "00:55", + "6202.862804621458" + ], + [ + "01:00", + "5181.262627825141" + ], + [ + "01:04", + "5869.1110798716545" + ], + [ + "01:10", + "6018.820188224316" + ], + [ + "01:15", + "6715.892774373293" + ], + [ + "01:19", + "5985.611427694559" + ], + [ + "01:25", + "5101.61710730195" + ], + [ + "01:30", + "6182.105372965336" + ], + [ + "01:34", + "6876.544570147991" + ], + [ + "01:40", + "4929.652284443378" + ], + [ + "01:45", + "3392.4147528111935" + ], + [ + "01:49", + "4852.815797388554" + ], + [ + "01:55", + "5736.038982242346" + ], + [ + "02:00", + "4955.5584652125835" + ], + [ + "02:04", + "7322.8105791807175" + ], + [ + "02:10", + "5507.61053609848" + ], + [ + "02:15", + "3723.8851978182793" + ], + [ + "02:19", + "4048.386190675199" + ], + [ + "02:25", + "6019.224536776543" + ], + [ + "02:30", + "4825.895241558552" + ], + [ + "02:34", + "5790.674214497209" + ], + [ + "02:40", + "6023.2846865057945" + ], + [ + "02:45", + "4219.018591403961" + ], + [ + "02:49", + "3611.283351369202" + ], + [ + "02:55", + "5198.9147554636" + ], + [ + "03:00", + "3392.709280014038" + ], + [ + "03:04", + "528.8130862712861" + ], + [ + "03:10", + "10.362660884857178" + ], + [ + "03:15", + "286.13176131248474" + ], + [ + "03:19", + "0.0" + ], + [ + "03:25", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:34", + "280.83453369140625" + ], + [ + "03:40", + "280.83453369140625" + ], + [ + "03:45", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "03:55", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:04", + "280.83453369140625" + ], + [ + "04:10", + "292.0489082336426" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25, + 23.333333333333332, + 23.416666666666668, + 23.5, + 23.583333333333332, + 23.666666666666668, + 23.75, + 23.833333333333332, + 23.916666666666668, + 24, + 24.083333333333332, + 24.166666666666668, + 24.25, + 24.333333333333332, + 24.416666666666668, + 24.5, + 24.583333333333332, + 24.666666666666668, + 24.75, + 24.833333333333332, + 24.916666666666668, + 25, + 25.083333333333332, + 25.166666666666668 + ], + "y": [ + 2442.159960307181, + 6101.76404106617, + 4096.84218621254, + 3993.5988091528416, + 3126.721272736788, + 5465.715449810028, + 5089.945628464222, + 5688.559496194124, + 6723.306904256344, + 4690.288877427578, + 6085.737823963165, + 4283.7068502902985, + 5101.243597000837, + 6466.667730510235, + 8500.7641299963, + 6714.211458384991, + 5791.346609741449, + 8004.908908009529, + 8393.852798223495, + 7430.817796647549, + 7555.4690218269825, + 7414.5700498223305, + 10203.112193226814, + 10176.470433533192, + 13261.239642262459, + 16175.50711414218, + 19223.32828053832, + 18330.48909366131, + 19876.531479746103, + 21772.77336037159, + 24298.180496782064, + 32329.95630785823, + 26033.78880929947, + 24567.817966282368, + 27876.194976836443, + 26587.557391941547, + 35969.47717731446, + 37623.14236611128, + 42955.84823973477, + 43184.211517721415, + 42747.49138042331, + 51048.90474676341, + 83735.81762811542, + 85709.50152549148, + 81129.73899111897, + 90927.46608906984, + 81034.02995708585, + 88572.18544084579, + 124660.40519640595, + 116904.58920110017, + 119343.42921218276, + 119012.49123555422, + 126488.60886284709, + 121940.94932220876, + 127538.99263072014, + 127064.54248903692, + 130154.0633039698, + 128814.77934868634, + 121412.45690643042, + 122546.94740344584, + 116625.88461886346, + 125128.35504499823, + 125076.5391080752, + 115795.74830970168, + 127485.3109568283, + 126044.93174886703, + 108728.03611817211, + 108161.61375834793, + 105064.50407579541, + 102118.92613665015, + 106159.67208722234, + 104713.74286821485, + 109700.59095040709, + 106102.71488779038, + 110397.7230026722, + 130955.98645077646, + 119763.57505054772, + 119476.7316678688, + 141689.2346702814, + 137743.88839522004, + 130650.41707523167, + 128164.82456434518, + 134391.29973770678, + 127369.48631069809, + 132323.3252762854, + 124883.4271255061, + 131660.0024594441, + 125729.97113484889, + 120806.97001571953, + 124340.46271202713, + 151175.25510500371, + 136245.2093012184, + 146775.95488639176, + 138499.7812634334, + 149466.7578696236, + 140526.67628169805, + 122007.00126611441, + 122865.15792513639, + 119273.83925369382, + 106582.90568782389, + 108305.56482186913, + 107744.24759978056, + 88099.09427782148, + 85685.08781933784, + 86463.36082188785, + 81954.31189394742, + 83061.75641287118, + 85340.56330756098, + 59956.420608244836, + 76164.33885392547, + 67119.8515715003, + 64970.918949857354, + 71042.46189916134, + 62139.49437189102, + 75243.36745876819, + 67754.55264924467, + 66328.1141545996, + 63618.18822777271, + 70061.66395148635, + 70031.08401348442, + 73604.83869089931, + 75796.39972237498, + 88397.98636418581, + 64762.33725193888, + 77096.89882732183, + 66134.02285377681, + 78957.52077908814, + 65920.05561447144, + 85297.38350980729, + 83998.50582329929, + 80681.96422091872, + 82501.70465471596, + 94231.08453194797, + 96997.16412623227, + 90040.8505306989, + 92302.82563901693, + 93978.2457601726, + 94053.0474903211, + 112098.62743484974, + 114847.64016640931, + 115024.11887412518, + 110981.68294604123, + 108123.12041328102, + 103304.00379145145, + 127781.37377467006, + 144584.79420083016, + 133237.65544961393, + 135602.5360186547, + 150155.37222386152, + 134485.15917744488, + 149563.4833671078, + 117269.12600393593, + 123921.3278889656, + 137988.383302778, + 122636.04209205508, + 135109.10547765344, + 159514.65452136844, + 147768.0811148286, + 147563.59453578293, + 155505.28014720976, + 153057.6689326018, + 149146.46730510145, + 119419.63546977192, + 118327.16562252492, + 110301.16407678276, + 109048.75903496146, + 106006.96316309273, + 107160.03734267503, + 120523.45299042016, + 121285.25514936447, + 126114.21617165208, + 129844.19807162136, + 156767.44842123985, + 135655.3715422824, + 139532.15956914425, + 142962.0831612423, + 125594.47365074605, + 131002.14585652202, + 149251.20131067932, + 129703.8017790243, + 133149.9636822939, + 121689.37213777006, + 124537.75486222655, + 130241.6926182881, + 117882.3039938584, + 127883.14960511774, + 117176.94523823261, + 130392.52203941345, + 128664.3219338134, + 132710.53314813226, + 124541.21405442059, + 123036.89000228047, + 136620.8825027123, + 126777.15106918663, + 133615.4372830689, + 131867.83353006095, + 135065.65061149746, + 137679.74942676723, + 118393.324091658, + 100384.6061874032, + 100131.69933532923, + 111484.06697865576, + 118040.95872724056, + 118956.45714826137, + 110418.13855873793, + 117404.6205926612, + 120113.88420615345, + 113954.48816167563, + 105464.0087928772, + 114903.04009086639, + 90582.76298531145, + 99977.28023725748, + 111648.63689944893, + 111073.29131430387, + 93350.96177005023, + 99777.66455516964, + 104445.18437719345, + 99716.15071322769, + 107342.17645637691, + 107169.76542824507, + 99286.43326109648, + 103921.33797734231, + 67096.39472863823, + 68431.62763381004, + 72172.02985315025, + 61287.53478645533, + 67930.70524203032, + 80373.74432064593, + 65956.21784037352, + 83583.05131521821, + 63187.834031648934, + 72082.73197634518, + 61087.43166703731, + 70804.4464006573, + 44266.9039362967, + 34819.01328326762, + 48097.2586908862, + 41138.89569917321, + 52781.80184108019, + 60510.71275509149, + 45011.91629482806, + 43279.417712531984, + 45475.11655046046, + 37594.81166553497, + 42930.88209553063, + 40929.38628291339, + 33160.784819841385, + 31388.137028709054, + 38113.18020924926, + 34160.550609871745, + 36192.269059717655, + 37386.37595676631, + 28652.36933925748, + 19040.519249796867, + 13433.548933625221, + 9125.798127382994, + 10214.753816708922, + 9024.98402774334, + 7004.370533198118, + 7340.190939724445, + 6784.986977130175, + 4987.887875542045, + 7601.605780877173, + 6202.862804621458, + 5181.262627825141, + 5869.1110798716545, + 6018.820188224316, + 6715.892774373293, + 5985.611427694559, + 5101.61710730195, + 6182.105372965336, + 6876.544570147991, + 4929.652284443378, + 3392.4147528111935, + 4852.815797388554, + 5736.038982242346, + 4955.5584652125835, + 7322.8105791807175, + 5507.61053609848, + 3723.8851978182793, + 4048.386190675199, + 6019.224536776543, + 4825.895241558552, + 5790.674214497209, + 6023.2846865057945, + 4219.018591403961, + 3611.283351369202, + 5198.9147554636, + 3392.709280014038, + 528.8130862712861, + 10.362660884857178, + 286.13176131248474, + 0, + 0, + 0, + 280.83453369140625, + 280.83453369140625, + 0, + 0, + 0, + 0, + 280.83453369140625, + 292.0489082336426 + ] + }, + { + "customdata": [ + [ + "03:00", + "4485.755118459463" + ], + [ + "03:15", + "4557.913561761379" + ], + [ + "03:30", + "5988.271899431944" + ], + [ + "03:45", + "4822.989013969898" + ], + [ + "04:00", + "6956.778880864382" + ], + [ + "04:15", + "6367.618642926216" + ], + [ + "04:30", + "8126.923464357853" + ], + [ + "04:45", + "9691.798774063587" + ], + [ + "05:00", + "17089.880058139563" + ], + [ + "05:15", + "19568.821277737617" + ], + [ + "05:30", + "27738.935208916664" + ], + [ + "05:45", + "25188.611421078444" + ], + [ + "06:00", + "40534.23557115346" + ], + [ + "06:15", + "44201.45986075699" + ], + [ + "06:30", + "79169.73386166245" + ], + [ + "06:45", + "87452.66169828922" + ], + [ + "07:00", + "113885.13113545626" + ], + [ + "07:15", + "118884.21564413607" + ], + [ + "07:30", + "121380.37281801552" + ], + [ + "07:45", + "119103.61916820705" + ], + [ + "08:00", + "120032.91322673857" + ], + [ + "08:15", + "118578.36023744196" + ], + [ + "08:30", + "101266.07582936436" + ], + [ + "08:45", + "104215.2040271312" + ], + [ + "09:00", + "110842.19760840386" + ], + [ + "09:15", + "121646.57342371345" + ], + [ + "09:30", + "130184.57588984072" + ], + [ + "09:45", + "130972.4649060443" + ], + [ + "10:00", + "123494.1735746488" + ], + [ + "10:15", + "124046.40502565354" + ], + [ + "10:30", + "141743.8639087677" + ], + [ + "10:45", + "141043.99079396576" + ], + [ + "11:00", + "111279.7785282135" + ], + [ + "11:15", + "104633.79055214673" + ], + [ + "11:30", + "83731.66694052517" + ], + [ + "11:45", + "83820.61348812282" + ], + [ + "12:00", + "63062.240612626076" + ], + [ + "12:15", + "67394.8071359843" + ], + [ + "12:30", + "70603.26218471676" + ], + [ + "12:45", + "69509.97431639582" + ], + [ + "13:00", + "72644.00493396074" + ], + [ + "13:15", + "68761.91197061539" + ], + [ + "13:30", + "80571.4309020415" + ], + [ + "13:45", + "81409.43620730937" + ], + [ + "14:00", + "90541.9850595817" + ], + [ + "14:15", + "90250.35380654782" + ], + [ + "14:30", + "110822.05694682151" + ], + [ + "14:45", + "103577.43951606005" + ], + [ + "15:00", + "133431.11001945287" + ], + [ + "15:15", + "136558.45506640524" + ], + [ + "15:30", + "124206.29655195773" + ], + [ + "15:45", + "132366.9923855886" + ], + [ + "16:00", + "145999.3775229007" + ], + [ + "16:15", + "149464.55615804344" + ], + [ + "16:30", + "102960.25752492994" + ], + [ + "16:45", + "105251.25050286204" + ], + [ + "17:00", + "129330.82350979745" + ], + [ + "17:15", + "132740.209937118" + ], + [ + "17:30", + "131700.91199414432" + ], + [ + "17:45", + "132745.6601632759" + ], + [ + "18:00", + "121407.93565369397" + ], + [ + "18:15", + "123123.39313645661" + ], + [ + "18:30", + "119328.59956365079" + ], + [ + "18:45", + "124503.53632238507" + ], + [ + "19:00", + "132192.60184065253" + ], + [ + "19:15", + "133297.48297838122" + ], + [ + "19:30", + "104651.03494750708" + ], + [ + "19:45", + "107630.94857145846" + ], + [ + "20:00", + "114643.02101349086" + ], + [ + "20:15", + "107152.88148698956" + ], + [ + "20:30", + "98472.76967474073" + ], + [ + "20:45", + "97909.33504038304" + ], + [ + "21:00", + "102957.72591420263" + ], + [ + "21:15", + "103267.4614707008" + ], + [ + "21:30", + "68526.00731284916" + ], + [ + "21:45", + "69351.27075580508" + ], + [ + "22:00", + "68050.5000955984" + ], + [ + "22:15", + "67571.79631021619" + ], + [ + "22:30", + "42063.43487236649" + ], + [ + "22:45", + "52407.897122204304" + ], + [ + "23:00", + "41270.982170298696" + ], + [ + "23:15", + "40404.327856719494" + ], + [ + "23:30", + "35413.332149513066" + ], + [ + "23:45", + "39626.20618624985" + ], + [ + "00:00", + "10845.067101120949" + ], + [ + "00:15", + "9881.245077759027" + ], + [ + "00:30", + "6566.969636745751" + ], + [ + "00:45", + "6444.5699575170875" + ], + [ + "01:00", + "7661.199453279376" + ], + [ + "01:15", + "6452.405355259776" + ], + [ + "01:30", + "5303.7677501142025" + ], + [ + "01:45", + "6025.500093609095" + ], + [ + "02:00", + "4952.930771321058" + ], + [ + "02:15", + "4871.247457593679" + ], + [ + "02:30", + "5139.492730304599" + ], + [ + "02:45", + "5386.579685077071" + ], + [ + "03:00", + "26.88139772415161" + ], + [ + "03:15", + "33.96258068084717" + ], + [ + "03:30", + "4.40873908996582" + ], + [ + "03:45", + "93.61151123046875" + ], + [ + "04:00", + "108.56401062011719" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25, + 23.5, + 23.75, + 24, + 24.25, + 24.5, + 24.75, + 25 + ], + "y": [ + 4485.755118459463, + 4557.913561761379, + 5988.271899431944, + 4822.989013969898, + 6956.778880864382, + 6367.618642926216, + 8126.923464357853, + 9691.798774063587, + 17089.880058139563, + 19568.821277737617, + 27738.935208916664, + 25188.611421078444, + 40534.23557115346, + 44201.45986075699, + 79169.73386166245, + 87452.66169828922, + 113885.13113545626, + 118884.21564413607, + 121380.37281801552, + 119103.61916820705, + 120032.91322673857, + 118578.36023744196, + 101266.07582936436, + 104215.2040271312, + 110842.19760840386, + 121646.57342371345, + 130184.57588984072, + 130972.4649060443, + 123494.1735746488, + 124046.40502565354, + 141743.8639087677, + 141043.99079396576, + 111279.7785282135, + 104633.79055214673, + 83731.66694052517, + 83820.61348812282, + 63062.240612626076, + 67394.8071359843, + 70603.26218471676, + 69509.97431639582, + 72644.00493396074, + 68761.91197061539, + 80571.4309020415, + 81409.43620730937, + 90541.9850595817, + 90250.35380654782, + 110822.05694682151, + 103577.43951606005, + 133431.11001945287, + 136558.45506640524, + 124206.29655195773, + 132366.9923855886, + 145999.3775229007, + 149464.55615804344, + 102960.25752492994, + 105251.25050286204, + 129330.82350979745, + 132740.209937118, + 131700.91199414432, + 132745.6601632759, + 121407.93565369397, + 123123.39313645661, + 119328.59956365079, + 124503.53632238507, + 132192.60184065253, + 133297.48297838122, + 104651.03494750708, + 107630.94857145846, + 114643.02101349086, + 107152.88148698956, + 98472.76967474073, + 97909.33504038304, + 102957.72591420263, + 103267.4614707008, + 68526.00731284916, + 69351.27075580508, + 68050.5000955984, + 67571.79631021619, + 42063.43487236649, + 52407.897122204304, + 41270.982170298696, + 40404.327856719494, + 35413.332149513066, + 39626.20618624985, + 10845.067101120949, + 9881.245077759027, + 6566.969636745751, + 6444.5699575170875, + 7661.199453279376, + 6452.405355259776, + 5303.7677501142025, + 6025.500093609095, + 4952.930771321058, + 4871.247457593679, + 5139.492730304599, + 5386.579685077071, + 26.88139772415161, + 33.96258068084717, + 4.40873908996582, + 93.61151123046875, + 108.56401062011719 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC VMT (normalized to per-hour) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "VMT per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6545.189950123429" + ], + [ + "04:10", + "6547.63733536005" + ], + [ + "04:19", + "6831.531698405743" + ], + [ + "04:30", + "7917.918021798134" + ], + [ + "04:40", + "7749.150493249297" + ], + [ + "04:49", + "10240.911189079285" + ], + [ + "05:00", + "14747.59193265438" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20364.247886538506" + ], + [ + "05:30", + "28459.98631489277" + ], + [ + "05:40", + "25730.680422976613" + ], + [ + "05:49", + "27020.28838004172" + ], + [ + "06:00", + "36028.31477924064" + ], + [ + "06:10", + "43611.85952364653" + ], + [ + "06:19", + "44809.230216991156" + ], + [ + "06:30", + "84425.27709580958" + ], + [ + "06:40", + "82493.299576208" + ], + [ + "06:49", + "88236.05687234178" + ], + [ + "07:00", + "116652.43129101768" + ], + [ + "07:10", + "118311.24182028696" + ], + [ + "07:19", + "122550.91666447744" + ], + [ + "07:30", + "120680.99991070479" + ], + [ + "07:40", + "125823.76901327446" + ], + [ + "07:49", + "117770.40686918423" + ], + [ + "08:00", + "122151.47995305061" + ], + [ + "08:10", + "112554.267947115" + ], + [ + "08:19", + "130849.85913445428" + ], + [ + "08:30", + "102335.97105936706" + ], + [ + "08:40", + "102159.07312686369" + ], + [ + "08:49", + "107317.45056152344" + ], + [ + "09:00", + "107087.94615885615" + ], + [ + "09:10", + "117479.2766706571" + ], + [ + "09:19", + "123910.1672979109" + ], + [ + "09:30", + "129940.61579728872" + ], + [ + "09:40", + "129135.27079512924" + ], + [ + "09:49", + "131717.1171552278" + ], + [ + "10:00", + "124023.95888963342" + ], + [ + "10:10", + "131488.02519186214" + ], + [ + "10:19", + "119981.13164405152" + ], + [ + "10:30", + "142663.99847487733" + ], + [ + "10:40", + "141939.49763879925" + ], + [ + "10:49", + "140620.72027832642" + ], + [ + "11:00", + "121510.95984230563" + ], + [ + "11:10", + "106107.00804445893" + ], + [ + "11:19", + "107144.45218217745" + ], + [ + "11:30", + "86173.86165357381" + ], + [ + "11:40", + "80756.30324059725" + ], + [ + "11:49", + "83026.9595419541" + ], + [ + "12:00", + "66499.82963436842" + ], + [ + "12:10", + "66522.10454239324" + ], + [ + "12:19", + "66767.47853575274" + ], + [ + "12:30", + "64797.937318291515" + ], + [ + "12:40", + "67540.4185876809" + ], + [ + "12:49", + "65817.49586266279" + ], + [ + "13:00", + "78893.71533411741" + ], + [ + "13:10", + "73186.95984994993" + ], + [ + "13:19", + "70820.12788375095" + ], + [ + "13:30", + "70141.49779724702" + ], + [ + "13:40", + "84438.92533489689" + ], + [ + "13:49", + "84645.03119849414" + ], + [ + "14:00", + "92751.94683626667" + ], + [ + "14:10", + "87159.73329018429" + ], + [ + "14:19", + "93246.05263940245" + ], + [ + "14:30", + "114421.92231094837" + ], + [ + "14:40", + "108935.24962072447" + ], + [ + "14:49", + "105085.34844318777" + ], + [ + "15:00", + "134634.76266261935" + ], + [ + "15:10", + "133594.49480363354" + ], + [ + "15:19", + "139617.18787082657" + ], + [ + "15:30", + "128217.16166194528" + ], + [ + "15:40", + "127250.38479238003" + ], + [ + "15:49", + "127925.5896627903" + ], + [ + "16:00", + "152510.46986863017" + ], + [ + "16:10", + "148874.2583978176" + ], + [ + "16:19", + "151230.81790877134" + ], + [ + "16:30", + "107271.56698781624" + ], + [ + "16:40", + "106096.95737218112" + ], + [ + "16:49", + "106781.60374093428" + ], + [ + "17:00", + "122290.48391813412" + ], + [ + "17:10", + "123406.75806841627" + ], + [ + "17:19", + "135934.28426523507" + ], + [ + "17:30", + "144874.6012623757" + ], + [ + "17:40", + "128595.86153997481" + ], + [ + "17:49", + "132427.4469172731" + ], + [ + "18:00", + "124987.8809068501" + ], + [ + "18:10", + "125323.04861487821" + ], + [ + "18:19", + "122169.98825505003" + ], + [ + "18:30", + "120369.02038862184" + ], + [ + "18:40", + "129061.70185616612" + ], + [ + "18:49", + "121210.32663008943" + ], + [ + "19:00", + "129968.94652555883" + ], + [ + "19:10", + "131935.00063871965" + ], + [ + "19:19", + "133914.28902984783" + ], + [ + "19:30", + "105752.50942078605" + ], + [ + "19:40", + "102922.43924526125" + ], + [ + "19:49", + "118489.34243253618" + ], + [ + "20:00", + "111287.41973752901" + ], + [ + "20:10", + "114647.97871280462" + ], + [ + "20:19", + "109956.89612265676" + ], + [ + "20:30", + "90391.92895484716" + ], + [ + "20:40", + "105613.34460686892" + ], + [ + "20:49", + "102467.60150550306" + ], + [ + "21:00", + "98823.85649678484" + ], + [ + "21:10", + "106246.67787430063" + ], + [ + "21:19", + "102564.0241005756" + ], + [ + "21:30", + "68453.44811526686" + ], + [ + "21:40", + "63265.85060498491" + ], + [ + "21:49", + "68141.74796426296" + ], + [ + "22:00", + "69350.52440794185" + ], + [ + "22:10", + "76802.08567362651" + ], + [ + "22:19", + "65153.63947523385" + ], + [ + "22:30", + "41843.99157308042" + ], + [ + "22:40", + "39165.55959096551" + ], + [ + "22:49", + "51238.52599506453" + ], + [ + "23:00", + "51276.68657583743" + ], + [ + "23:10", + "41077.39914666116" + ], + [ + "23:19", + "42151.66996664554" + ], + [ + "23:30", + "30736.063846215606" + ], + [ + "23:40", + "36045.196448497474" + ], + [ + "23:49", + "38385.81055063382" + ], + [ + "00:00", + "21591.845989063382" + ], + [ + "00:10", + "10654.732493117452" + ], + [ + "00:19", + "10611.375357069075" + ], + [ + "00:30", + "5985.382693145424" + ], + [ + "00:40", + "6057.369140423834" + ], + [ + "00:49", + "7414.433489698917" + ], + [ + "01:00", + "5372.706222161651" + ], + [ + "01:10", + "6427.535049766302" + ], + [ + "01:19", + "6284.730732411146" + ], + [ + "01:30", + "6337.76782887429" + ], + [ + "01:40", + "4290.477592796087" + ], + [ + "01:49", + "5177.2016314566135" + ], + [ + "02:00", + "6058.832576304674" + ], + [ + "02:10", + "4773.717004671693" + ], + [ + "02:19", + "4721.482507389039" + ], + [ + "02:30", + "5093.498391665518" + ], + [ + "02:40", + "4175.626140207052" + ], + [ + "02:49", + "5613.475714121014" + ], + [ + "03:00", + "1450.455493569374" + ], + [ + "03:10", + "7.14672714471817" + ], + [ + "03:19", + "7.662584066390989" + ], + [ + "03:30", + "15.863901615142826" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "5.607187271118163" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6545.189950123429, + 6547.63733536005, + 6831.531698405743, + 7917.918021798134, + 7749.150493249297, + 10240.911189079285, + 14747.59193265438, + 19564.96947826445, + 20364.247886538506, + 28459.98631489277, + 25730.680422976613, + 27020.28838004172, + 36028.31477924064, + 43611.85952364653, + 44809.230216991156, + 84425.27709580958, + 82493.299576208, + 88236.05687234178, + 116652.43129101768, + 118311.24182028696, + 122550.91666447744, + 120680.99991070479, + 125823.76901327446, + 117770.40686918423, + 122151.47995305061, + 112554.267947115, + 130849.85913445428, + 102335.97105936706, + 102159.07312686369, + 107317.45056152344, + 107087.94615885615, + 117479.2766706571, + 123910.1672979109, + 129940.61579728872, + 129135.27079512924, + 131717.1171552278, + 124023.95888963342, + 131488.02519186214, + 119981.13164405152, + 142663.99847487733, + 141939.49763879925, + 140620.72027832642, + 121510.95984230563, + 106107.00804445893, + 107144.45218217745, + 86173.86165357381, + 80756.30324059725, + 83026.9595419541, + 66499.82963436842, + 66522.10454239324, + 66767.47853575274, + 64797.937318291515, + 67540.4185876809, + 65817.49586266279, + 78893.71533411741, + 73186.95984994993, + 70820.12788375095, + 70141.49779724702, + 84438.92533489689, + 84645.03119849414, + 92751.94683626667, + 87159.73329018429, + 93246.05263940245, + 114421.92231094837, + 108935.24962072447, + 105085.34844318777, + 134634.76266261935, + 133594.49480363354, + 139617.18787082657, + 128217.16166194528, + 127250.38479238003, + 127925.5896627903, + 152510.46986863017, + 148874.2583978176, + 151230.81790877134, + 107271.56698781624, + 106096.95737218112, + 106781.60374093428, + 122290.48391813412, + 123406.75806841627, + 135934.28426523507, + 144874.6012623757, + 128595.86153997481, + 132427.4469172731, + 124987.8809068501, + 125323.04861487821, + 122169.98825505003, + 120369.02038862184, + 129061.70185616612, + 121210.32663008943, + 129968.94652555883, + 131935.00063871965, + 133914.28902984783, + 105752.50942078605, + 102922.43924526125, + 118489.34243253618, + 111287.41973752901, + 114647.97871280462, + 109956.89612265676, + 90391.92895484716, + 105613.34460686892, + 102467.60150550306, + 98823.85649678484, + 106246.67787430063, + 102564.0241005756, + 68453.44811526686, + 63265.85060498491, + 68141.74796426296, + 69350.52440794185, + 76802.08567362651, + 65153.63947523385, + 41843.99157308042, + 39165.55959096551, + 51238.52599506453, + 51276.68657583743, + 41077.39914666116, + 42151.66996664554, + 30736.063846215606, + 36045.196448497474, + 38385.81055063382, + 21591.845989063382, + 10654.732493117452, + 10611.375357069075, + 5985.382693145424, + 6057.369140423834, + 7414.433489698917, + 5372.706222161651, + 6427.535049766302, + 6284.730732411146, + 6337.76782887429, + 4290.477592796087, + 5177.2016314566135, + 6058.832576304674, + 4773.717004671693, + 4721.482507389039, + 5093.498391665518, + 4175.626140207052, + 5613.475714121014, + 1450.455493569374, + 7.14672714471817, + 7.662584066390989, + 15.863901615142826, + 0, + 0, + 0, + 5.607187271118163 + ] + }, + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6588.2267049103975" + ], + [ + "04:10", + "6587.856102526188" + ], + [ + "04:19", + "6812.534496545792" + ], + [ + "04:30", + "7969.2893253564835" + ], + [ + "04:40", + "7879.3395750671625" + ], + [ + "04:49", + "10196.498922228813" + ], + [ + "05:00", + "14652.384609550238" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20355.99275779724" + ], + [ + "05:30", + "28488.71261626482" + ], + [ + "05:40", + "25575.99373139441" + ], + [ + "05:49", + "27278.6989890486" + ], + [ + "06:00", + "36266.62487374619" + ], + [ + "06:10", + "43446.70004674047" + ], + [ + "06:19", + "44588.7249420248" + ], + [ + "06:30", + "84042.5329053551" + ], + [ + "06:40", + "82995.78483706713" + ], + [ + "06:49", + "88806.87232778594" + ], + [ + "07:00", + "117812.18942685798" + ], + [ + "07:10", + "116945.58462246135" + ], + [ + "07:19", + "121613.67801458761" + ], + [ + "07:30", + "121559.20003021136" + ], + [ + "07:40", + "125328.94741408154" + ], + [ + "07:49", + "119797.89487463236" + ], + [ + "08:00", + "120796.24983779714" + ], + [ + "08:10", + "111820.86610364914" + ], + [ + "08:19", + "132396.80731078237" + ], + [ + "08:30", + "102030.63455875218" + ], + [ + "08:40", + "102588.72410837933" + ], + [ + "08:49", + "107734.27281019092" + ], + [ + "09:00", + "106958.96883501112" + ], + [ + "09:10", + "117116.89392151684" + ], + [ + "09:19", + "124343.97394574806" + ], + [ + "09:30", + "129383.25742889196" + ], + [ + "09:40", + "129464.49567063153" + ], + [ + "09:49", + "132323.98019122705" + ], + [ + "10:00", + "125026.05913446844" + ], + [ + "10:10", + "130020.94712875038" + ], + [ + "10:19", + "119702.68101676181" + ], + [ + "10:30", + "143461.1895073615" + ], + [ + "10:40", + "141156.49481161684" + ], + [ + "10:49", + "141513.08245549724" + ], + [ + "11:00", + "121800.07290284336" + ], + [ + "11:10", + "105889.63351698965" + ], + [ + "11:19", + "107460.069493521" + ], + [ + "11:30", + "86234.24087299034" + ], + [ + "11:40", + "80785.86040474847" + ], + [ + "11:49", + "81276.17716001719" + ], + [ + "12:00", + "68121.35402615368" + ], + [ + "12:10", + "66467.80396551266" + ], + [ + "12:19", + "66696.0633356832" + ], + [ + "12:30", + "64656.02962170169" + ], + [ + "12:40", + "67905.5658463575" + ], + [ + "12:49", + "65212.49370268732" + ], + [ + "13:00", + "78933.63050495088" + ], + [ + "13:10", + "73962.47519343719" + ], + [ + "13:19", + "70020.87525280192" + ], + [ + "13:30", + "70435.60739105567" + ], + [ + "13:40", + "84985.78875910118" + ], + [ + "13:49", + "84093.83458945155" + ], + [ + "14:00", + "93043.64722226188" + ], + [ + "14:10", + "87255.40960873291" + ], + [ + "14:19", + "92652.44461027533" + ], + [ + "14:30", + "114069.79166570306" + ], + [ + "14:40", + "110178.34952470288" + ], + [ + "14:49", + "104681.21053155139" + ], + [ + "15:00", + "134319.73918294162" + ], + [ + "15:10", + "133367.79213075712" + ], + [ + "15:19", + "138892.65962101892" + ], + [ + "15:30", + "127581.89280737936" + ], + [ + "15:40", + "127574.14805406332" + ], + [ + "15:49", + "127870.46099546179" + ], + [ + "16:00", + "152135.83390329033" + ], + [ + "16:10", + "148967.22834568843" + ], + [ + "16:19", + "150902.9462108016" + ], + [ + "16:30", + "106995.86898420006" + ], + [ + "16:40", + "106719.18037262186" + ], + [ + "16:49", + "107256.70510021225" + ], + [ + "17:00", + "121605.69822283834" + ], + [ + "17:10", + "123895.78124672547" + ], + [ + "17:19", + "135859.61765816063" + ], + [ + "17:30", + "145333.1326195076" + ], + [ + "17:40", + "129150.90777393803" + ], + [ + "17:49", + "132342.50095316023" + ], + [ + "18:00", + "125641.56007234007" + ], + [ + "18:10", + "125892.09404256195" + ], + [ + "18:19", + "119119.29484905303" + ], + [ + "18:30", + "121925.1019734107" + ], + [ + "18:40", + "129921.35806950554" + ], + [ + "18:49", + "121701.2831667848" + ], + [ + "19:00", + "129397.12202323973" + ], + [ + "19:10", + "131260.27600645646" + ], + [ + "19:19", + "134276.87806740403" + ], + [ + "19:30", + "101716.13986157253" + ], + [ + "19:40", + "106731.88547841087" + ], + [ + "19:49", + "119262.01610685512" + ], + [ + "20:00", + "110974.78006079793" + ], + [ + "20:10", + "114972.12357295677" + ], + [ + "20:19", + "110832.9146430865" + ], + [ + "20:30", + "91863.24573882669" + ], + [ + "20:40", + "104650.96884545311" + ], + [ + "20:49", + "101699.7771261558" + ], + [ + "21:00", + "98864.67618725449" + ], + [ + "21:10", + "106238.30559277162" + ], + [ + "21:19", + "103009.22097430006" + ], + [ + "21:30", + "68324.54706971347" + ], + [ + "21:40", + "63074.50511204079" + ], + [ + "21:49", + "67631.23757197335" + ], + [ + "22:00", + "66010.35183664039" + ], + [ + "22:10", + "81193.29943551868" + ], + [ + "22:19", + "65963.40355385095" + ], + [ + "22:30", + "40750.92218104005" + ], + [ + "22:40", + "40442.22869282216" + ], + [ + "22:49", + "49230.13599900529" + ], + [ + "23:00", + "52824.714661203325" + ], + [ + "23:10", + "40674.395221844316" + ], + [ + "23:19", + "42557.248402141035" + ], + [ + "23:30", + "30458.950007110834" + ], + [ + "23:40", + "36094.37464457005" + ], + [ + "23:49", + "38321.63756296411" + ], + [ + "00:00", + "21602.028520703316" + ], + [ + "00:10", + "11412.163044825196" + ], + [ + "00:19", + "10334.302857019007" + ], + [ + "00:30", + "6216.977395299822" + ], + [ + "00:40", + "5938.550318129361" + ], + [ + "00:49", + "7859.005390036851" + ], + [ + "01:00", + "5287.5050562769175" + ], + [ + "01:10", + "6979.709929078817" + ], + [ + "01:19", + "6369.80161459744" + ], + [ + "01:30", + "6010.015026904643" + ], + [ + "01:40", + "5071.76369959116" + ], + [ + "01:49", + "5167.877876400948" + ], + [ + "02:00", + "5871.128858238459" + ], + [ + "02:10", + "4956.626012340188" + ], + [ + "02:19", + "4497.120995040983" + ], + [ + "02:30", + "5409.539449341595" + ], + [ + "02:40", + "4612.677140682936" + ], + [ + "02:49", + "5152.345154676586" + ], + [ + "03:00", + "1540.2483973503113" + ], + [ + "03:10", + "140.41726684570312" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "140.41726684570312" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6588.2267049103975, + 6587.856102526188, + 6812.534496545792, + 7969.2893253564835, + 7879.3395750671625, + 10196.498922228813, + 14652.384609550238, + 19564.96947826445, + 20355.99275779724, + 28488.71261626482, + 25575.99373139441, + 27278.6989890486, + 36266.62487374619, + 43446.70004674047, + 44588.7249420248, + 84042.5329053551, + 82995.78483706713, + 88806.87232778594, + 117812.18942685798, + 116945.58462246135, + 121613.67801458761, + 121559.20003021136, + 125328.94741408154, + 119797.89487463236, + 120796.24983779714, + 111820.86610364914, + 132396.80731078237, + 102030.63455875218, + 102588.72410837933, + 107734.27281019092, + 106958.96883501112, + 117116.89392151684, + 124343.97394574806, + 129383.25742889196, + 129464.49567063153, + 132323.98019122705, + 125026.05913446844, + 130020.94712875038, + 119702.68101676181, + 143461.1895073615, + 141156.49481161684, + 141513.08245549724, + 121800.07290284336, + 105889.63351698965, + 107460.069493521, + 86234.24087299034, + 80785.86040474847, + 81276.17716001719, + 68121.35402615368, + 66467.80396551266, + 66696.0633356832, + 64656.02962170169, + 67905.5658463575, + 65212.49370268732, + 78933.63050495088, + 73962.47519343719, + 70020.87525280192, + 70435.60739105567, + 84985.78875910118, + 84093.83458945155, + 93043.64722226188, + 87255.40960873291, + 92652.44461027533, + 114069.79166570306, + 110178.34952470288, + 104681.21053155139, + 134319.73918294162, + 133367.79213075712, + 138892.65962101892, + 127581.89280737936, + 127574.14805406332, + 127870.46099546179, + 152135.83390329033, + 148967.22834568843, + 150902.9462108016, + 106995.86898420006, + 106719.18037262186, + 107256.70510021225, + 121605.69822283834, + 123895.78124672547, + 135859.61765816063, + 145333.1326195076, + 129150.90777393803, + 132342.50095316023, + 125641.56007234007, + 125892.09404256195, + 119119.29484905303, + 121925.1019734107, + 129921.35806950554, + 121701.2831667848, + 129397.12202323973, + 131260.27600645646, + 134276.87806740403, + 101716.13986157253, + 106731.88547841087, + 119262.01610685512, + 110974.78006079793, + 114972.12357295677, + 110832.9146430865, + 91863.24573882669, + 104650.96884545311, + 101699.7771261558, + 98864.67618725449, + 106238.30559277162, + 103009.22097430006, + 68324.54706971347, + 63074.50511204079, + 67631.23757197335, + 66010.35183664039, + 81193.29943551868, + 65963.40355385095, + 40750.92218104005, + 40442.22869282216, + 49230.13599900529, + 52824.714661203325, + 40674.395221844316, + 42557.248402141035, + 30458.950007110834, + 36094.37464457005, + 38321.63756296411, + 21602.028520703316, + 11412.163044825196, + 10334.302857019007, + 6216.977395299822, + 5938.550318129361, + 7859.005390036851, + 5287.5050562769175, + 6979.709929078817, + 6369.80161459744, + 6010.015026904643, + 5071.76369959116, + 5167.877876400948, + 5871.128858238459, + 4956.626012340188, + 4497.120995040983, + 5409.539449341595, + 4612.677140682936, + 5152.345154676586, + 1540.2483973503113, + 140.41726684570312, + 0, + 0, + 0, + 0, + 140.41726684570312 + ] + }, + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6588.2267049103975" + ], + [ + "04:10", + "6587.856102526188" + ], + [ + "04:19", + "6812.534496545792" + ], + [ + "04:30", + "7969.2893253564835" + ], + [ + "04:40", + "7879.3395750671625" + ], + [ + "04:49", + "10196.498922228813" + ], + [ + "05:00", + "14652.384609550238" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20355.99275779724" + ], + [ + "05:30", + "28488.71261626482" + ], + [ + "05:40", + "25575.99373139441" + ], + [ + "05:49", + "27278.6989890486" + ], + [ + "06:00", + "36266.62487374619" + ], + [ + "06:10", + "43446.70004674047" + ], + [ + "06:19", + "44570.01564114913" + ], + [ + "06:30", + "84085.9447631836" + ], + [ + "06:40", + "82902.46970947087" + ], + [ + "06:49", + "88936.26852763072" + ], + [ + "07:00", + "117485.06641511992" + ], + [ + "07:10", + "117100.43441255763" + ], + [ + "07:19", + "121714.02516904101" + ], + [ + "07:30", + "121451.7046839036" + ], + [ + "07:40", + "125398.24390546605" + ], + [ + "07:49", + "119985.2288406752" + ], + [ + "08:00", + "120447.62249667943" + ], + [ + "08:10", + "112341.4448216781" + ], + [ + "08:19", + "131060.65872061998" + ], + [ + "08:30", + "102590.21300847083" + ], + [ + "08:40", + "102829.4953257814" + ], + [ + "08:49", + "107368.84576870501" + ], + [ + "09:00", + "106800.02171799168" + ], + [ + "09:10", + "117178.53368217498" + ], + [ + "09:19", + "123435.55583919212" + ], + [ + "09:30", + "130058.27114412189" + ], + [ + "09:40", + "129458.14050585777" + ], + [ + "09:49", + "131567.12267780676" + ], + [ + "10:00", + "124899.61108361185" + ], + [ + "10:10", + "131043.57778754085" + ], + [ + "10:19", + "119659.59111659601" + ], + [ + "10:30", + "143208.98749415204" + ], + [ + "10:40", + "141591.33315950632" + ], + [ + "10:49", + "141143.5270189382" + ], + [ + "11:00", + "122069.92432156205" + ], + [ + "11:10", + "105699.48102564365" + ], + [ + "11:19", + "107516.68840479478" + ], + [ + "11:30", + "86198.47803157568" + ], + [ + "11:40", + "80763.29787831008" + ], + [ + "11:49", + "82785.32666223496" + ], + [ + "12:00", + "66543.3209219724" + ], + [ + "12:10", + "66488.31547615305" + ], + [ + "12:19", + "66635.13273638114" + ], + [ + "12:30", + "64933.77695758268" + ], + [ + "12:40", + "68115.77737707272" + ], + [ + "12:49", + "64764.46046362817" + ], + [ + "13:00", + "79006.53280650079" + ], + [ + "13:10", + "73648.38812306151" + ], + [ + "13:19", + "70283.10589643195" + ], + [ + "13:30", + "70343.24312108383" + ], + [ + "13:40", + "85378.35059558228" + ], + [ + "13:49", + "83675.48020876944" + ], + [ + "14:00", + "93046.80153915659" + ], + [ + "14:10", + "86574.16343225911" + ], + [ + "14:19", + "93545.05466873199" + ], + [ + "14:30", + "113514.0998705998" + ], + [ + "14:40", + "110206.30795052648" + ], + [ + "14:49", + "104672.29511478916" + ], + [ + "15:00", + "134825.21227712184" + ], + [ + "15:10", + "132906.80968746543" + ], + [ + "15:19", + "139333.188284643" + ], + [ + "15:30", + "128261.59995299578" + ], + [ + "15:40", + "127533.0708751604" + ], + [ + "15:49", + "128008.26080295816" + ], + [ + "16:00", + "152549.79101682454" + ], + [ + "16:10", + "148466.13966681808" + ], + [ + "16:19", + "150756.89288233593" + ], + [ + "16:30", + "108151.8835102357" + ], + [ + "16:40", + "106724.93501713872" + ], + [ + "16:49", + "107092.96528839692" + ], + [ + "17:00", + "121337.56945925206" + ], + [ + "17:10", + "124295.98592089489" + ], + [ + "17:19", + "137158.27888344973" + ], + [ + "17:30", + "144777.92183068022" + ], + [ + "17:40", + "128565.05157545954" + ], + [ + "17:49", + "132616.17221391946" + ], + [ + "18:00", + "124555.44215560332" + ], + [ + "18:10", + "125607.12720903754" + ], + [ + "18:19", + "121651.72349438444" + ], + [ + "18:30", + "118763.13622501865" + ], + [ + "18:40", + "130333.97260155156" + ], + [ + "18:49", + "121798.4182648547" + ], + [ + "19:00", + "129762.31639100611" + ], + [ + "19:10", + "132005.35414544865" + ], + [ + "19:19", + "133358.81135239452" + ], + [ + "19:30", + "101696.3850302361" + ], + [ + "19:40", + "107237.41029259935" + ], + [ + "19:49", + "118717.35289536417" + ], + [ + "20:00", + "111289.1458954364" + ], + [ + "20:10", + "114035.3992253691" + ], + [ + "20:19", + "111083.6965931654" + ], + [ + "20:30", + "89980.33408007026" + ], + [ + "20:40", + "105379.2158473134" + ], + [ + "20:49", + "102533.8927885294" + ], + [ + "21:00", + "97782.59140694886" + ], + [ + "21:10", + "106710.53461571038" + ], + [ + "21:19", + "103211.13194982335" + ], + [ + "21:30", + "68007.85332240164" + ], + [ + "21:40", + "62978.75491472706" + ], + [ + "21:49", + "68688.75670158863" + ], + [ + "22:00", + "62530.10488252714" + ], + [ + "22:10", + "84289.27404457703" + ], + [ + "22:19", + "65433.24510305375" + ], + [ + "22:30", + "41402.25396417081" + ], + [ + "22:40", + "38985.95762959868" + ], + [ + "22:49", + "49661.59036442265" + ], + [ + "23:00", + "53348.11629020423" + ], + [ + "23:10", + "41292.48801586032" + ], + [ + "23:19", + "42342.230552606285" + ], + [ + "23:30", + "30809.123900894076" + ], + [ + "23:40", + "36066.13261646032" + ], + [ + "23:49", + "38398.26704643667" + ], + [ + "00:00", + "21301.404405757785" + ], + [ + "00:10", + "11092.721335843205" + ], + [ + "00:19", + "10467.83884037286" + ], + [ + "00:30", + "6083.240446005017" + ], + [ + "00:40", + "5798.539848558605" + ], + [ + "00:49", + "7388.775953818113" + ], + [ + "01:00", + "5312.6765664070845" + ], + [ + "01:10", + "6735.186851888895" + ], + [ + "01:19", + "6257.128656193614" + ], + [ + "01:30", + "5855.0763233453035" + ], + [ + "01:40", + "4311.5007111132145" + ], + [ + "01:49", + "5182.467184156179" + ], + [ + "02:00", + "5961.186391666532" + ], + [ + "02:10", + "4737.497930064797" + ], + [ + "02:19", + "4745.30666872859" + ], + [ + "02:30", + "4991.621037326753" + ], + [ + "02:40", + "4183.883064329624" + ], + [ + "02:49", + "5803.604305118322" + ], + [ + "03:00", + "1397.0531099438667" + ], + [ + "03:10", + "140.41726684570312" + ], + [ + "03:19", + "4.055323004722595" + ], + [ + "03:30", + "140.41726684570312" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "280.83453369140625" + ], + [ + "04:00", + "286.4417209625244" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "140.41726684570312" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6588.2267049103975, + 6587.856102526188, + 6812.534496545792, + 7969.2893253564835, + 7879.3395750671625, + 10196.498922228813, + 14652.384609550238, + 19564.96947826445, + 20355.99275779724, + 28488.71261626482, + 25575.99373139441, + 27278.6989890486, + 36266.62487374619, + 43446.70004674047, + 44570.01564114913, + 84085.9447631836, + 82902.46970947087, + 88936.26852763072, + 117485.06641511992, + 117100.43441255763, + 121714.02516904101, + 121451.7046839036, + 125398.24390546605, + 119985.2288406752, + 120447.62249667943, + 112341.4448216781, + 131060.65872061998, + 102590.21300847083, + 102829.4953257814, + 107368.84576870501, + 106800.02171799168, + 117178.53368217498, + 123435.55583919212, + 130058.27114412189, + 129458.14050585777, + 131567.12267780676, + 124899.61108361185, + 131043.57778754085, + 119659.59111659601, + 143208.98749415204, + 141591.33315950632, + 141143.5270189382, + 122069.92432156205, + 105699.48102564365, + 107516.68840479478, + 86198.47803157568, + 80763.29787831008, + 82785.32666223496, + 66543.3209219724, + 66488.31547615305, + 66635.13273638114, + 64933.77695758268, + 68115.77737707272, + 64764.46046362817, + 79006.53280650079, + 73648.38812306151, + 70283.10589643195, + 70343.24312108383, + 85378.35059558228, + 83675.48020876944, + 93046.80153915659, + 86574.16343225911, + 93545.05466873199, + 113514.0998705998, + 110206.30795052648, + 104672.29511478916, + 134825.21227712184, + 132906.80968746543, + 139333.188284643, + 128261.59995299578, + 127533.0708751604, + 128008.26080295816, + 152549.79101682454, + 148466.13966681808, + 150756.89288233593, + 108151.8835102357, + 106724.93501713872, + 107092.96528839692, + 121337.56945925206, + 124295.98592089489, + 137158.27888344973, + 144777.92183068022, + 128565.05157545954, + 132616.17221391946, + 124555.44215560332, + 125607.12720903754, + 121651.72349438444, + 118763.13622501865, + 130333.97260155156, + 121798.4182648547, + 129762.31639100611, + 132005.35414544865, + 133358.81135239452, + 101696.3850302361, + 107237.41029259935, + 118717.35289536417, + 111289.1458954364, + 114035.3992253691, + 111083.6965931654, + 89980.33408007026, + 105379.2158473134, + 102533.8927885294, + 97782.59140694886, + 106710.53461571038, + 103211.13194982335, + 68007.85332240164, + 62978.75491472706, + 68688.75670158863, + 62530.10488252714, + 84289.27404457703, + 65433.24510305375, + 41402.25396417081, + 38985.95762959868, + 49661.59036442265, + 53348.11629020423, + 41292.48801586032, + 42342.230552606285, + 30809.123900894076, + 36066.13261646032, + 38398.26704643667, + 21301.404405757785, + 11092.721335843205, + 10467.83884037286, + 6083.240446005017, + 5798.539848558605, + 7388.775953818113, + 5312.6765664070845, + 6735.186851888895, + 6257.128656193614, + 5855.0763233453035, + 4311.5007111132145, + 5182.467184156179, + 5961.186391666532, + 4737.497930064797, + 4745.30666872859, + 4991.621037326753, + 4183.883064329624, + 5803.604305118322, + 1397.0531099438667, + 140.41726684570312, + 4.055323004722595, + 140.41726684570312, + 0, + 280.83453369140625, + 286.4417209625244, + 0, + 140.41726684570312 + ] + }, + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6545.189950123429" + ], + [ + "04:10", + "6547.63733536005" + ], + [ + "04:19", + "6831.531698405743" + ], + [ + "04:30", + "7917.918021798134" + ], + [ + "04:40", + "7749.150493249297" + ], + [ + "04:49", + "10240.911189079285" + ], + [ + "05:00", + "14747.59193265438" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20364.247886538506" + ], + [ + "05:30", + "28459.98631489277" + ], + [ + "05:40", + "25730.680422976613" + ], + [ + "05:49", + "27020.28838004172" + ], + [ + "06:00", + "36034.09038098529" + ], + [ + "06:10", + "43407.061711125076" + ], + [ + "06:19", + "44966.93362436816" + ], + [ + "06:30", + "84140.86421477795" + ], + [ + "06:40", + "82465.20328898728" + ], + [ + "06:49", + "87812.0508246012" + ], + [ + "07:00", + "117416.7655193992" + ], + [ + "07:10", + "117662.7906604372" + ], + [ + "07:19", + "122876.79524451122" + ], + [ + "07:30", + "121106.22047319263" + ], + [ + "07:40", + "124996.64233398065" + ], + [ + "07:49", + "118958.59468268976" + ], + [ + "08:00", + "119752.19921455532" + ], + [ + "08:10", + "115052.19525953382" + ], + [ + "08:19", + "130015.45882735401" + ], + [ + "08:30", + "102371.30065754056" + ], + [ + "08:40", + "102577.336131569" + ], + [ + "08:49", + "107640.87006904185" + ], + [ + "09:00", + "107292.97912683338" + ], + [ + "09:10", + "118041.5429540053" + ], + [ + "09:19", + "122728.24685169384" + ], + [ + "09:30", + "130247.6947434023" + ], + [ + "09:40", + "129131.2069055289" + ], + [ + "09:49", + "131520.88953661546" + ], + [ + "10:00", + "125046.70342603326" + ], + [ + "10:10", + "131720.65994887054" + ], + [ + "10:19", + "120540.7869011052" + ], + [ + "10:30", + "141397.56281676516" + ], + [ + "10:40", + "142939.2789318636" + ], + [ + "10:49", + "141773.07485276833" + ], + [ + "11:00", + "120354.60181817785" + ], + [ + "11:10", + "106085.91495922208" + ], + [ + "11:19", + "107175.87901130319" + ], + [ + "11:30", + "86543.80936916918" + ], + [ + "11:40", + "80726.22082981467" + ], + [ + "11:49", + "82276.22797328979" + ], + [ + "12:00", + "67258.95766809583" + ], + [ + "12:10", + "66588.15107107535" + ], + [ + "12:19", + "66693.21523615345" + ], + [ + "12:30", + "64955.52888103947" + ], + [ + "12:40", + "67752.5153321363" + ], + [ + "12:49", + "65635.2029670775" + ], + [ + "13:00", + "78832.57731485367" + ], + [ + "13:10", + "73485.28957120702" + ], + [ + "13:19", + "70655.22882220522" + ], + [ + "13:30", + "70302.68805233762" + ], + [ + "13:40", + "84537.38355055824" + ], + [ + "13:49", + "84687.12005328387" + ], + [ + "14:00", + "92918.45892996714" + ], + [ + "14:10", + "86761.98472734913" + ], + [ + "14:19", + "93290.74674455076" + ], + [ + "14:30", + "114136.90394818783" + ], + [ + "14:40", + "109850.20692073926" + ], + [ + "14:49", + "104962.86470117792" + ], + [ + "15:00", + "133709.7534806952" + ], + [ + "15:10", + "133419.82266804948" + ], + [ + "15:19", + "140261.38598344848" + ], + [ + "15:30", + "126893.72059111297" + ], + [ + "15:40", + "127973.798548311" + ], + [ + "15:49", + "128611.88480510563" + ], + [ + "16:00", + "152646.28651449457" + ], + [ + "16:10", + "148769.7824093923" + ], + [ + "16:19", + "151705.4716514647" + ], + [ + "16:30", + "107786.38815867528" + ], + [ + "16:40", + "106171.09775018692" + ], + [ + "16:49", + "107091.12713613734" + ], + [ + "17:00", + "122651.66044440866" + ], + [ + "17:10", + "123520.95439212397" + ], + [ + "17:19", + "135721.91252714396" + ], + [ + "17:30", + "144852.0924479887" + ], + [ + "17:40", + "128387.01309013367" + ], + [ + "17:49", + "133681.14649531245" + ], + [ + "18:00", + "124844.33079873025" + ], + [ + "18:10", + "126575.73092078045" + ], + [ + "18:19", + "120803.68387867883" + ], + [ + "18:30", + "119799.23154195026" + ], + [ + "18:40", + "131154.5416624099" + ], + [ + "18:49", + "121343.97418133542" + ], + [ + "19:00", + "129632.5303623341" + ], + [ + "19:10", + "131122.07799293473" + ], + [ + "19:19", + "133571.31345251575" + ], + [ + "19:30", + "101932.12061231956" + ], + [ + "19:40", + "106220.61601674557" + ], + [ + "19:49", + "118258.39471623302" + ], + [ + "20:00", + "111692.88340294361" + ], + [ + "20:10", + "114485.60977637395" + ], + [ + "20:19", + "111640.1688367948" + ], + [ + "20:30", + "90300.53535743058" + ], + [ + "20:40", + "105866.9102111645" + ], + [ + "20:49", + "101796.13389703631" + ], + [ + "21:00", + "98175.0175944753" + ], + [ + "21:10", + "106569.33016389236" + ], + [ + "21:19", + "103497.89609886333" + ], + [ + "21:30", + "68340.18715763837" + ], + [ + "21:40", + "63287.67906914279" + ], + [ + "21:49", + "67784.00768494606" + ], + [ + "22:00", + "67533.95171940699" + ], + [ + "22:10", + "79806.24292714521" + ], + [ + "22:19", + "65599.93695824593" + ], + [ + "22:30", + "40531.44509732723" + ], + [ + "22:40", + "39188.380272075534" + ], + [ + "22:49", + "48928.27350299433" + ], + [ + "23:00", + "54715.12900482863" + ], + [ + "23:10", + "40747.56639446318" + ], + [ + "23:19", + "42457.0615702942" + ], + [ + "23:30", + "30408.091023869812" + ], + [ + "23:40", + "35638.931788913906" + ], + [ + "23:49", + "38181.236112926155" + ], + [ + "00:00", + "21559.475962758064" + ], + [ + "00:10", + "10747.686006456614" + ], + [ + "00:19", + "10575.084622867405" + ], + [ + "00:30", + "6186.674249175936" + ], + [ + "00:40", + "5953.7820130214095" + ], + [ + "00:49", + "7233.373425800353" + ], + [ + "01:00", + "5247.136103108525" + ], + [ + "01:10", + "7201.0894286334515" + ], + [ + "01:19", + "6389.685632899404" + ], + [ + "01:30", + "6092.980116762221" + ], + [ + "01:40", + "4760.842970699072" + ], + [ + "01:49", + "5061.460052847862" + ], + [ + "02:00", + "6441.151672393084" + ], + [ + "02:10", + "4735.194346323609" + ], + [ + "02:19", + "4689.894938081503" + ], + [ + "02:30", + "5197.525923795998" + ], + [ + "02:40", + "4590.372514307499" + ], + [ + "02:49", + "5251.431083500385" + ], + [ + "03:00", + "1546.0599628686905" + ], + [ + "03:10", + "165.9459947347641" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "6.6131086349487305" + ], + [ + "03:40", + "140.41726684570312" + ], + [ + "03:49", + "105.07097625732422" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "140.41726684570312" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6545.189950123429, + 6547.63733536005, + 6831.531698405743, + 7917.918021798134, + 7749.150493249297, + 10240.911189079285, + 14747.59193265438, + 19564.96947826445, + 20364.247886538506, + 28459.98631489277, + 25730.680422976613, + 27020.28838004172, + 36034.09038098529, + 43407.061711125076, + 44966.93362436816, + 84140.86421477795, + 82465.20328898728, + 87812.0508246012, + 117416.7655193992, + 117662.7906604372, + 122876.79524451122, + 121106.22047319263, + 124996.64233398065, + 118958.59468268976, + 119752.19921455532, + 115052.19525953382, + 130015.45882735401, + 102371.30065754056, + 102577.336131569, + 107640.87006904185, + 107292.97912683338, + 118041.5429540053, + 122728.24685169384, + 130247.6947434023, + 129131.2069055289, + 131520.88953661546, + 125046.70342603326, + 131720.65994887054, + 120540.7869011052, + 141397.56281676516, + 142939.2789318636, + 141773.07485276833, + 120354.60181817785, + 106085.91495922208, + 107175.87901130319, + 86543.80936916918, + 80726.22082981467, + 82276.22797328979, + 67258.95766809583, + 66588.15107107535, + 66693.21523615345, + 64955.52888103947, + 67752.5153321363, + 65635.2029670775, + 78832.57731485367, + 73485.28957120702, + 70655.22882220522, + 70302.68805233762, + 84537.38355055824, + 84687.12005328387, + 92918.45892996714, + 86761.98472734913, + 93290.74674455076, + 114136.90394818783, + 109850.20692073926, + 104962.86470117792, + 133709.7534806952, + 133419.82266804948, + 140261.38598344848, + 126893.72059111297, + 127973.798548311, + 128611.88480510563, + 152646.28651449457, + 148769.7824093923, + 151705.4716514647, + 107786.38815867528, + 106171.09775018692, + 107091.12713613734, + 122651.66044440866, + 123520.95439212397, + 135721.91252714396, + 144852.0924479887, + 128387.01309013367, + 133681.14649531245, + 124844.33079873025, + 126575.73092078045, + 120803.68387867883, + 119799.23154195026, + 131154.5416624099, + 121343.97418133542, + 129632.5303623341, + 131122.07799293473, + 133571.31345251575, + 101932.12061231956, + 106220.61601674557, + 118258.39471623302, + 111692.88340294361, + 114485.60977637395, + 111640.1688367948, + 90300.53535743058, + 105866.9102111645, + 101796.13389703631, + 98175.0175944753, + 106569.33016389236, + 103497.89609886333, + 68340.18715763837, + 63287.67906914279, + 67784.00768494606, + 67533.95171940699, + 79806.24292714521, + 65599.93695824593, + 40531.44509732723, + 39188.380272075534, + 48928.27350299433, + 54715.12900482863, + 40747.56639446318, + 42457.0615702942, + 30408.091023869812, + 35638.931788913906, + 38181.236112926155, + 21559.475962758064, + 10747.686006456614, + 10575.084622867405, + 6186.674249175936, + 5953.7820130214095, + 7233.373425800353, + 5247.136103108525, + 7201.0894286334515, + 6389.685632899404, + 6092.980116762221, + 4760.842970699072, + 5061.460052847862, + 6441.151672393084, + 4735.194346323609, + 4689.894938081503, + 5197.525923795998, + 4590.372514307499, + 5251.431083500385, + 1546.0599628686905, + 165.9459947347641, + 0, + 6.6131086349487305, + 140.41726684570312, + 105.07097625732422, + 0, + 0, + 140.41726684570312 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC VMT (normalized to per-hour) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "VMT per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6545.189950123429" + ], + [ + "04:10", + "6547.63733536005" + ], + [ + "04:19", + "6831.531698405743" + ], + [ + "04:30", + "7917.918021798134" + ], + [ + "04:40", + "7749.150493249297" + ], + [ + "04:49", + "10240.911189079285" + ], + [ + "05:00", + "14747.59193265438" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20364.247886538506" + ], + [ + "05:30", + "28459.98631489277" + ], + [ + "05:40", + "25730.680422976613" + ], + [ + "05:49", + "27020.28838004172" + ], + [ + "06:00", + "36028.31477924064" + ], + [ + "06:10", + "43611.85952364653" + ], + [ + "06:19", + "44809.230216991156" + ], + [ + "06:30", + "84425.27709580958" + ], + [ + "06:40", + "82493.299576208" + ], + [ + "06:49", + "88236.05687234178" + ], + [ + "07:00", + "116652.43129101768" + ], + [ + "07:10", + "118311.24182028696" + ], + [ + "07:19", + "122550.91666447744" + ], + [ + "07:30", + "120680.99991070479" + ], + [ + "07:40", + "125823.76901327446" + ], + [ + "07:49", + "117770.40686918423" + ], + [ + "08:00", + "122151.47995305061" + ], + [ + "08:10", + "112554.267947115" + ], + [ + "08:19", + "130849.85913445428" + ], + [ + "08:30", + "102335.97105936706" + ], + [ + "08:40", + "102159.07312686369" + ], + [ + "08:49", + "107317.45056152344" + ], + [ + "09:00", + "107087.94615885615" + ], + [ + "09:10", + "117479.2766706571" + ], + [ + "09:19", + "123910.1672979109" + ], + [ + "09:30", + "129940.61579728872" + ], + [ + "09:40", + "129135.27079512924" + ], + [ + "09:49", + "131717.1171552278" + ], + [ + "10:00", + "124023.95888963342" + ], + [ + "10:10", + "131488.02519186214" + ], + [ + "10:19", + "119981.13164405152" + ], + [ + "10:30", + "142663.99847487733" + ], + [ + "10:40", + "141939.49763879925" + ], + [ + "10:49", + "140620.72027832642" + ], + [ + "11:00", + "121510.95984230563" + ], + [ + "11:10", + "106107.00804445893" + ], + [ + "11:19", + "107144.45218217745" + ], + [ + "11:30", + "86173.86165357381" + ], + [ + "11:40", + "80756.30324059725" + ], + [ + "11:49", + "83026.9595419541" + ], + [ + "12:00", + "66499.82963436842" + ], + [ + "12:10", + "66522.10454239324" + ], + [ + "12:19", + "66767.47853575274" + ], + [ + "12:30", + "64797.937318291515" + ], + [ + "12:40", + "67540.4185876809" + ], + [ + "12:49", + "65817.49586266279" + ], + [ + "13:00", + "78893.71533411741" + ], + [ + "13:10", + "73186.95984994993" + ], + [ + "13:19", + "70820.12788375095" + ], + [ + "13:30", + "70141.49779724702" + ], + [ + "13:40", + "84438.92533489689" + ], + [ + "13:49", + "84645.03119849414" + ], + [ + "14:00", + "92751.94683626667" + ], + [ + "14:10", + "87159.73329018429" + ], + [ + "14:19", + "93246.05263940245" + ], + [ + "14:30", + "114421.92231094837" + ], + [ + "14:40", + "108935.24962072447" + ], + [ + "14:49", + "105085.34844318777" + ], + [ + "15:00", + "134634.76266261935" + ], + [ + "15:10", + "133594.49480363354" + ], + [ + "15:19", + "139617.18787082657" + ], + [ + "15:30", + "128217.16166194528" + ], + [ + "15:40", + "127250.38479238003" + ], + [ + "15:49", + "127925.5896627903" + ], + [ + "16:00", + "152510.46986863017" + ], + [ + "16:10", + "148874.2583978176" + ], + [ + "16:19", + "151230.81790877134" + ], + [ + "16:30", + "107271.56698781624" + ], + [ + "16:40", + "106096.95737218112" + ], + [ + "16:49", + "106781.60374093428" + ], + [ + "17:00", + "122290.48391813412" + ], + [ + "17:10", + "123406.75806841627" + ], + [ + "17:19", + "135934.28426523507" + ], + [ + "17:30", + "144874.6012623757" + ], + [ + "17:40", + "128595.86153997481" + ], + [ + "17:49", + "132427.4469172731" + ], + [ + "18:00", + "124987.8809068501" + ], + [ + "18:10", + "125323.04861487821" + ], + [ + "18:19", + "122169.98825505003" + ], + [ + "18:30", + "120369.02038862184" + ], + [ + "18:40", + "129061.70185616612" + ], + [ + "18:49", + "121210.32663008943" + ], + [ + "19:00", + "129968.94652555883" + ], + [ + "19:10", + "131935.00063871965" + ], + [ + "19:19", + "133914.28902984783" + ], + [ + "19:30", + "105752.50942078605" + ], + [ + "19:40", + "102922.43924526125" + ], + [ + "19:49", + "118489.34243253618" + ], + [ + "20:00", + "111287.41973752901" + ], + [ + "20:10", + "114647.97871280462" + ], + [ + "20:19", + "109956.89612265676" + ], + [ + "20:30", + "90391.92895484716" + ], + [ + "20:40", + "105613.34460686892" + ], + [ + "20:49", + "102467.60150550306" + ], + [ + "21:00", + "98823.85649678484" + ], + [ + "21:10", + "106246.67787430063" + ], + [ + "21:19", + "102564.0241005756" + ], + [ + "21:30", + "68453.44811526686" + ], + [ + "21:40", + "63265.85060498491" + ], + [ + "21:49", + "68141.74796426296" + ], + [ + "22:00", + "69350.52440794185" + ], + [ + "22:10", + "76802.08567362651" + ], + [ + "22:19", + "65153.63947523385" + ], + [ + "22:30", + "41843.99157308042" + ], + [ + "22:40", + "39165.55959096551" + ], + [ + "22:49", + "51238.52599506453" + ], + [ + "23:00", + "51276.68657583743" + ], + [ + "23:10", + "41077.39914666116" + ], + [ + "23:19", + "42151.66996664554" + ], + [ + "23:30", + "30736.063846215606" + ], + [ + "23:40", + "36045.196448497474" + ], + [ + "23:49", + "38385.81055063382" + ], + [ + "00:00", + "21591.845989063382" + ], + [ + "00:10", + "10654.732493117452" + ], + [ + "00:19", + "10611.375357069075" + ], + [ + "00:30", + "5985.382693145424" + ], + [ + "00:40", + "6057.369140423834" + ], + [ + "00:49", + "7414.433489698917" + ], + [ + "01:00", + "5372.706222161651" + ], + [ + "01:10", + "6427.535049766302" + ], + [ + "01:19", + "6284.730732411146" + ], + [ + "01:30", + "6337.76782887429" + ], + [ + "01:40", + "4290.477592796087" + ], + [ + "01:49", + "5177.2016314566135" + ], + [ + "02:00", + "6058.832576304674" + ], + [ + "02:10", + "4773.717004671693" + ], + [ + "02:19", + "4721.482507389039" + ], + [ + "02:30", + "5093.498391665518" + ], + [ + "02:40", + "4175.626140207052" + ], + [ + "02:49", + "5613.475714121014" + ], + [ + "03:00", + "1450.455493569374" + ], + [ + "03:10", + "7.14672714471817" + ], + [ + "03:19", + "7.662584066390989" + ], + [ + "03:30", + "15.863901615142826" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "5.607187271118163" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6545.189950123429, + 6547.63733536005, + 6831.531698405743, + 7917.918021798134, + 7749.150493249297, + 10240.911189079285, + 14747.59193265438, + 19564.96947826445, + 20364.247886538506, + 28459.98631489277, + 25730.680422976613, + 27020.28838004172, + 36028.31477924064, + 43611.85952364653, + 44809.230216991156, + 84425.27709580958, + 82493.299576208, + 88236.05687234178, + 116652.43129101768, + 118311.24182028696, + 122550.91666447744, + 120680.99991070479, + 125823.76901327446, + 117770.40686918423, + 122151.47995305061, + 112554.267947115, + 130849.85913445428, + 102335.97105936706, + 102159.07312686369, + 107317.45056152344, + 107087.94615885615, + 117479.2766706571, + 123910.1672979109, + 129940.61579728872, + 129135.27079512924, + 131717.1171552278, + 124023.95888963342, + 131488.02519186214, + 119981.13164405152, + 142663.99847487733, + 141939.49763879925, + 140620.72027832642, + 121510.95984230563, + 106107.00804445893, + 107144.45218217745, + 86173.86165357381, + 80756.30324059725, + 83026.9595419541, + 66499.82963436842, + 66522.10454239324, + 66767.47853575274, + 64797.937318291515, + 67540.4185876809, + 65817.49586266279, + 78893.71533411741, + 73186.95984994993, + 70820.12788375095, + 70141.49779724702, + 84438.92533489689, + 84645.03119849414, + 92751.94683626667, + 87159.73329018429, + 93246.05263940245, + 114421.92231094837, + 108935.24962072447, + 105085.34844318777, + 134634.76266261935, + 133594.49480363354, + 139617.18787082657, + 128217.16166194528, + 127250.38479238003, + 127925.5896627903, + 152510.46986863017, + 148874.2583978176, + 151230.81790877134, + 107271.56698781624, + 106096.95737218112, + 106781.60374093428, + 122290.48391813412, + 123406.75806841627, + 135934.28426523507, + 144874.6012623757, + 128595.86153997481, + 132427.4469172731, + 124987.8809068501, + 125323.04861487821, + 122169.98825505003, + 120369.02038862184, + 129061.70185616612, + 121210.32663008943, + 129968.94652555883, + 131935.00063871965, + 133914.28902984783, + 105752.50942078605, + 102922.43924526125, + 118489.34243253618, + 111287.41973752901, + 114647.97871280462, + 109956.89612265676, + 90391.92895484716, + 105613.34460686892, + 102467.60150550306, + 98823.85649678484, + 106246.67787430063, + 102564.0241005756, + 68453.44811526686, + 63265.85060498491, + 68141.74796426296, + 69350.52440794185, + 76802.08567362651, + 65153.63947523385, + 41843.99157308042, + 39165.55959096551, + 51238.52599506453, + 51276.68657583743, + 41077.39914666116, + 42151.66996664554, + 30736.063846215606, + 36045.196448497474, + 38385.81055063382, + 21591.845989063382, + 10654.732493117452, + 10611.375357069075, + 5985.382693145424, + 6057.369140423834, + 7414.433489698917, + 5372.706222161651, + 6427.535049766302, + 6284.730732411146, + 6337.76782887429, + 4290.477592796087, + 5177.2016314566135, + 6058.832576304674, + 4773.717004671693, + 4721.482507389039, + 5093.498391665518, + 4175.626140207052, + 5613.475714121014, + 1450.455493569374, + 7.14672714471817, + 7.662584066390989, + 15.863901615142826, + 0, + 0, + 0, + 5.607187271118163 + ] + }, + { + "customdata": [ + [ + "03:00", + "3535.2006765045226" + ], + [ + "03:10", + "4732.263008750975" + ], + [ + "03:19", + "4453.947615891695" + ], + [ + "03:30", + "4033.8789966255426" + ], + [ + "03:40", + "5576.492805451155" + ], + [ + "03:49", + "5929.67486473918" + ], + [ + "04:00", + "6373.333038836718" + ], + [ + "04:10", + "6445.87233223021" + ], + [ + "04:19", + "7099.12048342824" + ], + [ + "04:30", + "10000.878990098834" + ], + [ + "04:40", + "7850.96715053916" + ], + [ + "04:49", + "8398.630299434066" + ], + [ + "05:00", + "16689.94063049555" + ], + [ + "05:10", + "15764.625612348318" + ], + [ + "05:19", + "20034.125304982066" + ], + [ + "05:30", + "28068.352504849434" + ], + [ + "05:40", + "25183.26613135636" + ], + [ + "05:49", + "26961.56097266078" + ], + [ + "06:00", + "41453.556111730635" + ], + [ + "06:10", + "41078.99202619493" + ], + [ + "06:19", + "42450.296562463045" + ], + [ + "06:30", + "79454.53524690494" + ], + [ + "06:40", + "89194.81713596731" + ], + [ + "06:49", + "82895.00105700642" + ], + [ + "07:00", + "115843.5457212925" + ], + [ + "07:10", + "119716.86675763875" + ], + [ + "07:19", + "118156.0957345292" + ], + [ + "07:30", + "117680.66978211701" + ], + [ + "07:40", + "122044.72662815452" + ], + [ + "07:49", + "119308.34325111285" + ], + [ + "08:00", + "113076.20409381017" + ], + [ + "08:10", + "123906.27262561396" + ], + [ + "08:19", + "118631.50704707578" + ], + [ + "08:30", + "99577.82927735522" + ], + [ + "08:40", + "98188.04500278085" + ], + [ + "08:49", + "96231.1857814528" + ], + [ + "09:00", + "100714.34275909513" + ], + [ + "09:10", + "106036.37840720639" + ], + [ + "09:19", + "116002.06822847575" + ], + [ + "09:30", + "125185.3551992923" + ], + [ + "09:40", + "118140.99019219726" + ], + [ + "09:49", + "116858.92272627354" + ], + [ + "10:00", + "109885.77920349687" + ], + [ + "10:10", + "107728.34697382897" + ], + [ + "10:19", + "117114.86393430457" + ], + [ + "10:30", + "133325.55195760354" + ], + [ + "10:40", + "127555.1152350828" + ], + [ + "10:49", + "124333.59838921577" + ], + [ + "11:00", + "107565.750947088" + ], + [ + "11:10", + "99124.04751632363" + ], + [ + "11:19", + "96163.83336053789" + ], + [ + "11:30", + "75164.46985040233" + ], + [ + "11:40", + "80790.63240445778" + ], + [ + "11:49", + "72846.1493678391" + ], + [ + "12:00", + "66090.25716143847" + ], + [ + "12:10", + "62991.541504796594" + ], + [ + "12:19", + "62500.571458462626" + ], + [ + "12:30", + "66744.11573616788" + ], + [ + "12:40", + "66019.77170996368" + ], + [ + "12:49", + "65135.72668128088" + ], + [ + "13:00", + "69602.43603894487" + ], + [ + "13:10", + "71488.69321654737" + ], + [ + "13:19", + "68214.02372400463" + ], + [ + "13:30", + "70177.66953590512" + ], + [ + "13:40", + "76074.20963127539" + ], + [ + "13:49", + "79945.73994715512" + ], + [ + "14:00", + "91838.647313755" + ], + [ + "14:10", + "87530.86652487516" + ], + [ + "14:19", + "89546.8459672071" + ], + [ + "14:30", + "101329.6688812226" + ], + [ + "14:40", + "100789.01850897074" + ], + [ + "14:49", + "102090.95315875858" + ], + [ + "15:00", + "132701.4609279558" + ], + [ + "15:10", + "131018.19161114842" + ], + [ + "15:19", + "126908.4687772058" + ], + [ + "15:30", + "119395.1811372377" + ], + [ + "15:40", + "127613.16182204336" + ], + [ + "15:49", + "122516.20948529989" + ], + [ + "16:00", + "138706.2926781848" + ], + [ + "16:10", + "136977.0566062443" + ], + [ + "16:19", + "141043.65815053135" + ], + [ + "16:30", + "103759.70517375693" + ], + [ + "16:40", + "102164.62867128477" + ], + [ + "16:49", + "100478.31905826554" + ], + [ + "17:00", + "112870.9818520993" + ], + [ + "17:10", + "116715.64550917223" + ], + [ + "17:19", + "130354.37325083837" + ], + [ + "17:30", + "132495.58821609244" + ], + [ + "17:40", + "122240.58284158632" + ], + [ + "17:49", + "120823.71711019054" + ], + [ + "18:00", + "106689.84618316591" + ], + [ + "18:10", + "120910.14483418688" + ], + [ + "18:19", + "114536.34694329277" + ], + [ + "18:30", + "107269.33409374952" + ], + [ + "18:40", + "113612.4285245575" + ], + [ + "18:49", + "115473.39697475731" + ], + [ + "19:00", + "123358.72447411716" + ], + [ + "19:10", + "117263.10995584354" + ], + [ + "19:19", + "119844.32474832237" + ], + [ + "19:30", + "90618.31201191992" + ], + [ + "19:40", + "101688.06957837939" + ], + [ + "19:49", + "102232.97926458344" + ], + [ + "20:00", + "94353.26826123521" + ], + [ + "20:10", + "102380.41981715709" + ], + [ + "20:19", + "107666.53529309481" + ], + [ + "20:30", + "91219.48527367786" + ], + [ + "20:40", + "91224.61273056641" + ], + [ + "20:49", + "94456.60205192864" + ], + [ + "21:00", + "92585.46685682237" + ], + [ + "21:10", + "89918.9928566739" + ], + [ + "21:19", + "93597.00545469671" + ], + [ + "21:30", + "56601.49598121643" + ], + [ + "21:40", + "62104.827372416854" + ], + [ + "21:49", + "64195.81813744828" + ], + [ + "22:00", + "67391.30676179007" + ], + [ + "22:10", + "67510.93652378395" + ], + [ + "22:19", + "58338.13937686756" + ], + [ + "22:30", + "40445.98109052703" + ], + [ + "22:40", + "36332.24628318474" + ], + [ + "22:49", + "53287.03005516529" + ], + [ + "23:00", + "37981.13647707179" + ], + [ + "23:10", + "36090.10724523291" + ], + [ + "23:19", + "39016.325585871935" + ], + [ + "23:30", + "29181.021342359483" + ], + [ + "23:40", + "33818.26158166677" + ], + [ + "23:49", + "35165.95508409664" + ], + [ + "00:00", + "17782.383690532297" + ], + [ + "00:10", + "10694.723252892494" + ], + [ + "00:19", + "10675.207295313478" + ], + [ + "00:30", + "4948.12674690038" + ], + [ + "00:40", + "5290.431093368679" + ], + [ + "00:49", + "9064.83048889786" + ], + [ + "01:00", + "6281.208898834884" + ], + [ + "01:10", + "5459.2631944566965" + ], + [ + "01:19", + "6116.58806052804" + ], + [ + "01:30", + "5351.391442045569" + ], + [ + "01:40", + "5537.556818962097" + ], + [ + "01:49", + "6391.766580104828" + ], + [ + "02:00", + "3880.0612274855375" + ], + [ + "02:10", + "5230.703649535775" + ], + [ + "02:19", + "4014.262443177402" + ], + [ + "02:30", + "5218.417096674442" + ], + [ + "02:40", + "7196.513788942248" + ], + [ + "02:49", + "3574.574805557728" + ], + [ + "03:00", + "478.1301788985729" + ], + [ + "03:10", + "92.82393282651901" + ], + [ + "03:19", + "280.83453369140625" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "98.43082809448242" + ], + [ + "03:49", + "5.607187271118163" + ], + [ + "04:00", + "140.41726684570312" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 3535.2006765045226, + 4732.263008750975, + 4453.947615891695, + 4033.8789966255426, + 5576.492805451155, + 5929.67486473918, + 6373.333038836718, + 6445.87233223021, + 7099.12048342824, + 10000.878990098834, + 7850.96715053916, + 8398.630299434066, + 16689.94063049555, + 15764.625612348318, + 20034.125304982066, + 28068.352504849434, + 25183.26613135636, + 26961.56097266078, + 41453.556111730635, + 41078.99202619493, + 42450.296562463045, + 79454.53524690494, + 89194.81713596731, + 82895.00105700642, + 115843.5457212925, + 119716.86675763875, + 118156.0957345292, + 117680.66978211701, + 122044.72662815452, + 119308.34325111285, + 113076.20409381017, + 123906.27262561396, + 118631.50704707578, + 99577.82927735522, + 98188.04500278085, + 96231.1857814528, + 100714.34275909513, + 106036.37840720639, + 116002.06822847575, + 125185.3551992923, + 118140.99019219726, + 116858.92272627354, + 109885.77920349687, + 107728.34697382897, + 117114.86393430457, + 133325.55195760354, + 127555.1152350828, + 124333.59838921577, + 107565.750947088, + 99124.04751632363, + 96163.83336053789, + 75164.46985040233, + 80790.63240445778, + 72846.1493678391, + 66090.25716143847, + 62991.541504796594, + 62500.571458462626, + 66744.11573616788, + 66019.77170996368, + 65135.72668128088, + 69602.43603894487, + 71488.69321654737, + 68214.02372400463, + 70177.66953590512, + 76074.20963127539, + 79945.73994715512, + 91838.647313755, + 87530.86652487516, + 89546.8459672071, + 101329.6688812226, + 100789.01850897074, + 102090.95315875858, + 132701.4609279558, + 131018.19161114842, + 126908.4687772058, + 119395.1811372377, + 127613.16182204336, + 122516.20948529989, + 138706.2926781848, + 136977.0566062443, + 141043.65815053135, + 103759.70517375693, + 102164.62867128477, + 100478.31905826554, + 112870.9818520993, + 116715.64550917223, + 130354.37325083837, + 132495.58821609244, + 122240.58284158632, + 120823.71711019054, + 106689.84618316591, + 120910.14483418688, + 114536.34694329277, + 107269.33409374952, + 113612.4285245575, + 115473.39697475731, + 123358.72447411716, + 117263.10995584354, + 119844.32474832237, + 90618.31201191992, + 101688.06957837939, + 102232.97926458344, + 94353.26826123521, + 102380.41981715709, + 107666.53529309481, + 91219.48527367786, + 91224.61273056641, + 94456.60205192864, + 92585.46685682237, + 89918.9928566739, + 93597.00545469671, + 56601.49598121643, + 62104.827372416854, + 64195.81813744828, + 67391.30676179007, + 67510.93652378395, + 58338.13937686756, + 40445.98109052703, + 36332.24628318474, + 53287.03005516529, + 37981.13647707179, + 36090.10724523291, + 39016.325585871935, + 29181.021342359483, + 33818.26158166677, + 35165.95508409664, + 17782.383690532297, + 10694.723252892494, + 10675.207295313478, + 4948.12674690038, + 5290.431093368679, + 9064.83048889786, + 6281.208898834884, + 5459.2631944566965, + 6116.58806052804, + 5351.391442045569, + 5537.556818962097, + 6391.766580104828, + 3880.0612274855375, + 5230.703649535775, + 4014.262443177402, + 5218.417096674442, + 7196.513788942248, + 3574.574805557728, + 478.1301788985729, + 92.82393282651901, + 280.83453369140625, + 0, + 98.43082809448242, + 5.607187271118163, + 140.41726684570312 + ] + }, + { + "customdata": [ + [ + "03:00", + "3442.384509433061" + ], + [ + "03:10", + "4660.923109419644" + ], + [ + "03:19", + "4536.775215268135" + ], + [ + "03:30", + "4037.8456299751997" + ], + [ + "03:40", + "6301.205305069685" + ], + [ + "03:49", + "5423.217442899942" + ], + [ + "04:00", + "5890.9865894168615" + ], + [ + "04:10", + "7241.061887741089" + ], + [ + "04:19", + "6337.797223135829" + ], + [ + "04:30", + "9682.02780868113" + ], + [ + "04:40", + "7998.242441833019" + ], + [ + "04:49", + "7626.135917365551" + ], + [ + "05:00", + "17285.81791846454" + ], + [ + "05:10", + "16897.427952602506" + ], + [ + "05:19", + "20359.354472860694" + ], + [ + "05:30", + "27239.160832107067" + ], + [ + "05:40", + "23110.323057085276" + ], + [ + "05:49", + "28284.40341179073" + ], + [ + "06:00", + "39145.93961716443" + ], + [ + "06:10", + "42780.99075977504" + ], + [ + "06:19", + "43167.895669318736" + ], + [ + "06:30", + "81823.577030316" + ], + [ + "06:40", + "86596.50856287405" + ], + [ + "06:49", + "83422.98232579976" + ], + [ + "07:00", + "111179.66300734878" + ], + [ + "07:10", + "118894.86403407902" + ], + [ + "07:19", + "120612.0628534779" + ], + [ + "07:30", + "113471.63386816531" + ], + [ + "07:40", + "117941.44330849126" + ], + [ + "07:49", + "125082.91587718204" + ], + [ + "08:00", + "107690.31920171902" + ], + [ + "08:10", + "122667.44545595348" + ], + [ + "08:19", + "115027.17767517641" + ], + [ + "08:30", + "94811.90229886025" + ], + [ + "08:40", + "94076.69821335375" + ], + [ + "08:49", + "98538.9123166278" + ], + [ + "09:00", + "93678.79068023711" + ], + [ + "09:10", + "103658.98556750268" + ], + [ + "09:19", + "113246.65687994286" + ], + [ + "09:30", + "121329.07386798039" + ], + [ + "09:40", + "114984.78028085455" + ], + [ + "09:49", + "113612.50893778726" + ], + [ + "10:00", + "106737.8780869022" + ], + [ + "10:10", + "106847.90772599727" + ], + [ + "10:19", + "108876.14093564451" + ], + [ + "10:30", + "125350.62258694321" + ], + [ + "10:40", + "125589.97454448044" + ], + [ + "10:49", + "118225.82423445582" + ], + [ + "11:00", + "97103.41299146041" + ], + [ + "11:10", + "97093.14284622297" + ], + [ + "11:19", + "94717.3701469414" + ], + [ + "11:30", + "72043.17796939239" + ], + [ + "11:40", + "76113.10754306987" + ], + [ + "11:49", + "72301.01216869801" + ], + [ + "12:00", + "66877.3333055824" + ], + [ + "12:10", + "64629.209538090974" + ], + [ + "12:19", + "60157.287822861224" + ], + [ + "12:30", + "66612.40560090914" + ], + [ + "12:40", + "66149.56772144884" + ], + [ + "12:49", + "62768.497506234795" + ], + [ + "13:00", + "65945.33371458203" + ], + [ + "13:10", + "72746.38561493531" + ], + [ + "13:19", + "65309.893486540765" + ], + [ + "13:30", + "69568.01752893627" + ], + [ + "13:40", + "72883.59254357591" + ], + [ + "13:49", + "80014.9725795351" + ], + [ + "14:00", + "96024.48726280779" + ], + [ + "14:10", + "84653.84228440002" + ], + [ + "14:19", + "81100.20564772189" + ], + [ + "14:30", + "96984.15850222483" + ], + [ + "14:40", + "98758.0521460846" + ], + [ + "14:49", + "105401.51147983968" + ], + [ + "15:00", + "126995.98639918864" + ], + [ + "15:10", + "124400.80168718845" + ], + [ + "15:19", + "123861.61107815802" + ], + [ + "15:30", + "116712.0298952423" + ], + [ + "15:40", + "118726.14824774489" + ], + [ + "15:49", + "123962.26776881889" + ], + [ + "16:00", + "126094.99115571007" + ], + [ + "16:10", + "135810.12897903845" + ], + [ + "16:19", + "139569.41727619618" + ], + [ + "16:30", + "100202.1322218664" + ], + [ + "16:40", + "96442.06404827535" + ], + [ + "16:49", + "96752.83156482875" + ], + [ + "17:00", + "106735.23732349277" + ], + [ + "17:10", + "109278.57597476989" + ], + [ + "17:19", + "123205.67687240615" + ], + [ + "17:30", + "126233.97742068395" + ], + [ + "17:40", + "110536.86950919405" + ], + [ + "17:49", + "120259.40779707581" + ], + [ + "18:00", + "116015.26628325507" + ], + [ + "18:10", + "104371.19324880838" + ], + [ + "18:19", + "109923.63975673914" + ], + [ + "18:30", + "106545.6991661936" + ], + [ + "18:40", + "111323.96988614649" + ], + [ + "18:49", + "105258.29104404151" + ], + [ + "19:00", + "114188.46552625671" + ], + [ + "19:10", + "110988.76401039585" + ], + [ + "19:19", + "114742.63576189801" + ], + [ + "19:30", + "88294.64109637588" + ], + [ + "19:40", + "103493.86197632924" + ], + [ + "19:49", + "88238.24517643824" + ], + [ + "20:00", + "87841.82879174128" + ], + [ + "20:10", + "104285.23479437828" + ], + [ + "20:19", + "97695.50044217706" + ], + [ + "20:30", + "83909.26894932613" + ], + [ + "20:40", + "87584.88320814818" + ], + [ + "20:49", + "91737.0342211537" + ], + [ + "21:00", + "85779.88016800582" + ], + [ + "21:10", + "90814.72423275188" + ], + [ + "21:19", + "87936.11673031747" + ], + [ + "21:30", + "59457.33918175846" + ], + [ + "21:40", + "48577.22210017964" + ], + [ + "21:49", + "63449.702304627746" + ], + [ + "22:00", + "65676.31490787864" + ], + [ + "22:10", + "64719.15255513042" + ], + [ + "22:19", + "55044.54831370711" + ], + [ + "22:30", + "39067.76348075643" + ], + [ + "22:40", + "36235.66201511398" + ], + [ + "22:49", + "55796.930831462145" + ], + [ + "23:00", + "33594.882832121104" + ], + [ + "23:10", + "34209.6003219299" + ], + [ + "23:19", + "33751.12430859357" + ], + [ + "23:30", + "31281.17239711806" + ], + [ + "23:40", + "31373.936990752816" + ], + [ + "23:49", + "32412.12023279071" + ], + [ + "00:00", + "18141.654482848942" + ], + [ + "00:10", + "10894.996656104922" + ], + [ + "00:19", + "9864.419285349548" + ], + [ + "00:30", + "5674.769491352141" + ], + [ + "00:40", + "5922.88975931704" + ], + [ + "00:49", + "7679.966312684119" + ], + [ + "01:00", + "6896.369511343539" + ], + [ + "01:10", + "6473.328018911183" + ], + [ + "01:19", + "5460.4207954108715" + ], + [ + "01:30", + "5686.254019618034" + ], + [ + "01:40", + "5442.428535729647" + ], + [ + "01:49", + "4715.117139279842" + ], + [ + "02:00", + "5033.811931796372" + ], + [ + "02:10", + "4785.466249287128" + ], + [ + "02:19", + "4495.498864531517" + ], + [ + "02:30", + "5643.314301967621" + ], + [ + "02:40", + "6032.946739286184" + ], + [ + "02:49", + "4837.306187197566" + ], + [ + "03:00", + "291.8482305407524" + ], + [ + "03:10", + "140.41726684570312" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "140.41726684570312" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "140.41726684570312" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 3442.384509433061, + 4660.923109419644, + 4536.775215268135, + 4037.8456299751997, + 6301.205305069685, + 5423.217442899942, + 5890.9865894168615, + 7241.061887741089, + 6337.797223135829, + 9682.02780868113, + 7998.242441833019, + 7626.135917365551, + 17285.81791846454, + 16897.427952602506, + 20359.354472860694, + 27239.160832107067, + 23110.323057085276, + 28284.40341179073, + 39145.93961716443, + 42780.99075977504, + 43167.895669318736, + 81823.577030316, + 86596.50856287405, + 83422.98232579976, + 111179.66300734878, + 118894.86403407902, + 120612.0628534779, + 113471.63386816531, + 117941.44330849126, + 125082.91587718204, + 107690.31920171902, + 122667.44545595348, + 115027.17767517641, + 94811.90229886025, + 94076.69821335375, + 98538.9123166278, + 93678.79068023711, + 103658.98556750268, + 113246.65687994286, + 121329.07386798039, + 114984.78028085455, + 113612.50893778726, + 106737.8780869022, + 106847.90772599727, + 108876.14093564451, + 125350.62258694321, + 125589.97454448044, + 118225.82423445582, + 97103.41299146041, + 97093.14284622297, + 94717.3701469414, + 72043.17796939239, + 76113.10754306987, + 72301.01216869801, + 66877.3333055824, + 64629.209538090974, + 60157.287822861224, + 66612.40560090914, + 66149.56772144884, + 62768.497506234795, + 65945.33371458203, + 72746.38561493531, + 65309.893486540765, + 69568.01752893627, + 72883.59254357591, + 80014.9725795351, + 96024.48726280779, + 84653.84228440002, + 81100.20564772189, + 96984.15850222483, + 98758.0521460846, + 105401.51147983968, + 126995.98639918864, + 124400.80168718845, + 123861.61107815802, + 116712.0298952423, + 118726.14824774489, + 123962.26776881889, + 126094.99115571007, + 135810.12897903845, + 139569.41727619618, + 100202.1322218664, + 96442.06404827535, + 96752.83156482875, + 106735.23732349277, + 109278.57597476989, + 123205.67687240615, + 126233.97742068395, + 110536.86950919405, + 120259.40779707581, + 116015.26628325507, + 104371.19324880838, + 109923.63975673914, + 106545.6991661936, + 111323.96988614649, + 105258.29104404151, + 114188.46552625671, + 110988.76401039585, + 114742.63576189801, + 88294.64109637588, + 103493.86197632924, + 88238.24517643824, + 87841.82879174128, + 104285.23479437828, + 97695.50044217706, + 83909.26894932613, + 87584.88320814818, + 91737.0342211537, + 85779.88016800582, + 90814.72423275188, + 87936.11673031747, + 59457.33918175846, + 48577.22210017964, + 63449.702304627746, + 65676.31490787864, + 64719.15255513042, + 55044.54831370711, + 39067.76348075643, + 36235.66201511398, + 55796.930831462145, + 33594.882832121104, + 34209.6003219299, + 33751.12430859357, + 31281.17239711806, + 31373.936990752816, + 32412.12023279071, + 18141.654482848942, + 10894.996656104922, + 9864.419285349548, + 5674.769491352141, + 5922.88975931704, + 7679.966312684119, + 6896.369511343539, + 6473.328018911183, + 5460.4207954108715, + 5686.254019618034, + 5442.428535729647, + 4715.117139279842, + 5033.811931796372, + 4785.466249287128, + 4495.498864531517, + 5643.314301967621, + 6032.946739286184, + 4837.306187197566, + 291.8482305407524, + 140.41726684570312, + 0, + 140.41726684570312, + 0, + 0, + 0, + 140.41726684570312 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC VMT (normalized to per-hour) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "VMT per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "4271.962000686675" + ], + [ + "03:10", + "4258.906500801444" + ], + [ + "03:19", + "4612.874580949545" + ], + [ + "03:30", + "4927.015667483211" + ], + [ + "03:40", + "6310.966763913631" + ], + [ + "03:49", + "4829.365607589483" + ], + [ + "04:00", + "6545.189950123429" + ], + [ + "04:10", + "6547.63733536005" + ], + [ + "04:19", + "6831.531698405743" + ], + [ + "04:30", + "7917.918021798134" + ], + [ + "04:40", + "7749.150493249297" + ], + [ + "04:49", + "10240.911189079285" + ], + [ + "05:00", + "14747.59193265438" + ], + [ + "05:10", + "19564.96947826445" + ], + [ + "05:19", + "20364.247886538506" + ], + [ + "05:30", + "28459.98631489277" + ], + [ + "05:40", + "25730.680422976613" + ], + [ + "05:49", + "27020.28838004172" + ], + [ + "06:00", + "36028.31477924064" + ], + [ + "06:10", + "43611.85952364653" + ], + [ + "06:19", + "44809.230216991156" + ], + [ + "06:30", + "84425.27709580958" + ], + [ + "06:40", + "82493.299576208" + ], + [ + "06:49", + "88236.05687234178" + ], + [ + "07:00", + "116652.43129101768" + ], + [ + "07:10", + "118311.24182028696" + ], + [ + "07:19", + "122550.91666447744" + ], + [ + "07:30", + "120680.99991070479" + ], + [ + "07:40", + "125823.76901327446" + ], + [ + "07:49", + "117770.40686918423" + ], + [ + "08:00", + "122151.47995305061" + ], + [ + "08:10", + "112554.267947115" + ], + [ + "08:19", + "130849.85913445428" + ], + [ + "08:30", + "102335.97105936706" + ], + [ + "08:40", + "102159.07312686369" + ], + [ + "08:49", + "107317.45056152344" + ], + [ + "09:00", + "107087.94615885615" + ], + [ + "09:10", + "117479.2766706571" + ], + [ + "09:19", + "123910.1672979109" + ], + [ + "09:30", + "129940.61579728872" + ], + [ + "09:40", + "129135.27079512924" + ], + [ + "09:49", + "131717.1171552278" + ], + [ + "10:00", + "124023.95888963342" + ], + [ + "10:10", + "131488.02519186214" + ], + [ + "10:19", + "119981.13164405152" + ], + [ + "10:30", + "142663.99847487733" + ], + [ + "10:40", + "141939.49763879925" + ], + [ + "10:49", + "140620.72027832642" + ], + [ + "11:00", + "121510.95984230563" + ], + [ + "11:10", + "106107.00804445893" + ], + [ + "11:19", + "107144.45218217745" + ], + [ + "11:30", + "86173.86165357381" + ], + [ + "11:40", + "80756.30324059725" + ], + [ + "11:49", + "83026.9595419541" + ], + [ + "12:00", + "66499.82963436842" + ], + [ + "12:10", + "66522.10454239324" + ], + [ + "12:19", + "66767.47853575274" + ], + [ + "12:30", + "64797.937318291515" + ], + [ + "12:40", + "67540.4185876809" + ], + [ + "12:49", + "65817.49586266279" + ], + [ + "13:00", + "78893.71533411741" + ], + [ + "13:10", + "73186.95984994993" + ], + [ + "13:19", + "70820.12788375095" + ], + [ + "13:30", + "70141.49779724702" + ], + [ + "13:40", + "84438.92533489689" + ], + [ + "13:49", + "84645.03119849414" + ], + [ + "14:00", + "92751.94683626667" + ], + [ + "14:10", + "87159.73329018429" + ], + [ + "14:19", + "93246.05263940245" + ], + [ + "14:30", + "114421.92231094837" + ], + [ + "14:40", + "108935.24962072447" + ], + [ + "14:49", + "105085.34844318777" + ], + [ + "15:00", + "134634.76266261935" + ], + [ + "15:10", + "133594.49480363354" + ], + [ + "15:19", + "139617.18787082657" + ], + [ + "15:30", + "128217.16166194528" + ], + [ + "15:40", + "127250.38479238003" + ], + [ + "15:49", + "127925.5896627903" + ], + [ + "16:00", + "152510.46986863017" + ], + [ + "16:10", + "148874.2583978176" + ], + [ + "16:19", + "151230.81790877134" + ], + [ + "16:30", + "107271.56698781624" + ], + [ + "16:40", + "106096.95737218112" + ], + [ + "16:49", + "106781.60374093428" + ], + [ + "17:00", + "122290.48391813412" + ], + [ + "17:10", + "123406.75806841627" + ], + [ + "17:19", + "135934.28426523507" + ], + [ + "17:30", + "144874.6012623757" + ], + [ + "17:40", + "128595.86153997481" + ], + [ + "17:49", + "132427.4469172731" + ], + [ + "18:00", + "124987.8809068501" + ], + [ + "18:10", + "125323.04861487821" + ], + [ + "18:19", + "122169.98825505003" + ], + [ + "18:30", + "120369.02038862184" + ], + [ + "18:40", + "129061.70185616612" + ], + [ + "18:49", + "121210.32663008943" + ], + [ + "19:00", + "129968.94652555883" + ], + [ + "19:10", + "131935.00063871965" + ], + [ + "19:19", + "133914.28902984783" + ], + [ + "19:30", + "105752.50942078605" + ], + [ + "19:40", + "102922.43924526125" + ], + [ + "19:49", + "118489.34243253618" + ], + [ + "20:00", + "111287.41973752901" + ], + [ + "20:10", + "114647.97871280462" + ], + [ + "20:19", + "109956.89612265676" + ], + [ + "20:30", + "90391.92895484716" + ], + [ + "20:40", + "105613.34460686892" + ], + [ + "20:49", + "102467.60150550306" + ], + [ + "21:00", + "98823.85649678484" + ], + [ + "21:10", + "106246.67787430063" + ], + [ + "21:19", + "102564.0241005756" + ], + [ + "21:30", + "68453.44811526686" + ], + [ + "21:40", + "63265.85060498491" + ], + [ + "21:49", + "68141.74796426296" + ], + [ + "22:00", + "69350.52440794185" + ], + [ + "22:10", + "76802.08567362651" + ], + [ + "22:19", + "65153.63947523385" + ], + [ + "22:30", + "41843.99157308042" + ], + [ + "22:40", + "39165.55959096551" + ], + [ + "22:49", + "51238.52599506453" + ], + [ + "23:00", + "51276.68657583743" + ], + [ + "23:10", + "41077.39914666116" + ], + [ + "23:19", + "42151.66996664554" + ], + [ + "23:30", + "30736.063846215606" + ], + [ + "23:40", + "36045.196448497474" + ], + [ + "23:49", + "38385.81055063382" + ], + [ + "00:00", + "21591.845989063382" + ], + [ + "00:10", + "10654.732493117452" + ], + [ + "00:19", + "10611.375357069075" + ], + [ + "00:30", + "5985.382693145424" + ], + [ + "00:40", + "6057.369140423834" + ], + [ + "00:49", + "7414.433489698917" + ], + [ + "01:00", + "5372.706222161651" + ], + [ + "01:10", + "6427.535049766302" + ], + [ + "01:19", + "6284.730732411146" + ], + [ + "01:30", + "6337.76782887429" + ], + [ + "01:40", + "4290.477592796087" + ], + [ + "01:49", + "5177.2016314566135" + ], + [ + "02:00", + "6058.832576304674" + ], + [ + "02:10", + "4773.717004671693" + ], + [ + "02:19", + "4721.482507389039" + ], + [ + "02:30", + "5093.498391665518" + ], + [ + "02:40", + "4175.626140207052" + ], + [ + "02:49", + "5613.475714121014" + ], + [ + "03:00", + "1450.455493569374" + ], + [ + "03:10", + "7.14672714471817" + ], + [ + "03:19", + "7.662584066390989" + ], + [ + "03:30", + "15.863901615142826" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "5.607187271118163" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 4271.962000686675, + 4258.906500801444, + 4612.874580949545, + 4927.015667483211, + 6310.966763913631, + 4829.365607589483, + 6545.189950123429, + 6547.63733536005, + 6831.531698405743, + 7917.918021798134, + 7749.150493249297, + 10240.911189079285, + 14747.59193265438, + 19564.96947826445, + 20364.247886538506, + 28459.98631489277, + 25730.680422976613, + 27020.28838004172, + 36028.31477924064, + 43611.85952364653, + 44809.230216991156, + 84425.27709580958, + 82493.299576208, + 88236.05687234178, + 116652.43129101768, + 118311.24182028696, + 122550.91666447744, + 120680.99991070479, + 125823.76901327446, + 117770.40686918423, + 122151.47995305061, + 112554.267947115, + 130849.85913445428, + 102335.97105936706, + 102159.07312686369, + 107317.45056152344, + 107087.94615885615, + 117479.2766706571, + 123910.1672979109, + 129940.61579728872, + 129135.27079512924, + 131717.1171552278, + 124023.95888963342, + 131488.02519186214, + 119981.13164405152, + 142663.99847487733, + 141939.49763879925, + 140620.72027832642, + 121510.95984230563, + 106107.00804445893, + 107144.45218217745, + 86173.86165357381, + 80756.30324059725, + 83026.9595419541, + 66499.82963436842, + 66522.10454239324, + 66767.47853575274, + 64797.937318291515, + 67540.4185876809, + 65817.49586266279, + 78893.71533411741, + 73186.95984994993, + 70820.12788375095, + 70141.49779724702, + 84438.92533489689, + 84645.03119849414, + 92751.94683626667, + 87159.73329018429, + 93246.05263940245, + 114421.92231094837, + 108935.24962072447, + 105085.34844318777, + 134634.76266261935, + 133594.49480363354, + 139617.18787082657, + 128217.16166194528, + 127250.38479238003, + 127925.5896627903, + 152510.46986863017, + 148874.2583978176, + 151230.81790877134, + 107271.56698781624, + 106096.95737218112, + 106781.60374093428, + 122290.48391813412, + 123406.75806841627, + 135934.28426523507, + 144874.6012623757, + 128595.86153997481, + 132427.4469172731, + 124987.8809068501, + 125323.04861487821, + 122169.98825505003, + 120369.02038862184, + 129061.70185616612, + 121210.32663008943, + 129968.94652555883, + 131935.00063871965, + 133914.28902984783, + 105752.50942078605, + 102922.43924526125, + 118489.34243253618, + 111287.41973752901, + 114647.97871280462, + 109956.89612265676, + 90391.92895484716, + 105613.34460686892, + 102467.60150550306, + 98823.85649678484, + 106246.67787430063, + 102564.0241005756, + 68453.44811526686, + 63265.85060498491, + 68141.74796426296, + 69350.52440794185, + 76802.08567362651, + 65153.63947523385, + 41843.99157308042, + 39165.55959096551, + 51238.52599506453, + 51276.68657583743, + 41077.39914666116, + 42151.66996664554, + 30736.063846215606, + 36045.196448497474, + 38385.81055063382, + 21591.845989063382, + 10654.732493117452, + 10611.375357069075, + 5985.382693145424, + 6057.369140423834, + 7414.433489698917, + 5372.706222161651, + 6427.535049766302, + 6284.730732411146, + 6337.76782887429, + 4290.477592796087, + 5177.2016314566135, + 6058.832576304674, + 4773.717004671693, + 4721.482507389039, + 5093.498391665518, + 4175.626140207052, + 5613.475714121014, + 1450.455493569374, + 7.14672714471817, + 7.662584066390989, + 15.863901615142826, + 0, + 0, + 0, + 5.607187271118163 + ] + }, + { + "customdata": [ + [ + "03:00", + "202483.67546946555" + ], + [ + "03:10", + "207964.793791987" + ], + [ + "03:19", + "215429.55483202636" + ], + [ + "03:30", + "220185.7967853248" + ], + [ + "03:40", + "223262.9589457065" + ], + [ + "03:49", + "227323.32332722843" + ], + [ + "04:00", + "282366.5992379375" + ], + [ + "04:10", + "289410.375766173" + ], + [ + "04:19", + "297349.08612891287" + ], + [ + "04:30", + "409227.85351711884" + ], + [ + "04:40", + "420815.7900074981" + ], + [ + "04:49", + "412959.889227815" + ], + [ + "05:00", + "634104.343729198" + ], + [ + "05:10", + "652257.6922595724" + ], + [ + "05:19", + "662430.2988489345" + ], + [ + "05:30", + "1048780.8315955773" + ], + [ + "05:40", + "1087784.5770037137" + ], + [ + "05:49", + "1098706.7091422193" + ], + [ + "06:00", + "1845507.307951402" + ], + [ + "06:10", + "1885935.1432195902" + ], + [ + "06:19", + "1888471.5674939565" + ], + [ + "06:30", + "4141091.0170596913" + ], + [ + "06:40", + "4222925.786394261" + ], + [ + "06:49", + "4312329.885335047" + ], + [ + "07:00", + "5657638.357203651" + ], + [ + "07:10", + "5805646.691167854" + ], + [ + "07:19", + "5847626.79397757" + ], + [ + "07:30", + "6160672.062355276" + ], + [ + "07:40", + "5966366.770891026" + ], + [ + "07:49", + "6097678.448670387" + ], + [ + "08:00", + "4967105.863185916" + ], + [ + "08:10", + "4772780.0750460215" + ], + [ + "08:19", + "4751184.712116726" + ], + [ + "08:30", + "3926683.0716890953" + ], + [ + "08:40", + "3746213.874040559" + ], + [ + "08:49", + "3733070.7811219767" + ], + [ + "09:00", + "3169386.441801455" + ], + [ + "09:10", + "3084112.857298281" + ], + [ + "09:19", + "3084382.49455392" + ], + [ + "09:30", + "2812984.550361246" + ], + [ + "09:40", + "2760962.9954183623" + ], + [ + "09:49", + "2754829.780979868" + ], + [ + "10:00", + "2571813.201857418" + ], + [ + "10:10", + "2554150.1967459284" + ], + [ + "10:19", + "2530066.0675300844" + ], + [ + "10:30", + "2552220.804772541" + ], + [ + "10:40", + "2528443.036898017" + ], + [ + "10:49", + "2520395.3819548488" + ], + [ + "11:00", + "2479196.2085439563" + ], + [ + "11:10", + "2485451.059557315" + ], + [ + "11:19", + "2478473.294903543" + ], + [ + "11:30", + "2598983.3537890054" + ], + [ + "11:40", + "2656365.604278758" + ], + [ + "11:49", + "2614324.3886278085" + ], + [ + "12:00", + "2605620.363618236" + ], + [ + "12:10", + "2606866.0826333463" + ], + [ + "12:19", + "2598144.822972022" + ], + [ + "12:30", + "2523026.8903808556" + ], + [ + "12:40", + "2516928.9626043923" + ], + [ + "12:49", + "2508788.194059357" + ], + [ + "13:00", + "2530406.007704135" + ], + [ + "13:10", + "2529134.438474223" + ], + [ + "13:19", + "2525326.8491950035" + ], + [ + "13:30", + "2564987.3306071423" + ], + [ + "13:40", + "2561308.984936025" + ], + [ + "13:49", + "2550074.489951525" + ], + [ + "14:00", + "2848062.4899502024" + ], + [ + "14:10", + "2894942.331476748" + ], + [ + "14:19", + "2896280.626639098" + ], + [ + "14:30", + "3351891.627381239" + ], + [ + "14:40", + "3414661.9865601584" + ], + [ + "14:49", + "3434356.0540978834" + ], + [ + "15:00", + "4053284.8158542365" + ], + [ + "15:10", + "4191216.840246409" + ], + [ + "15:19", + "4170384.086128872" + ], + [ + "15:30", + "4204467.841552701" + ], + [ + "15:40", + "4263706.342861734" + ], + [ + "15:49", + "4244091.62029957" + ], + [ + "16:00", + "4626969.003706053" + ], + [ + "16:10", + "4704430.060930487" + ], + [ + "16:19", + "4662428.542429872" + ], + [ + "16:30", + "3987207.5110942908" + ], + [ + "16:40", + "3953901.219799664" + ], + [ + "16:49", + "3931781.479612671" + ], + [ + "17:00", + "4120594.799821917" + ], + [ + "17:10", + "4131811.8260307983" + ], + [ + "17:19", + "4175756.384371262" + ], + [ + "17:30", + "4176198.0113367364" + ], + [ + "17:40", + "4158245.527146209" + ], + [ + "17:49", + "4181319.042422399" + ], + [ + "18:00", + "3690744.8696454987" + ], + [ + "18:10", + "3613647.669892486" + ], + [ + "18:19", + "3611658.250221893" + ], + [ + "18:30", + "3326439.9155103117" + ], + [ + "18:40", + "3267208.9949302487" + ], + [ + "18:49", + "3277962.2417889163" + ], + [ + "19:00", + "2775496.6166865528" + ], + [ + "19:10", + "2662113.0506313555" + ], + [ + "19:19", + "2694022.3208579533" + ], + [ + "19:30", + "2315201.100131415" + ], + [ + "19:40", + "2241689.0333389565" + ], + [ + "19:49", + "2241062.1041612662" + ], + [ + "20:00", + "2079136.2381364927" + ], + [ + "20:10", + "1984025.2933335006" + ], + [ + "20:19", + "2002628.3092134856" + ], + [ + "20:30", + "1816657.7364036106" + ], + [ + "20:40", + "1803136.0340270363" + ], + [ + "20:49", + "1782525.3171411306" + ], + [ + "21:00", + "1626780.4815560728" + ], + [ + "21:10", + "1579288.9857170507" + ], + [ + "21:19", + "1596478.7821398675" + ], + [ + "21:30", + "1207212.27572513" + ], + [ + "21:40", + "1107908.315473996" + ], + [ + "21:49", + "1085751.4879883341" + ], + [ + "22:00", + "933758.82533722" + ], + [ + "22:10", + "905613.5693180189" + ], + [ + "22:19", + "909856.2206089944" + ], + [ + "22:30", + "751240.4833002202" + ], + [ + "22:40", + "724821.2104088478" + ], + [ + "22:49", + "718686.7646661066" + ], + [ + "23:00", + "620396.4827525541" + ], + [ + "23:10", + "596388.2529610321" + ], + [ + "23:19", + "575175.0580477305" + ], + [ + "23:30", + "524962.9734238945" + ], + [ + "23:40", + "531773.518642243" + ], + [ + "23:49", + "545526.7851555459" + ], + [ + "00:00", + "416569.26171794906" + ], + [ + "00:10", + "367127.08554925025" + ], + [ + "00:19", + "354544.7536158487" + ], + [ + "00:30", + "306578.1435560435" + ], + [ + "00:40", + "296147.5070534572" + ], + [ + "00:49", + "287654.4324884601" + ], + [ + "01:00", + "256261.8631091863" + ], + [ + "01:10", + "252647.87992087752" + ], + [ + "01:19", + "254209.75587961078" + ], + [ + "01:30", + "214131.70323514938" + ], + [ + "01:40", + "219130.2676699385" + ], + [ + "01:49", + "213168.9435093999" + ], + [ + "02:00", + "171203.12835586444" + ], + [ + "02:10", + "181033.8165052794" + ], + [ + "02:19", + "170476.59822077304" + ], + [ + "02:30", + "152255.51506089047" + ], + [ + "02:40", + "156774.60078562796" + ], + [ + "02:49", + "143964.43625041097" + ], + [ + "03:00", + "30504.600361704826" + ], + [ + "03:10", + "7458.944065667689" + ], + [ + "03:19", + "5314.255055844784" + ], + [ + "03:30", + "3017.855228036642" + ], + [ + "03:40", + "1574.002866357565" + ], + [ + "03:49", + "1457.9976925849915" + ], + [ + "04:00", + "1361.1322812438011" + ], + [ + "04:10", + "949.3914828300476" + ], + [ + "04:19", + "1438.77050614357" + ], + [ + "04:30", + "289.898775100708" + ], + [ + "04:40", + "75.2706538438797" + ], + [ + "04:49", + "20.35190176963806" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332, + 25.5, + 25.666666666666668, + 25.833333333333332 + ], + "y": [ + 202483.67546946555, + 207964.793791987, + 215429.55483202636, + 220185.7967853248, + 223262.9589457065, + 227323.32332722843, + 282366.5992379375, + 289410.375766173, + 297349.08612891287, + 409227.85351711884, + 420815.7900074981, + 412959.889227815, + 634104.343729198, + 652257.6922595724, + 662430.2988489345, + 1048780.8315955773, + 1087784.5770037137, + 1098706.7091422193, + 1845507.307951402, + 1885935.1432195902, + 1888471.5674939565, + 4141091.0170596913, + 4222925.786394261, + 4312329.885335047, + 5657638.357203651, + 5805646.691167854, + 5847626.79397757, + 6160672.062355276, + 5966366.770891026, + 6097678.448670387, + 4967105.863185916, + 4772780.0750460215, + 4751184.712116726, + 3926683.0716890953, + 3746213.874040559, + 3733070.7811219767, + 3169386.441801455, + 3084112.857298281, + 3084382.49455392, + 2812984.550361246, + 2760962.9954183623, + 2754829.780979868, + 2571813.201857418, + 2554150.1967459284, + 2530066.0675300844, + 2552220.804772541, + 2528443.036898017, + 2520395.3819548488, + 2479196.2085439563, + 2485451.059557315, + 2478473.294903543, + 2598983.3537890054, + 2656365.604278758, + 2614324.3886278085, + 2605620.363618236, + 2606866.0826333463, + 2598144.822972022, + 2523026.8903808556, + 2516928.9626043923, + 2508788.194059357, + 2530406.007704135, + 2529134.438474223, + 2525326.8491950035, + 2564987.3306071423, + 2561308.984936025, + 2550074.489951525, + 2848062.4899502024, + 2894942.331476748, + 2896280.626639098, + 3351891.627381239, + 3414661.9865601584, + 3434356.0540978834, + 4053284.8158542365, + 4191216.840246409, + 4170384.086128872, + 4204467.841552701, + 4263706.342861734, + 4244091.62029957, + 4626969.003706053, + 4704430.060930487, + 4662428.542429872, + 3987207.5110942908, + 3953901.219799664, + 3931781.479612671, + 4120594.799821917, + 4131811.8260307983, + 4175756.384371262, + 4176198.0113367364, + 4158245.527146209, + 4181319.042422399, + 3690744.8696454987, + 3613647.669892486, + 3611658.250221893, + 3326439.9155103117, + 3267208.9949302487, + 3277962.2417889163, + 2775496.6166865528, + 2662113.0506313555, + 2694022.3208579533, + 2315201.100131415, + 2241689.0333389565, + 2241062.1041612662, + 2079136.2381364927, + 1984025.2933335006, + 2002628.3092134856, + 1816657.7364036106, + 1803136.0340270363, + 1782525.3171411306, + 1626780.4815560728, + 1579288.9857170507, + 1596478.7821398675, + 1207212.27572513, + 1107908.315473996, + 1085751.4879883341, + 933758.82533722, + 905613.5693180189, + 909856.2206089944, + 751240.4833002202, + 724821.2104088478, + 718686.7646661066, + 620396.4827525541, + 596388.2529610321, + 575175.0580477305, + 524962.9734238945, + 531773.518642243, + 545526.7851555459, + 416569.26171794906, + 367127.08554925025, + 354544.7536158487, + 306578.1435560435, + 296147.5070534572, + 287654.4324884601, + 256261.8631091863, + 252647.87992087752, + 254209.75587961078, + 214131.70323514938, + 219130.2676699385, + 213168.9435093999, + 171203.12835586444, + 181033.8165052794, + 170476.59822077304, + 152255.51506089047, + 156774.60078562796, + 143964.43625041097, + 30504.600361704826, + 7458.944065667689, + 5314.255055844784, + 3017.855228036642, + 1574.002866357565, + 1457.9976925849915, + 1361.1322812438011, + 949.3914828300476, + 1438.77050614357, + 289.898775100708, + 75.2706538438797, + 20.35190176963806 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "All TNC VMT (normalized to per-hour) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "VMT per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_all_vmt_per_hour(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " VMT/hour for all veh trips, using dist_col_new (OD_dist) and bin size.\n", + " \"\"\"\n", + " dist = pd.to_numeric(new_df[dist_col_new], errors=\"coerce\")\n", + " bins = pd.to_numeric(new_df[\"depart_bin\"], errors=\"coerce\")\n", + "\n", + " valid = bins.notna() & dist.notna()\n", + " if not valid.any():\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " bins = bins[valid].astype(int)\n", + " dist = dist[valid]\n", + "\n", + " vmt_by_bin = (\n", + " pd.Series(dist.values, index=bins.values)\n", + " .groupby(level=0).sum()\n", + " .sort_index()\n", + " .reindex(pd.RangeIndex(0, bins.max() + 1), fill_value=0.0)\n", + " )\n", + "\n", + " factor = 60.0 / bin_minutes\n", + " vmt_rate = vmt_by_bin * factor\n", + "\n", + " times = start_time + pd.to_timedelta(vmt_rate.index * bin_minutes, unit=\"m\")\n", + " vals = vmt_rate.values\n", + "\n", + " df = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " df[\"hover\"] = [\n", + " f\"VMT/hour: {v:,.1f} (bin VMT: {b:,.1f}, bin={bin_minutes} min)\"\n", + " for v, b in zip(vals, vmt_by_bin.values)\n", + " ]\n", + " return df\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_all_vmt_per_hour,\n", + " \"All TNC VMT (normalized to per-hour)\",\n", + " \"VMT per hour\",\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "All TNC trips totals — time_bin_size\n", + " total_trips total_vmt\n", + "scenario \n", + "base 428566 1.874488e+06\n", + "timebin_5 429146 1.905020e+06\n", + "timebin_15 427906 1.859414e+06\n", + "\n", + "All TNC trips totals — max_detour\n", + " total_trips total_vmt\n", + "scenario \n", + "base 428566 1.874488e+06\n", + "detour_5 428575 1.875645e+06\n", + "detour_10 428570 1.875214e+06\n", + "detour_20 428617 1.875890e+06\n", + "\n", + "All TNC trips totals — max_occupancy\n", + " total_trips total_vmt\n", + "scenario \n", + "base 428566 1.874488e+06\n", + "occ_6 400900 1.754936e+06\n", + "occ_8 384969 1.697862e+06\n", + "\n", + "All TNC trips totals — tnc_shared_demand\n", + " total_trips total_vmt\n", + "scenario \n", + "base 428566 1.874488e+06\n", + "shift_to_all_shared_tnc 22328970 5.502521e+07\n" + ] + } + ], + "source": [ + "def metric_all_trips_totals(new_df, pooled_df):\n", + " d = new_df.copy()\n", + " d[dist_col_new] = pd.to_numeric(d[dist_col_new], errors=\"coerce\").fillna(0.0)\n", + " return {\n", + " \"total_trips\": len(d),\n", + " \"total_vmt\": d[dist_col_new].sum(),\n", + " }\n", + "\n", + "run_scalar_metric(metric_all_trips_totals, \"All TNC trips totals\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Avg initial wait time by hour (ignoring first pickup by each vehicle)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.82247365422939" + ], + [ + "05:00", + "7.452575404359935" + ], + [ + "06:00", + "5.0356318731386684" + ], + [ + "07:00", + "2.8909968451333263" + ], + [ + "08:00", + "2.5515270619156176" + ], + [ + "09:00", + "3.000666246161384" + ], + [ + "10:00", + "3.074771294384598" + ], + [ + "11:00", + "2.33365060429997" + ], + [ + "12:00", + "1.941646616499216" + ], + [ + "13:00", + "2.138553692024344" + ], + [ + "14:00", + "2.28318726501699" + ], + [ + "15:00", + "2.33630073768549" + ], + [ + "16:00", + "2.1477586714870482" + ], + [ + "17:00", + "2.476529226879483" + ], + [ + "18:00", + "2.317659431387918" + ], + [ + "19:00", + "2.5017195268022303" + ], + [ + "20:00", + "2.5958785810399787" + ], + [ + "21:00", + "2.989526777348285" + ], + [ + "22:00", + "3.383885977501816" + ], + [ + "23:00", + "3.1962807626471794" + ], + [ + "00:00", + "2.2429890820423717" + ], + [ + "01:00", + "2.537521186415796" + ], + [ + "02:00", + "3.0018359573734044" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.82247365422939, + 7.452575404359935, + 5.0356318731386684, + 2.8909968451333263, + 2.5515270619156176, + 3.000666246161384, + 3.074771294384598, + 2.33365060429997, + 1.941646616499216, + 2.138553692024344, + 2.28318726501699, + 2.33630073768549, + 2.1477586714870482, + 2.476529226879483, + 2.317659431387918, + 2.5017195268022303, + 2.5958785810399787, + 2.989526777348285, + 3.383885977501816, + 3.1962807626471794, + 2.2429890820423717, + 2.537521186415796, + 3.0018359573734044 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.680615906321675" + ], + [ + "04:00", + "9.221186789792853" + ], + [ + "05:00", + "8.04941856776699" + ], + [ + "06:00", + "5.3979149856075805" + ], + [ + "07:00", + "3.395000167054707" + ], + [ + "08:00", + "2.8542903576020273" + ], + [ + "09:00", + "3.303227853187103" + ], + [ + "10:00", + "3.3609537936318983" + ], + [ + "11:00", + "2.577394199524433" + ], + [ + "12:00", + "2.1105806112005436" + ], + [ + "13:00", + "2.3321077265843555" + ], + [ + "14:00", + "2.5998654433113395" + ], + [ + "15:00", + "2.7078614845936055" + ], + [ + "16:00", + "2.475144103736841" + ], + [ + "17:00", + "2.8713448720527306" + ], + [ + "18:00", + "2.6607715214156253" + ], + [ + "19:00", + "2.8261413740350627" + ], + [ + "20:00", + "2.976932189609172" + ], + [ + "21:00", + "3.2851326298205423" + ], + [ + "22:00", + "3.405732750319637" + ], + [ + "23:00", + "3.4187026319444835" + ], + [ + "00:00", + "2.3536423441605616" + ], + [ + "01:00", + "2.606247871370501" + ], + [ + "02:00", + "3.115630545593168" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.680615906321675, + 9.221186789792853, + 8.04941856776699, + 5.3979149856075805, + 3.395000167054707, + 2.8542903576020273, + 3.303227853187103, + 3.3609537936318983, + 2.577394199524433, + 2.1105806112005436, + 2.3321077265843555, + 2.5998654433113395, + 2.7078614845936055, + 2.475144103736841, + 2.8713448720527306, + 2.6607715214156253, + 2.8261413740350627, + 2.976932189609172, + 3.2851326298205423, + 3.405732750319637, + 3.4187026319444835, + 2.3536423441605616, + 2.606247871370501, + 3.115630545593168 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.340422625853636" + ], + [ + "04:00", + "8.296070121485611" + ], + [ + "05:00", + "7.108592459360343" + ], + [ + "06:00", + "4.675197851102467" + ], + [ + "07:00", + "2.6632290173813757" + ], + [ + "08:00", + "2.352195743520121" + ], + [ + "09:00", + "2.8330237465366626" + ], + [ + "10:00", + "2.9449886898279534" + ], + [ + "11:00", + "2.2084705381080547" + ], + [ + "12:00", + "1.8223708882034766" + ], + [ + "13:00", + "2.0187501787792415" + ], + [ + "14:00", + "2.20103269191485" + ], + [ + "15:00", + "2.1946276924080945" + ], + [ + "16:00", + "1.9756129566552552" + ], + [ + "17:00", + "2.3735336472482724" + ], + [ + "18:00", + "2.1648576540198174" + ], + [ + "19:00", + "2.3291032727801295" + ], + [ + "20:00", + "2.4301019238095316" + ], + [ + "21:00", + "2.820514734600594" + ], + [ + "22:00", + "3.351812505693419" + ], + [ + "23:00", + "3.1081278575696616" + ], + [ + "00:00", + "2.031931422667371" + ], + [ + "01:00", + "2.466132684519207" + ], + [ + "02:00", + "2.908515508847302" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.340422625853636, + 8.296070121485611, + 7.108592459360343, + 4.675197851102467, + 2.6632290173813757, + 2.352195743520121, + 2.8330237465366626, + 2.9449886898279534, + 2.2084705381080547, + 1.8223708882034766, + 2.0187501787792415, + 2.20103269191485, + 2.1946276924080945, + 1.9756129566552552, + 2.3735336472482724, + 2.1648576540198174, + 2.3291032727801295, + 2.4301019238095316, + 2.820514734600594, + 3.351812505693419, + 3.1081278575696616, + 2.031931422667371, + 2.466132684519207, + 2.908515508847302 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average initial wait time (excluding first pickup per vehicle) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Minutes" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.82247365422939" + ], + [ + "05:00", + "7.452575404359935" + ], + [ + "06:00", + "5.0356318731386684" + ], + [ + "07:00", + "2.8909968451333263" + ], + [ + "08:00", + "2.5515270619156176" + ], + [ + "09:00", + "3.000666246161384" + ], + [ + "10:00", + "3.074771294384598" + ], + [ + "11:00", + "2.33365060429997" + ], + [ + "12:00", + "1.941646616499216" + ], + [ + "13:00", + "2.138553692024344" + ], + [ + "14:00", + "2.28318726501699" + ], + [ + "15:00", + "2.33630073768549" + ], + [ + "16:00", + "2.1477586714870482" + ], + [ + "17:00", + "2.476529226879483" + ], + [ + "18:00", + "2.317659431387918" + ], + [ + "19:00", + "2.5017195268022303" + ], + [ + "20:00", + "2.5958785810399787" + ], + [ + "21:00", + "2.989526777348285" + ], + [ + "22:00", + "3.383885977501816" + ], + [ + "23:00", + "3.1962807626471794" + ], + [ + "00:00", + "2.2429890820423717" + ], + [ + "01:00", + "2.537521186415796" + ], + [ + "02:00", + "3.0018359573734044" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.82247365422939, + 7.452575404359935, + 5.0356318731386684, + 2.8909968451333263, + 2.5515270619156176, + 3.000666246161384, + 3.074771294384598, + 2.33365060429997, + 1.941646616499216, + 2.138553692024344, + 2.28318726501699, + 2.33630073768549, + 2.1477586714870482, + 2.476529226879483, + 2.317659431387918, + 2.5017195268022303, + 2.5958785810399787, + 2.989526777348285, + 3.383885977501816, + 3.1962807626471794, + 2.2429890820423717, + 2.537521186415796, + 3.0018359573734044 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.870583308411904" + ], + [ + "05:00", + "7.479297511196124" + ], + [ + "06:00", + "5.037234375248604" + ], + [ + "07:00", + "2.8673254175677267" + ], + [ + "08:00", + "2.549642787724778" + ], + [ + "09:00", + "2.9799704919588814" + ], + [ + "10:00", + "3.0617046141872217" + ], + [ + "11:00", + "2.326506885287524" + ], + [ + "12:00", + "1.9141881531267835" + ], + [ + "13:00", + "2.1172148143940683" + ], + [ + "14:00", + "2.2684502553729677" + ], + [ + "15:00", + "2.287468973332304" + ], + [ + "16:00", + "2.125184567759758" + ], + [ + "17:00", + "2.4879033197349414" + ], + [ + "18:00", + "2.313914560522234" + ], + [ + "19:00", + "2.4924531987161926" + ], + [ + "20:00", + "2.5831181806294903" + ], + [ + "21:00", + "2.974472453455981" + ], + [ + "22:00", + "3.414556863936645" + ], + [ + "23:00", + "3.219340363049294" + ], + [ + "00:00", + "2.2548653177181044" + ], + [ + "01:00", + "2.4830569079397127" + ], + [ + "02:00", + "3.1341900868313526" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.870583308411904, + 7.479297511196124, + 5.037234375248604, + 2.8673254175677267, + 2.549642787724778, + 2.9799704919588814, + 3.0617046141872217, + 2.326506885287524, + 1.9141881531267835, + 2.1172148143940683, + 2.2684502553729677, + 2.287468973332304, + 2.125184567759758, + 2.4879033197349414, + 2.313914560522234, + 2.4924531987161926, + 2.5831181806294903, + 2.974472453455981, + 3.414556863936645, + 3.219340363049294, + 2.2548653177181044, + 2.4830569079397127, + 3.1341900868313526 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.870583308411904" + ], + [ + "05:00", + "7.479297511196124" + ], + [ + "06:00", + "5.044929581933801" + ], + [ + "07:00", + "2.866025634723461" + ], + [ + "08:00", + "2.548613648492328" + ], + [ + "09:00", + "2.991680106380352" + ], + [ + "10:00", + "3.0778491161942214" + ], + [ + "11:00", + "2.3239122379091643" + ], + [ + "12:00", + "1.9233984820761947" + ], + [ + "13:00", + "2.1315998721410043" + ], + [ + "14:00", + "2.2688862716410663" + ], + [ + "15:00", + "2.325828986186245" + ], + [ + "16:00", + "2.1404730185352423" + ], + [ + "17:00", + "2.486031033563847" + ], + [ + "18:00", + "2.3161148823909015" + ], + [ + "19:00", + "2.502167865532142" + ], + [ + "20:00", + "2.583476820525503" + ], + [ + "21:00", + "2.9709276524241086" + ], + [ + "22:00", + "3.4517765292924847" + ], + [ + "23:00", + "3.2155513522043027" + ], + [ + "00:00", + "2.2604599884410415" + ], + [ + "01:00", + "2.4561873448248916" + ], + [ + "02:00", + "3.012211918942074" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.870583308411904, + 7.479297511196124, + 5.044929581933801, + 2.866025634723461, + 2.548613648492328, + 2.991680106380352, + 3.0778491161942214, + 2.3239122379091643, + 1.9233984820761947, + 2.1315998721410043, + 2.2688862716410663, + 2.325828986186245, + 2.1404730185352423, + 2.486031033563847, + 2.3161148823909015, + 2.502167865532142, + 2.583476820525503, + 2.9709276524241086, + 3.4517765292924847, + 3.2155513522043027, + 2.2604599884410415, + 2.4561873448248916, + 3.012211918942074 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.82247365422939" + ], + [ + "05:00", + "7.452575404359935" + ], + [ + "06:00", + "5.034455225557502" + ], + [ + "07:00", + "2.8930362264400684" + ], + [ + "08:00", + "2.569735787118427" + ], + [ + "09:00", + "3.014700976201159" + ], + [ + "10:00", + "3.0839377041312868" + ], + [ + "11:00", + "2.341778235480961" + ], + [ + "12:00", + "1.9515076522933674" + ], + [ + "13:00", + "2.147299062863623" + ], + [ + "14:00", + "2.287355767210231" + ], + [ + "15:00", + "2.344247586622367" + ], + [ + "16:00", + "2.170259587719732" + ], + [ + "17:00", + "2.5024308564624818" + ], + [ + "18:00", + "2.3342166532747286" + ], + [ + "19:00", + "2.484686324284971" + ], + [ + "20:00", + "2.611481436160283" + ], + [ + "21:00", + "2.994360216984456" + ], + [ + "22:00", + "3.4403776187476383" + ], + [ + "23:00", + "3.1916822295589875" + ], + [ + "00:00", + "2.24958251926895" + ], + [ + "01:00", + "2.5135998693821824" + ], + [ + "02:00", + "3.0599066972065327" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.82247365422939, + 7.452575404359935, + 5.034455225557502, + 2.8930362264400684, + 2.569735787118427, + 3.014700976201159, + 3.0839377041312868, + 2.341778235480961, + 1.9515076522933674, + 2.147299062863623, + 2.287355767210231, + 2.344247586622367, + 2.170259587719732, + 2.5024308564624818, + 2.3342166532747286, + 2.484686324284971, + 2.611481436160283, + 2.994360216984456, + 3.4403776187476383, + 3.1916822295589875, + 2.24958251926895, + 2.5135998693821824, + 3.0599066972065327 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average initial wait time (excluding first pickup per vehicle) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Minutes" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.82247365422939" + ], + [ + "05:00", + "7.452575404359935" + ], + [ + "06:00", + "5.0356318731386684" + ], + [ + "07:00", + "2.8909968451333263" + ], + [ + "08:00", + "2.5515270619156176" + ], + [ + "09:00", + "3.000666246161384" + ], + [ + "10:00", + "3.074771294384598" + ], + [ + "11:00", + "2.33365060429997" + ], + [ + "12:00", + "1.941646616499216" + ], + [ + "13:00", + "2.138553692024344" + ], + [ + "14:00", + "2.28318726501699" + ], + [ + "15:00", + "2.33630073768549" + ], + [ + "16:00", + "2.1477586714870482" + ], + [ + "17:00", + "2.476529226879483" + ], + [ + "18:00", + "2.317659431387918" + ], + [ + "19:00", + "2.5017195268022303" + ], + [ + "20:00", + "2.5958785810399787" + ], + [ + "21:00", + "2.989526777348285" + ], + [ + "22:00", + "3.383885977501816" + ], + [ + "23:00", + "3.1962807626471794" + ], + [ + "00:00", + "2.2429890820423717" + ], + [ + "01:00", + "2.537521186415796" + ], + [ + "02:00", + "3.0018359573734044" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.82247365422939, + 7.452575404359935, + 5.0356318731386684, + 2.8909968451333263, + 2.5515270619156176, + 3.000666246161384, + 3.074771294384598, + 2.33365060429997, + 1.941646616499216, + 2.138553692024344, + 2.28318726501699, + 2.33630073768549, + 2.1477586714870482, + 2.476529226879483, + 2.317659431387918, + 2.5017195268022303, + 2.5958785810399787, + 2.989526777348285, + 3.383885977501816, + 3.1962807626471794, + 2.2429890820423717, + 2.537521186415796, + 3.0018359573734044 + ] + }, + { + "customdata": [ + [ + "03:00", + "9.547460290146809" + ], + [ + "04:00", + "8.99655940128585" + ], + [ + "05:00", + "7.302084593653259" + ], + [ + "06:00", + "4.955402883191624" + ], + [ + "07:00", + "2.9826831772342786" + ], + [ + "08:00", + "2.4871397960386004" + ], + [ + "09:00", + "2.844131236662293" + ], + [ + "10:00", + "2.974600057925102" + ], + [ + "11:00", + "2.2645459902090503" + ], + [ + "12:00", + "1.9007309692240666" + ], + [ + "13:00", + "2.232360107335889" + ], + [ + "14:00", + "2.328872611899618" + ], + [ + "15:00", + "2.3874418394395716" + ], + [ + "16:00", + "2.1263340276461817" + ], + [ + "17:00", + "2.5028772554246386" + ], + [ + "18:00", + "2.2552800240099824" + ], + [ + "19:00", + "2.437504782701686" + ], + [ + "20:00", + "2.5747973370059283" + ], + [ + "21:00", + "2.901700948197248" + ], + [ + "22:00", + "3.3010721552726703" + ], + [ + "23:00", + "3.1749434417905733" + ], + [ + "00:00", + "2.18886361266034" + ], + [ + "01:00", + "2.490129470051109" + ], + [ + "02:00", + "3.1257479045577723" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.547460290146809, + 8.99655940128585, + 7.302084593653259, + 4.955402883191624, + 2.9826831772342786, + 2.4871397960386004, + 2.844131236662293, + 2.974600057925102, + 2.2645459902090503, + 1.9007309692240666, + 2.232360107335889, + 2.328872611899618, + 2.3874418394395716, + 2.1263340276461817, + 2.5028772554246386, + 2.2552800240099824, + 2.437504782701686, + 2.5747973370059283, + 2.901700948197248, + 3.3010721552726703, + 3.1749434417905733, + 2.18886361266034, + 2.490129470051109, + 3.1257479045577723 + ] + }, + { + "customdata": [ + [ + "03:00", + "8.994628927418004" + ], + [ + "04:00", + "9.149722861746946" + ], + [ + "05:00", + "7.530986669458993" + ], + [ + "06:00", + "4.944168010669266" + ], + [ + "07:00", + "2.959100908156744" + ], + [ + "08:00", + "2.4453792886340047" + ], + [ + "09:00", + "2.865288853068788" + ], + [ + "10:00", + "2.898208124289511" + ], + [ + "11:00", + "2.264051708275472" + ], + [ + "12:00", + "1.9474022100062636" + ], + [ + "13:00", + "2.2033308844140174" + ], + [ + "14:00", + "2.2996351035446394" + ], + [ + "15:00", + "2.3685690961479935" + ], + [ + "16:00", + "2.0773302874380577" + ], + [ + "17:00", + "2.424863957197935" + ], + [ + "18:00", + "2.2613663308281367" + ], + [ + "19:00", + "2.447010539251069" + ], + [ + "20:00", + "2.5281580057543827" + ], + [ + "21:00", + "2.9416290849980578" + ], + [ + "22:00", + "3.2842549721740975" + ], + [ + "23:00", + "3.1179026442508375" + ], + [ + "00:00", + "2.270749593225153" + ], + [ + "01:00", + "2.6759284196535966" + ], + [ + "02:00", + "3.264096653187455" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 8.994628927418004, + 9.149722861746946, + 7.530986669458993, + 4.944168010669266, + 2.959100908156744, + 2.4453792886340047, + 2.865288853068788, + 2.898208124289511, + 2.264051708275472, + 1.9474022100062636, + 2.2033308844140174, + 2.2996351035446394, + 2.3685690961479935, + 2.0773302874380577, + 2.424863957197935, + 2.2613663308281367, + 2.447010539251069, + 2.5281580057543827, + 2.9416290849980578, + 3.2842549721740975, + 3.1179026442508375, + 2.270749593225153, + 2.6759284196535966, + 3.264096653187455 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average initial wait time (excluding first pickup per vehicle) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Minutes" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "9.524375188918341" + ], + [ + "04:00", + "8.82247365422939" + ], + [ + "05:00", + "7.452575404359935" + ], + [ + "06:00", + "5.0356318731386684" + ], + [ + "07:00", + "2.8909968451333263" + ], + [ + "08:00", + "2.5515270619156176" + ], + [ + "09:00", + "3.000666246161384" + ], + [ + "10:00", + "3.074771294384598" + ], + [ + "11:00", + "2.33365060429997" + ], + [ + "12:00", + "1.941646616499216" + ], + [ + "13:00", + "2.138553692024344" + ], + [ + "14:00", + "2.28318726501699" + ], + [ + "15:00", + "2.33630073768549" + ], + [ + "16:00", + "2.1477586714870482" + ], + [ + "17:00", + "2.476529226879483" + ], + [ + "18:00", + "2.317659431387918" + ], + [ + "19:00", + "2.5017195268022303" + ], + [ + "20:00", + "2.5958785810399787" + ], + [ + "21:00", + "2.989526777348285" + ], + [ + "22:00", + "3.383885977501816" + ], + [ + "23:00", + "3.1962807626471794" + ], + [ + "00:00", + "2.2429890820423717" + ], + [ + "01:00", + "2.537521186415796" + ], + [ + "02:00", + "3.0018359573734044" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "y": [ + 9.524375188918341, + 8.82247365422939, + 7.452575404359935, + 5.0356318731386684, + 2.8909968451333263, + 2.5515270619156176, + 3.000666246161384, + 3.074771294384598, + 2.33365060429997, + 1.941646616499216, + 2.138553692024344, + 2.28318726501699, + 2.33630073768549, + 2.1477586714870482, + 2.476529226879483, + 2.317659431387918, + 2.5017195268022303, + 2.5958785810399787, + 2.989526777348285, + 3.383885977501816, + 3.1962807626471794, + 2.2429890820423717, + 2.537521186415796, + 3.0018359573734044 + ] + }, + { + "customdata": [ + [ + "03:00", + "3.9670721674515415" + ], + [ + "04:00", + "3.802334157866411" + ], + [ + "05:00", + "3.429752809499593" + ], + [ + "06:00", + "2.80412172802146" + ], + [ + "07:00", + "2.481486662138915" + ], + [ + "08:00", + "2.362359535917506" + ], + [ + "09:00", + "2.3079827973650477" + ], + [ + "10:00", + "2.1887835812277143" + ], + [ + "11:00", + "2.0956823578170893" + ], + [ + "12:00", + "1.9646871479952592" + ], + [ + "13:00", + "1.9370889564036788" + ], + [ + "14:00", + "2.0265965782493645" + ], + [ + "15:00", + "2.131423088407655" + ], + [ + "16:00", + "2.2442285026263176" + ], + [ + "17:00", + "2.3615547685253073" + ], + [ + "18:00", + "2.3741614619718434" + ], + [ + "19:00", + "2.422684924397958" + ], + [ + "20:00", + "2.5130080825796988" + ], + [ + "21:00", + "2.6594170674016495" + ], + [ + "22:00", + "2.7695313051191444" + ], + [ + "23:00", + "3.009008765318796" + ], + [ + "00:00", + "3.1246436880827684" + ], + [ + "01:00", + "3.4299154067388913" + ], + [ + "02:00", + "3.8279362180369847" + ], + [ + "03:00", + "4.8660690151154995" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "y": [ + 3.9670721674515415, + 3.802334157866411, + 3.429752809499593, + 2.80412172802146, + 2.481486662138915, + 2.362359535917506, + 2.3079827973650477, + 2.1887835812277143, + 2.0956823578170893, + 1.9646871479952592, + 1.9370889564036788, + 2.0265965782493645, + 2.131423088407655, + 2.2442285026263176, + 2.3615547685253073, + 2.3741614619718434, + 2.422684924397958, + 2.5130080825796988, + 2.6594170674016495, + 2.7695313051191444, + 3.009008765318796, + 3.1246436880827684, + 3.4299154067388913, + 3.8279362180369847, + 4.8660690151154995 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average initial wait time (excluding first pickup per vehicle) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Minutes" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_initial_wait_by_hour(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " Average initial wait time by hour of day, excluding each vehicle's first pickup (when it gets spawned).\n", + " Uses OD_time on pickup legs.\n", + " \"\"\"\n", + " df = new_df.copy()\n", + "\n", + " # pickups only\n", + " pickup_mask = df[\"trip_type\"].astype(str).str.lower().eq(\"pickup\")\n", + " df = df.loc[pickup_mask].copy()\n", + "\n", + " df[\"depart_bin\"] = pd.to_numeric(df[\"depart_bin\"], errors=\"coerce\")\n", + " df[\"OD_time\"] = pd.to_numeric(df[\"OD_time\"], errors=\"coerce\")\n", + "\n", + " valid = df[\"depart_bin\"].notna() & df[\"OD_time\"].notna()\n", + " df = df.loc[valid].copy()\n", + "\n", + " if df.empty:\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " # drop first pickup per vehicle\n", + " df[\"depart_bin_int\"] = df[\"depart_bin\"].astype(int)\n", + " first_per_vehicle = (\n", + " df.groupby(\"vehicle_id\")[\"depart_bin_int\"].transform(\"min\")\n", + " )\n", + " df = df[df[\"depart_bin_int\"] > first_per_vehicle]\n", + "\n", + " if df.empty:\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " # hour_from_3am = floor( (depart_bin * bin_minutes) / 60 )\n", + " df[\"hour_from_3am\"] = ((df[\"depart_bin_int\"] * bin_minutes) // 60).astype(int)\n", + "\n", + " wait_by_hour = (\n", + " df.groupby(\"hour_from_3am\")[\"OD_time\"]\n", + " .mean()\n", + " .rename(\"avg_wait\")\n", + " .reset_index()\n", + " )\n", + "\n", + " times = start_time + pd.to_timedelta(wait_by_hour[\"hour_from_3am\"] * 60, unit=\"m\")\n", + " vals = wait_by_hour[\"avg_wait\"].values\n", + "\n", + " out = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " out[\"hover\"] = [\n", + " f\"Avg wait: {v:.2f} min\"\n", + " for v in vals\n", + " ]\n", + " return out\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_initial_wait_by_hour,\n", + " \"Average initial wait time (excluding first pickup per vehicle)\",\n", + " \"Minutes\",\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Avg detour time" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Average detour time (pooled trips) — time_bin_size\n", + " avg_detour\n", + "scenario \n", + "base 8.676728\n", + "timebin_5 8.751975\n", + "timebin_15 8.468652\n", + "\n", + "Average detour time (pooled trips) — max_detour\n", + " avg_detour\n", + "scenario \n", + "base 8.676728\n", + "detour_5 2.915697\n", + "detour_10 6.210723\n", + "detour_20 10.034144\n", + "\n", + "Average detour time (pooled trips) — max_occupancy\n", + " avg_detour\n", + "scenario \n", + "base 8.676728\n", + "occ_6 8.956039\n", + "occ_8 8.942742\n", + "\n", + "Average detour time (pooled trips) — tnc_shared_demand\n", + " avg_detour\n", + "scenario \n", + "base 8.676728\n", + "shift_to_all_shared_tnc 3.937055\n" + ] + } + ], + "source": [ + "def metric_avg_detour(new_df, pooled_df):\n", + " mask_pooled = pooled_df[\"trip_j\"].notna()\n", + "\n", + " d_i = pd.to_numeric(pooled_df.loc[mask_pooled, \"detour_i\"], errors=\"coerce\")\n", + " d_j = pd.to_numeric(pooled_df.loc[mask_pooled, \"detour_j\"], errors=\"coerce\")\n", + "\n", + " vals = pd.concat([d_i, d_j], ignore_index=True).dropna()\n", + " avg_detour = vals.mean() if not vals.empty else np.nan\n", + "\n", + " return {\"avg_detour\": avg_detour}\n", + "\n", + "run_scalar_metric(metric_avg_detour, \"Average detour time (pooled trips)\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Too few data points\n", + "\n", + "# def run_detour_histograms():\n", + "# \"\"\"\n", + "# For each test group, plot detour distributions for base + its variants.\n", + "# Detours come from pooled trips where trip_j is not null, using detour_i and detour_j.\n", + "# \"\"\"\n", + "# for test_name, scen_list in TEST_GROUPS.items():\n", + "# fig = go.Figure()\n", + "\n", + "# for scen in scen_list:\n", + "# _, pooled_df = load_outputs(scen)\n", + "\n", + "# mask_pooled = pooled_df[\"trip_j\"].notna()\n", + "\n", + "# d_i = pd.to_numeric(pooled_df.loc[mask_pooled, \"detour_i\"], errors=\"coerce\")\n", + "# d_j = pd.to_numeric(pooled_df.loc[mask_pooled, \"detour_j\"], errors=\"coerce\")\n", + "\n", + "# vals = pd.concat([d_i, d_j], ignore_index=True).dropna()\n", + "# if vals.empty:\n", + "# continue\n", + "\n", + "# fig.add_trace(\n", + "# go.Histogram(\n", + "# x=vals,\n", + "# name=scen,\n", + "# opacity=0.45,\n", + "# nbinsx=40,\n", + "# hovertemplate=\"Scenario: %{meta}
Detour: %{x:.2f} min
Count: %{y}\",\n", + "# meta=scen,\n", + "# )\n", + "# )\n", + "\n", + "# fig.update_layout(\n", + "# title=f\"Detour time distribution — {test_name}\",\n", + "# xaxis_title=\"Detour time (minutes)\",\n", + "# yaxis_title=\"Count\",\n", + "# barmode=\"overlay\",\n", + "# )\n", + "# fig.show()\n", + "\n", + "# # Call once to generate histograms for all three tests\n", + "# run_detour_histograms()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Avg occupancy by hour" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1269347057339092" + ], + [ + "04:10", + "1.183315922030218" + ], + [ + "04:19", + "1.020977082138179" + ], + [ + "04:30", + "1.1270128806263786" + ], + [ + "04:40", + "1.1263681399418604" + ], + [ + "04:49", + "1.118083187971494" + ], + [ + "05:00", + "0.9897878521213063" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0818312572990452" + ], + [ + "05:30", + "1.0856437631284126" + ], + [ + "05:40", + "1.0674782599651953" + ], + [ + "05:49", + "0.9811777087669468" + ], + [ + "06:00", + "0.9688417647786189" + ], + [ + "06:10", + "0.9251838620543567" + ], + [ + "06:19", + "0.9683619696413023" + ], + [ + "06:30", + "1.0209246384536417" + ], + [ + "06:40", + "0.9779619172742089" + ], + [ + "06:49", + "0.9256885449852714" + ], + [ + "07:00", + "1.061987673659908" + ], + [ + "07:10", + "1.036518467324717" + ], + [ + "07:19", + "1.0321799612950202" + ], + [ + "07:30", + "1.0951012329242487" + ], + [ + "07:40", + "1.0645670515151604" + ], + [ + "07:49", + "1.1199188585361046" + ], + [ + "08:00", + "1.296708106715972" + ], + [ + "08:10", + "1.2910624251454585" + ], + [ + "08:19", + "1.2848943927871044" + ], + [ + "08:30", + "1.442780474793665" + ], + [ + "08:40", + "1.4349704104992251" + ], + [ + "08:49", + "1.4401307976454372" + ], + [ + "09:00", + "1.5087555110510038" + ], + [ + "09:10", + "1.5891807749918847" + ], + [ + "09:19", + "1.5555066872545613" + ], + [ + "09:30", + "1.6482125215395373" + ], + [ + "09:40", + "1.6927817938564795" + ], + [ + "09:49", + "1.6642632986145796" + ], + [ + "10:00", + "1.7255967433933863" + ], + [ + "10:10", + "1.7615758260972627" + ], + [ + "10:19", + "1.6954755490847238" + ], + [ + "10:30", + "1.8345978388881383" + ], + [ + "10:40", + "1.6912542690332335" + ], + [ + "10:49", + "1.7828530739005293" + ], + [ + "11:00", + "1.7882051207781073" + ], + [ + "11:10", + "1.6964001929007024" + ], + [ + "11:19", + "1.7344908755574489" + ], + [ + "11:30", + "1.6457586680994094" + ], + [ + "11:40", + "1.5859841301566848" + ], + [ + "11:49", + "1.5376239137665637" + ], + [ + "12:00", + "1.406096761351721" + ], + [ + "12:10", + "1.3849373042627509" + ], + [ + "12:19", + "1.368628588171102" + ], + [ + "12:30", + "1.4867019672825126" + ], + [ + "12:40", + "1.438708240345497" + ], + [ + "12:49", + "1.5602385095048719" + ], + [ + "13:00", + "1.5669961325676882" + ], + [ + "13:10", + "1.42494421695802" + ], + [ + "13:19", + "1.3873811114046888" + ], + [ + "13:30", + "1.4680296664950658" + ], + [ + "13:40", + "1.511599784000429" + ], + [ + "13:49", + "1.4935745743916866" + ], + [ + "14:00", + "1.4060332951717749" + ], + [ + "14:10", + "1.5017317613473715" + ], + [ + "14:19", + "1.4703927740714626" + ], + [ + "14:30", + "1.4371220011099988" + ], + [ + "14:40", + "1.5068676690735445" + ], + [ + "14:49", + "1.4478117357821705" + ], + [ + "15:00", + "1.4196435727071088" + ], + [ + "15:10", + "1.4903427569533385" + ], + [ + "15:19", + "1.4698244938793883" + ], + [ + "15:30", + "1.5505846863487387" + ], + [ + "15:40", + "1.533519879787878" + ], + [ + "15:49", + "1.5667786069174539" + ], + [ + "16:00", + "1.5778047809114366" + ], + [ + "16:10", + "1.5555200473410558" + ], + [ + "16:19", + "1.564869119125043" + ], + [ + "16:30", + "1.698682981767884" + ], + [ + "16:40", + "1.6872971414285893" + ], + [ + "16:49", + "1.6493481770759535" + ], + [ + "17:00", + "1.7060311521985225" + ], + [ + "17:10", + "1.7137124903923262" + ], + [ + "17:19", + "1.6376606553417676" + ], + [ + "17:30", + "1.7895981600845021" + ], + [ + "17:40", + "1.7412522178219008" + ], + [ + "17:49", + "1.715352448907016" + ], + [ + "18:00", + "1.7857796975493536" + ], + [ + "18:10", + "1.7331170595870433" + ], + [ + "18:19", + "1.791502017081316" + ], + [ + "18:30", + "1.8519412914338227" + ], + [ + "18:40", + "1.8291994298199865" + ], + [ + "18:49", + "1.823260530908403" + ], + [ + "19:00", + "1.8865026719965499" + ], + [ + "19:10", + "1.901366011141666" + ], + [ + "19:19", + "1.938707110039195" + ], + [ + "19:30", + "1.97263533191086" + ], + [ + "19:40", + "1.8903750453346955" + ], + [ + "19:49", + "1.8792997080904943" + ], + [ + "20:00", + "1.9818921649480923" + ], + [ + "20:10", + "1.879964175983358" + ], + [ + "20:19", + "1.9345212266640923" + ], + [ + "20:30", + "1.9041762738192747" + ], + [ + "20:40", + "1.8202001845845146" + ], + [ + "20:49", + "1.8602091573942137" + ], + [ + "21:00", + "1.9046104065816931" + ], + [ + "21:10", + "1.9458201089413423" + ], + [ + "21:19", + "1.8657575666693111" + ], + [ + "21:30", + "1.9123086016829915" + ], + [ + "21:40", + "1.890408253433916" + ], + [ + "21:49", + "1.860057532127748" + ], + [ + "22:00", + "1.768405111248504" + ], + [ + "22:10", + "1.7228262662065983" + ], + [ + "22:19", + "1.7600741446233072" + ], + [ + "22:30", + "1.7351119281990313" + ], + [ + "22:40", + "1.627579637809477" + ], + [ + "22:49", + "1.5026127534180285" + ], + [ + "23:00", + "1.8668294834726493" + ], + [ + "23:10", + "1.921586028950252" + ], + [ + "23:19", + "1.859944045343084" + ], + [ + "23:30", + "1.9421573552577784" + ], + [ + "23:40", + "1.9996994539344555" + ], + [ + "23:49", + "1.8589087984770138" + ], + [ + "00:00", + "1.6627462508277173" + ], + [ + "00:10", + "1.4912009784351483" + ], + [ + "00:19", + "1.5628532968400852" + ], + [ + "00:30", + "0.9781458275090296" + ], + [ + "00:40", + "0.9812069092694643" + ], + [ + "00:49", + "1.0182492746801393" + ], + [ + "01:00", + "1.0080667767153983" + ], + [ + "01:10", + "1.1416978645073563" + ], + [ + "01:19", + "1.1811130366714149" + ], + [ + "01:30", + "1.0561868544820934" + ], + [ + "01:40", + "1.0768999151158571" + ], + [ + "01:49", + "0.9842344139042237" + ], + [ + "02:00", + "1.5838487306115105" + ], + [ + "02:10", + "1.1065686921529496" + ], + [ + "02:19", + "1.2924803345972495" + ], + [ + "02:30", + "0.9596692985545329" + ], + [ + "02:40", + "0.9956463783304861" + ], + [ + "02:49", + "1.17815968919917" + ], + [ + "03:00", + "2.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1269347057339092, + 1.183315922030218, + 1.020977082138179, + 1.1270128806263786, + 1.1263681399418604, + 1.118083187971494, + 0.9897878521213063, + 0.9699007539618653, + 1.0818312572990452, + 1.0856437631284126, + 1.0674782599651953, + 0.9811777087669468, + 0.9688417647786189, + 0.9251838620543567, + 0.9683619696413023, + 1.0209246384536417, + 0.9779619172742089, + 0.9256885449852714, + 1.061987673659908, + 1.036518467324717, + 1.0321799612950202, + 1.0951012329242487, + 1.0645670515151604, + 1.1199188585361046, + 1.296708106715972, + 1.2910624251454585, + 1.2848943927871044, + 1.442780474793665, + 1.4349704104992251, + 1.4401307976454372, + 1.5087555110510038, + 1.5891807749918847, + 1.5555066872545613, + 1.6482125215395373, + 1.6927817938564795, + 1.6642632986145796, + 1.7255967433933863, + 1.7615758260972627, + 1.6954755490847238, + 1.8345978388881383, + 1.6912542690332335, + 1.7828530739005293, + 1.7882051207781073, + 1.6964001929007024, + 1.7344908755574489, + 1.6457586680994094, + 1.5859841301566848, + 1.5376239137665637, + 1.406096761351721, + 1.3849373042627509, + 1.368628588171102, + 1.4867019672825126, + 1.438708240345497, + 1.5602385095048719, + 1.5669961325676882, + 1.42494421695802, + 1.3873811114046888, + 1.4680296664950658, + 1.511599784000429, + 1.4935745743916866, + 1.4060332951717749, + 1.5017317613473715, + 1.4703927740714626, + 1.4371220011099988, + 1.5068676690735445, + 1.4478117357821705, + 1.4196435727071088, + 1.4903427569533385, + 1.4698244938793883, + 1.5505846863487387, + 1.533519879787878, + 1.5667786069174539, + 1.5778047809114366, + 1.5555200473410558, + 1.564869119125043, + 1.698682981767884, + 1.6872971414285893, + 1.6493481770759535, + 1.7060311521985225, + 1.7137124903923262, + 1.6376606553417676, + 1.7895981600845021, + 1.7412522178219008, + 1.715352448907016, + 1.7857796975493536, + 1.7331170595870433, + 1.791502017081316, + 1.8519412914338227, + 1.8291994298199865, + 1.823260530908403, + 1.8865026719965499, + 1.901366011141666, + 1.938707110039195, + 1.97263533191086, + 1.8903750453346955, + 1.8792997080904943, + 1.9818921649480923, + 1.879964175983358, + 1.9345212266640923, + 1.9041762738192747, + 1.8202001845845146, + 1.8602091573942137, + 1.9046104065816931, + 1.9458201089413423, + 1.8657575666693111, + 1.9123086016829915, + 1.890408253433916, + 1.860057532127748, + 1.768405111248504, + 1.7228262662065983, + 1.7600741446233072, + 1.7351119281990313, + 1.627579637809477, + 1.5026127534180285, + 1.8668294834726493, + 1.921586028950252, + 1.859944045343084, + 1.9421573552577784, + 1.9996994539344555, + 1.8589087984770138, + 1.6627462508277173, + 1.4912009784351483, + 1.5628532968400852, + 0.9781458275090296, + 0.9812069092694643, + 1.0182492746801393, + 1.0080667767153983, + 1.1416978645073563, + 1.1811130366714149, + 1.0561868544820934, + 1.0768999151158571, + 0.9842344139042237, + 1.5838487306115105, + 1.1065686921529496, + 1.2924803345972495, + 0.9596692985545329, + 0.9956463783304861, + 1.17815968919917, + 2 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.977200135042227" + ], + [ + "03:04", + "1.364773405130411" + ], + [ + "03:10", + "1.0912708368423045" + ], + [ + "03:15", + "1.049172405223965" + ], + [ + "03:19", + "1.375691157616599" + ], + [ + "03:25", + "1.2844306086642086" + ], + [ + "03:30", + "1.3585194853475155" + ], + [ + "03:34", + "1.486577781928745" + ], + [ + "03:40", + "1.1605608256667599" + ], + [ + "03:45", + "1.1323986788610836" + ], + [ + "03:49", + "1.0695210353084896" + ], + [ + "03:55", + "1.060795878892077" + ], + [ + "04:00", + "1.2744198084743454" + ], + [ + "04:04", + "0.9165560174080761" + ], + [ + "04:10", + "1.1594593841948269" + ], + [ + "04:15", + "1.1143778741036605" + ], + [ + "04:19", + "0.9709613298367429" + ], + [ + "04:25", + "1.206211700245525" + ], + [ + "04:30", + "1.1249356218391338" + ], + [ + "04:34", + "1.200141859034063" + ], + [ + "04:40", + "1.1029689246446606" + ], + [ + "04:45", + "0.8636177457090134" + ], + [ + "04:49", + "1.12832326385938" + ], + [ + "04:55", + "1.079882904441947" + ], + [ + "05:00", + "0.9852442551038312" + ], + [ + "05:04", + "0.9504896405816661" + ], + [ + "05:10", + "0.9306101018089854" + ], + [ + "05:15", + "0.9168301321486039" + ], + [ + "05:19", + "1.0210834384604475" + ], + [ + "05:25", + "0.989566172024492" + ], + [ + "05:30", + "1.0362451210734789" + ], + [ + "05:34", + "1.0600335970628416" + ], + [ + "05:40", + "1.088831064627536" + ], + [ + "05:45", + "1.0875760453193806" + ], + [ + "05:49", + "1.0437419557228278" + ], + [ + "05:55", + "0.9389554226772169" + ], + [ + "06:00", + "0.903216140603335" + ], + [ + "06:04", + "0.9269732932222777" + ], + [ + "06:10", + "0.9310795125146163" + ], + [ + "06:15", + "0.9665071634892614" + ], + [ + "06:19", + "0.9360614312967209" + ], + [ + "06:25", + "0.9697518292748493" + ], + [ + "06:30", + "0.93233435358404" + ], + [ + "06:34", + "1.0311617739627217" + ], + [ + "06:40", + "1.0167758490841925" + ], + [ + "06:45", + "0.941038251080044" + ], + [ + "06:49", + "0.8990064497307929" + ], + [ + "06:55", + "0.8848352198264895" + ], + [ + "07:00", + "1.0468586839805423" + ], + [ + "07:04", + "1.0233676356611094" + ], + [ + "07:10", + "1.0563742058386794" + ], + [ + "07:15", + "0.9767857821755778" + ], + [ + "07:19", + "1.0039688606365544" + ], + [ + "07:25", + "0.9687346585454616" + ], + [ + "07:30", + "1.043078511832571" + ], + [ + "07:34", + "1.0758549028529822" + ], + [ + "07:40", + "1.0530235911327885" + ], + [ + "07:45", + "1.0481922366703056" + ], + [ + "07:49", + "1.0476388300625135" + ], + [ + "07:55", + "1.0761126422464147" + ], + [ + "08:00", + "1.2430897958404918" + ], + [ + "08:04", + "1.2513612347754839" + ], + [ + "08:10", + "1.3247810249338547" + ], + [ + "08:15", + "1.2931723489089515" + ], + [ + "08:19", + "1.2680730734796983" + ], + [ + "08:25", + "1.2121013403549379" + ], + [ + "08:30", + "1.379508140953201" + ], + [ + "08:34", + "1.4539339032641874" + ], + [ + "08:40", + "1.3924211512644245" + ], + [ + "08:45", + "1.4163630000860488" + ], + [ + "08:49", + "1.4773067801106203" + ], + [ + "08:55", + "1.3946935825320117" + ], + [ + "09:00", + "1.4483335230478365" + ], + [ + "09:04", + "1.4999850742579457" + ], + [ + "09:10", + "1.5320365900934687" + ], + [ + "09:15", + "1.6198217192409863" + ], + [ + "09:19", + "1.492742982927618" + ], + [ + "09:25", + "1.4656926024317394" + ], + [ + "09:30", + "1.5675883152523604" + ], + [ + "09:34", + "1.6565610713233552" + ], + [ + "09:40", + "1.6198738956144259" + ], + [ + "09:45", + "1.661759131463312" + ], + [ + "09:49", + "1.6626081624327278" + ], + [ + "09:55", + "1.6658961192175479" + ], + [ + "10:00", + "1.7265321015511452" + ], + [ + "10:04", + "1.6969901868998656" + ], + [ + "10:10", + "1.751946178268612" + ], + [ + "10:15", + "1.6876815611119071" + ], + [ + "10:19", + "1.737111545213489" + ], + [ + "10:25", + "1.6009738138327476" + ], + [ + "10:30", + "1.7786662945754392" + ], + [ + "10:34", + "1.7332377202550664" + ], + [ + "10:40", + "1.7592493981774664" + ], + [ + "10:45", + "1.62296967417944" + ], + [ + "10:49", + "1.763618006776357" + ], + [ + "10:55", + "1.814321798551875" + ], + [ + "11:00", + "1.7708953627012147" + ], + [ + "11:04", + "1.7459762652192783" + ], + [ + "11:10", + "1.6774005124549758" + ], + [ + "11:15", + "1.708019330656493" + ], + [ + "11:19", + "1.7235575704963177" + ], + [ + "11:25", + "1.7006444877420588" + ], + [ + "11:30", + "1.7291062413908302" + ], + [ + "11:34", + "1.6111694437506212" + ], + [ + "11:40", + "1.5756048316404987" + ], + [ + "11:45", + "1.5213689347742678" + ], + [ + "11:49", + "1.6038066469759709" + ], + [ + "11:55", + "1.454022647743493" + ], + [ + "12:00", + "1.428643333110638" + ], + [ + "12:04", + "1.424767528942905" + ], + [ + "12:10", + "1.4436593065511933" + ], + [ + "12:15", + "1.3280886219934673" + ], + [ + "12:19", + "1.3785987059244202" + ], + [ + "12:25", + "1.3462231134599554" + ], + [ + "12:30", + "1.438849861655532" + ], + [ + "12:34", + "1.4471601612618556" + ], + [ + "12:40", + "1.4843810360659633" + ], + [ + "12:45", + "1.354888129304856" + ], + [ + "12:49", + "1.575469453568649" + ], + [ + "12:55", + "1.5787245599286486" + ], + [ + "13:00", + "1.4746305936031634" + ], + [ + "13:04", + "1.5884600869126946" + ], + [ + "13:10", + "1.449593923606905" + ], + [ + "13:15", + "1.409710261247643" + ], + [ + "13:19", + "1.3846037797243744" + ], + [ + "13:25", + "1.3825346663262836" + ], + [ + "13:30", + "1.454638145824504" + ], + [ + "13:34", + "1.4981373792901" + ], + [ + "13:40", + "1.4979503905453628" + ], + [ + "13:45", + "1.4449025087382839" + ], + [ + "13:49", + "1.4854910912776889" + ], + [ + "13:55", + "1.4309453843265818" + ], + [ + "14:00", + "1.4011480708491457" + ], + [ + "14:04", + "1.3295793745937436" + ], + [ + "14:10", + "1.5346007890563826" + ], + [ + "14:15", + "1.4254627044006143" + ], + [ + "14:19", + "1.5103400930124236" + ], + [ + "14:25", + "1.392766554540842" + ], + [ + "14:30", + "1.3826401485557724" + ], + [ + "14:34", + "1.366089364930569" + ], + [ + "14:40", + "1.575002421352546" + ], + [ + "14:45", + "1.4749960629957168" + ], + [ + "14:49", + "1.4695312565467513" + ], + [ + "14:55", + "1.3844401410103027" + ], + [ + "15:00", + "1.4027142159098416" + ], + [ + "15:04", + "1.373350847204267" + ], + [ + "15:10", + "1.4994337713200088" + ], + [ + "15:15", + "1.4159815138220981" + ], + [ + "15:19", + "1.4047582959540592" + ], + [ + "15:25", + "1.4545819782662208" + ], + [ + "15:30", + "1.5663541523841413" + ], + [ + "15:34", + "1.4759755148742917" + ], + [ + "15:40", + "1.4830216137628427" + ], + [ + "15:45", + "1.5229488706218015" + ], + [ + "15:49", + "1.483616757888696" + ], + [ + "15:55", + "1.5385436445842462" + ], + [ + "16:00", + "1.5610180579636015" + ], + [ + "16:04", + "1.5320094154892874" + ], + [ + "16:10", + "1.5718631228830975" + ], + [ + "16:15", + "1.5374414272734236" + ], + [ + "16:19", + "1.5465363609912217" + ], + [ + "16:25", + "1.4781826244383987" + ], + [ + "16:30", + "1.6440941716151038" + ], + [ + "16:34", + "1.7146724116139889" + ], + [ + "16:40", + "1.6222622598818932" + ], + [ + "16:45", + "1.716219845444694" + ], + [ + "16:49", + "1.5373386972585712" + ], + [ + "16:55", + "1.6572283091966356" + ], + [ + "17:00", + "1.6627411808435097" + ], + [ + "17:04", + "1.6200122743017666" + ], + [ + "17:10", + "1.6644167273881596" + ], + [ + "17:15", + "1.6629276858842017" + ], + [ + "17:19", + "1.6476494071707852" + ], + [ + "17:25", + "1.6133256470167647" + ], + [ + "17:30", + "1.7983734348414009" + ], + [ + "17:34", + "1.7456387975986951" + ], + [ + "17:40", + "1.6459577723217542" + ], + [ + "17:45", + "1.7385424970113421" + ], + [ + "17:49", + "1.7149662945563442" + ], + [ + "17:55", + "1.6964401913497442" + ], + [ + "18:00", + "1.7402782811796613" + ], + [ + "18:04", + "1.7233931840912176" + ], + [ + "18:10", + "1.744911169832978" + ], + [ + "18:15", + "1.7064568086239393" + ], + [ + "18:19", + "1.7756170022192588" + ], + [ + "18:25", + "1.741026895932323" + ], + [ + "18:30", + "1.8065246842151312" + ], + [ + "18:34", + "1.8157252912280448" + ], + [ + "18:40", + "1.8655514561553979" + ], + [ + "18:45", + "1.718122418031144" + ], + [ + "18:49", + "1.818471179909937" + ], + [ + "18:55", + "1.790613621454832" + ], + [ + "19:00", + "1.8382599126201757" + ], + [ + "19:04", + "1.8996481189135528" + ], + [ + "19:10", + "1.8328029432977666" + ], + [ + "19:15", + "1.877738636240845" + ], + [ + "19:19", + "1.9283789615336973" + ], + [ + "19:25", + "1.8796606637567488" + ], + [ + "19:30", + "1.9069702410012375" + ], + [ + "19:34", + "2.048939696209111" + ], + [ + "19:40", + "1.9161021620136311" + ], + [ + "19:45", + "1.8431128681529119" + ], + [ + "19:49", + "1.8338507686387338" + ], + [ + "19:55", + "1.8254170315944371" + ], + [ + "20:00", + "1.917180399917886" + ], + [ + "20:04", + "1.8812860828273867" + ], + [ + "20:10", + "1.8321149593101733" + ], + [ + "20:15", + "1.9213005127703544" + ], + [ + "20:19", + "1.8851050263355218" + ], + [ + "20:25", + "1.8506521007301378" + ], + [ + "20:30", + "1.9140154622604517" + ], + [ + "20:34", + "1.8879147244024592" + ], + [ + "20:40", + "1.8259926992489128" + ], + [ + "20:45", + "1.797951432922386" + ], + [ + "20:49", + "1.8057306795814279" + ], + [ + "20:55", + "1.8226185886984325" + ], + [ + "21:00", + "1.9362126373138995" + ], + [ + "21:04", + "1.9075604885161954" + ], + [ + "21:10", + "1.928589911830941" + ], + [ + "21:15", + "1.8769415017327973" + ], + [ + "21:19", + "1.763130206848513" + ], + [ + "21:25", + "1.9651379673261196" + ], + [ + "21:30", + "1.968232114585967" + ], + [ + "21:34", + "1.8965956327630695" + ], + [ + "21:40", + "1.7899872220750368" + ], + [ + "21:45", + "1.8787174101198658" + ], + [ + "21:49", + "1.8646039588559449" + ], + [ + "21:55", + "1.6866461839619529" + ], + [ + "22:00", + "1.893014895498119" + ], + [ + "22:04", + "1.8787582831619842" + ], + [ + "22:10", + "1.7672615744647553" + ], + [ + "22:15", + "1.6198038532509536" + ], + [ + "22:19", + "1.7130926677672664" + ], + [ + "22:25", + "1.7874419577981548" + ], + [ + "22:30", + "1.607669314457688" + ], + [ + "22:34", + "1.7080646458894069" + ], + [ + "22:40", + "1.6565549782192999" + ], + [ + "22:45", + "1.6207597280602397" + ], + [ + "22:49", + "1.4317006975861637" + ], + [ + "22:55", + "1.6412697919088266" + ], + [ + "23:00", + "1.8176446749241824" + ], + [ + "23:04", + "1.8650623961713209" + ], + [ + "23:10", + "1.9896638071440296" + ], + [ + "23:15", + "1.822978826318127" + ], + [ + "23:19", + "1.883984139781599" + ], + [ + "23:25", + "1.8918714980080387" + ], + [ + "23:30", + "1.9145687095925892" + ], + [ + "23:34", + "1.9132046249260186" + ], + [ + "23:40", + "1.829253708166391" + ], + [ + "23:45", + "2.1077024634637147" + ], + [ + "23:49", + "1.9131400150567415" + ], + [ + "23:55", + "1.8440964581972574" + ], + [ + "00:00", + "1.8900039225835445" + ], + [ + "00:04", + "1.4991074250192218" + ], + [ + "00:10", + "1.6213153916115224" + ], + [ + "00:15", + "1.1961303174786577" + ], + [ + "00:19", + "1.632257677430147" + ], + [ + "00:25", + "1.5019940943712868" + ], + [ + "00:30", + "1.1682631545133741" + ], + [ + "00:34", + "1.0632349575273707" + ], + [ + "00:40", + "0.9956411810917739" + ], + [ + "00:45", + "0.965171990520745" + ], + [ + "00:49", + "1.0729696152228885" + ], + [ + "00:55", + "0.9365347645952949" + ], + [ + "01:00", + "0.9771164962613471" + ], + [ + "01:04", + "1.052162348594074" + ], + [ + "01:10", + "1.2058315715844963" + ], + [ + "01:15", + "1.3167066793326487" + ], + [ + "01:19", + "0.8657137953618194" + ], + [ + "01:25", + "1.0026825899042062" + ], + [ + "01:30", + "1.2185098459648909" + ], + [ + "01:34", + "1.0903952640202321" + ], + [ + "01:40", + "1.1763122409103788" + ], + [ + "01:45", + "0.8886249263871334" + ], + [ + "01:49", + "0.8494370210246283" + ], + [ + "01:55", + "1.0798700836370165" + ], + [ + "02:00", + "1.1226960286254806" + ], + [ + "02:04", + "1.807934060078492" + ], + [ + "02:10", + "1.3823269118301516" + ], + [ + "02:15", + "0.7815477287527169" + ], + [ + "02:19", + "0.9408794361546182" + ], + [ + "02:25", + "1.5026343614078526" + ], + [ + "02:30", + "0.9757472531359527" + ], + [ + "02:34", + "0.9627906006607075" + ], + [ + "02:40", + "1.3630295035574893" + ], + [ + "02:45", + "0.958690065095109" + ], + [ + "02:49", + "0.9627020706066425" + ], + [ + "02:55", + "1.023027200664911" + ], + [ + "03:00", + "1.7438848590902027" + ], + [ + "03:04", + "1.4279716626367573" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25, + 23.333333333333332, + 23.416666666666668, + 23.5, + 23.583333333333332, + 23.666666666666668, + 23.75, + 23.833333333333332, + 23.916666666666668, + 24, + 24.083333333333332 + ], + "y": [ + 0.977200135042227, + 1.364773405130411, + 1.0912708368423045, + 1.049172405223965, + 1.375691157616599, + 1.2844306086642086, + 1.3585194853475155, + 1.486577781928745, + 1.1605608256667599, + 1.1323986788610836, + 1.0695210353084896, + 1.060795878892077, + 1.2744198084743454, + 0.9165560174080761, + 1.1594593841948269, + 1.1143778741036605, + 0.9709613298367429, + 1.206211700245525, + 1.1249356218391338, + 1.200141859034063, + 1.1029689246446606, + 0.8636177457090134, + 1.12832326385938, + 1.079882904441947, + 0.9852442551038312, + 0.9504896405816661, + 0.9306101018089854, + 0.9168301321486039, + 1.0210834384604475, + 0.989566172024492, + 1.0362451210734789, + 1.0600335970628416, + 1.088831064627536, + 1.0875760453193806, + 1.0437419557228278, + 0.9389554226772169, + 0.903216140603335, + 0.9269732932222777, + 0.9310795125146163, + 0.9665071634892614, + 0.9360614312967209, + 0.9697518292748493, + 0.93233435358404, + 1.0311617739627217, + 1.0167758490841925, + 0.941038251080044, + 0.8990064497307929, + 0.8848352198264895, + 1.0468586839805423, + 1.0233676356611094, + 1.0563742058386794, + 0.9767857821755778, + 1.0039688606365544, + 0.9687346585454616, + 1.043078511832571, + 1.0758549028529822, + 1.0530235911327885, + 1.0481922366703056, + 1.0476388300625135, + 1.0761126422464147, + 1.2430897958404918, + 1.2513612347754839, + 1.3247810249338547, + 1.2931723489089515, + 1.2680730734796983, + 1.2121013403549379, + 1.379508140953201, + 1.4539339032641874, + 1.3924211512644245, + 1.4163630000860488, + 1.4773067801106203, + 1.3946935825320117, + 1.4483335230478365, + 1.4999850742579457, + 1.5320365900934687, + 1.6198217192409863, + 1.492742982927618, + 1.4656926024317394, + 1.5675883152523604, + 1.6565610713233552, + 1.6198738956144259, + 1.661759131463312, + 1.6626081624327278, + 1.6658961192175479, + 1.7265321015511452, + 1.6969901868998656, + 1.751946178268612, + 1.6876815611119071, + 1.737111545213489, + 1.6009738138327476, + 1.7786662945754392, + 1.7332377202550664, + 1.7592493981774664, + 1.62296967417944, + 1.763618006776357, + 1.814321798551875, + 1.7708953627012147, + 1.7459762652192783, + 1.6774005124549758, + 1.708019330656493, + 1.7235575704963177, + 1.7006444877420588, + 1.7291062413908302, + 1.6111694437506212, + 1.5756048316404987, + 1.5213689347742678, + 1.6038066469759709, + 1.454022647743493, + 1.428643333110638, + 1.424767528942905, + 1.4436593065511933, + 1.3280886219934673, + 1.3785987059244202, + 1.3462231134599554, + 1.438849861655532, + 1.4471601612618556, + 1.4843810360659633, + 1.354888129304856, + 1.575469453568649, + 1.5787245599286486, + 1.4746305936031634, + 1.5884600869126946, + 1.449593923606905, + 1.409710261247643, + 1.3846037797243744, + 1.3825346663262836, + 1.454638145824504, + 1.4981373792901, + 1.4979503905453628, + 1.4449025087382839, + 1.4854910912776889, + 1.4309453843265818, + 1.4011480708491457, + 1.3295793745937436, + 1.5346007890563826, + 1.4254627044006143, + 1.5103400930124236, + 1.392766554540842, + 1.3826401485557724, + 1.366089364930569, + 1.575002421352546, + 1.4749960629957168, + 1.4695312565467513, + 1.3844401410103027, + 1.4027142159098416, + 1.373350847204267, + 1.4994337713200088, + 1.4159815138220981, + 1.4047582959540592, + 1.4545819782662208, + 1.5663541523841413, + 1.4759755148742917, + 1.4830216137628427, + 1.5229488706218015, + 1.483616757888696, + 1.5385436445842462, + 1.5610180579636015, + 1.5320094154892874, + 1.5718631228830975, + 1.5374414272734236, + 1.5465363609912217, + 1.4781826244383987, + 1.6440941716151038, + 1.7146724116139889, + 1.6222622598818932, + 1.716219845444694, + 1.5373386972585712, + 1.6572283091966356, + 1.6627411808435097, + 1.6200122743017666, + 1.6644167273881596, + 1.6629276858842017, + 1.6476494071707852, + 1.6133256470167647, + 1.7983734348414009, + 1.7456387975986951, + 1.6459577723217542, + 1.7385424970113421, + 1.7149662945563442, + 1.6964401913497442, + 1.7402782811796613, + 1.7233931840912176, + 1.744911169832978, + 1.7064568086239393, + 1.7756170022192588, + 1.741026895932323, + 1.8065246842151312, + 1.8157252912280448, + 1.8655514561553979, + 1.718122418031144, + 1.818471179909937, + 1.790613621454832, + 1.8382599126201757, + 1.8996481189135528, + 1.8328029432977666, + 1.877738636240845, + 1.9283789615336973, + 1.8796606637567488, + 1.9069702410012375, + 2.048939696209111, + 1.9161021620136311, + 1.8431128681529119, + 1.8338507686387338, + 1.8254170315944371, + 1.917180399917886, + 1.8812860828273867, + 1.8321149593101733, + 1.9213005127703544, + 1.8851050263355218, + 1.8506521007301378, + 1.9140154622604517, + 1.8879147244024592, + 1.8259926992489128, + 1.797951432922386, + 1.8057306795814279, + 1.8226185886984325, + 1.9362126373138995, + 1.9075604885161954, + 1.928589911830941, + 1.8769415017327973, + 1.763130206848513, + 1.9651379673261196, + 1.968232114585967, + 1.8965956327630695, + 1.7899872220750368, + 1.8787174101198658, + 1.8646039588559449, + 1.6866461839619529, + 1.893014895498119, + 1.8787582831619842, + 1.7672615744647553, + 1.6198038532509536, + 1.7130926677672664, + 1.7874419577981548, + 1.607669314457688, + 1.7080646458894069, + 1.6565549782192999, + 1.6207597280602397, + 1.4317006975861637, + 1.6412697919088266, + 1.8176446749241824, + 1.8650623961713209, + 1.9896638071440296, + 1.822978826318127, + 1.883984139781599, + 1.8918714980080387, + 1.9145687095925892, + 1.9132046249260186, + 1.829253708166391, + 2.1077024634637147, + 1.9131400150567415, + 1.8440964581972574, + 1.8900039225835445, + 1.4991074250192218, + 1.6213153916115224, + 1.1961303174786577, + 1.632257677430147, + 1.5019940943712868, + 1.1682631545133741, + 1.0632349575273707, + 0.9956411810917739, + 0.965171990520745, + 1.0729696152228885, + 0.9365347645952949, + 0.9771164962613471, + 1.052162348594074, + 1.2058315715844963, + 1.3167066793326487, + 0.8657137953618194, + 1.0026825899042062, + 1.2185098459648909, + 1.0903952640202321, + 1.1763122409103788, + 0.8886249263871334, + 0.8494370210246283, + 1.0798700836370165, + 1.1226960286254806, + 1.807934060078492, + 1.3823269118301516, + 0.7815477287527169, + 0.9408794361546182, + 1.5026343614078526, + 0.9757472531359527, + 0.9627906006607075, + 1.3630295035574893, + 0.958690065095109, + 0.9627020706066425, + 1.023027200664911, + 1.7438848590902027, + 1.4279716626367573 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.2606697963467377" + ], + [ + "03:15", + "1.2751965066779807" + ], + [ + "03:30", + "1.3200261693665603" + ], + [ + "03:45", + "1.073259255589472" + ], + [ + "04:00", + "1.2219213028744484" + ], + [ + "04:15", + "1.0572510279431864" + ], + [ + "04:30", + "1.2033964590849133" + ], + [ + "04:45", + "1.0805863929785555" + ], + [ + "05:00", + "0.9725992481119361" + ], + [ + "05:15", + "1.0534175383662052" + ], + [ + "05:30", + "1.1171766490917585" + ], + [ + "05:45", + "1.0035478662794428" + ], + [ + "06:00", + "0.9793798491267811" + ], + [ + "06:15", + "0.9604450171008416" + ], + [ + "06:30", + "1.0462605875762825" + ], + [ + "06:45", + "0.9501157143866441" + ], + [ + "07:00", + "1.0774149435742346" + ], + [ + "07:15", + "1.0479985167042207" + ], + [ + "07:30", + "1.1104707581431208" + ], + [ + "07:45", + "1.1326165121428857" + ], + [ + "08:00", + "1.3054126160364596" + ], + [ + "08:15", + "1.286414951204812" + ], + [ + "08:30", + "1.469095116265166" + ], + [ + "08:45", + "1.462841518473796" + ], + [ + "09:00", + "1.5471912298369273" + ], + [ + "09:15", + "1.575084212159018" + ], + [ + "09:30", + "1.685221343473361" + ], + [ + "09:45", + "1.7127784568809061" + ], + [ + "10:00", + "1.7457232877750175" + ], + [ + "10:15", + "1.725050203280497" + ], + [ + "10:30", + "1.8048726006577445" + ], + [ + "10:45", + "1.7697349670018114" + ], + [ + "11:00", + "1.7197782310851564" + ], + [ + "11:15", + "1.757628792857521" + ], + [ + "11:30", + "1.6010615902288943" + ], + [ + "11:45", + "1.5822478554564054" + ], + [ + "12:00", + "1.3982752927903237" + ], + [ + "12:15", + "1.3707122381466927" + ], + [ + "12:30", + "1.5103197031464342" + ], + [ + "12:45", + "1.579924485742861" + ], + [ + "13:00", + "1.4793794819078228" + ], + [ + "13:15", + "1.390293128199957" + ], + [ + "13:30", + "1.543038873982552" + ], + [ + "13:45", + "1.4701223334387337" + ], + [ + "14:00", + "1.4910302545623764" + ], + [ + "14:15", + "1.4393209812284657" + ], + [ + "14:30", + "1.5088250242037813" + ], + [ + "14:45", + "1.4375064669943598" + ], + [ + "15:00", + "1.4741498619547166" + ], + [ + "15:15", + "1.4924448240703292" + ], + [ + "15:30", + "1.5464650902692323" + ], + [ + "15:45", + "1.5561228027246525" + ], + [ + "16:00", + "1.5953746150805805" + ], + [ + "16:15", + "1.5899123589618174" + ], + [ + "16:30", + "1.680734932538564" + ], + [ + "16:45", + "1.6645167245176358" + ], + [ + "17:00", + "1.7259617553774587" + ], + [ + "17:15", + "1.6772084393142563" + ], + [ + "17:30", + "1.7747319341391088" + ], + [ + "17:45", + "1.7582376307015588" + ], + [ + "18:00", + "1.752512830570924" + ], + [ + "18:15", + "1.795258657140824" + ], + [ + "18:30", + "1.8735576200130095" + ], + [ + "18:45", + "1.826609170139562" + ], + [ + "19:00", + "1.908936173408292" + ], + [ + "19:15", + "1.9365789597398846" + ], + [ + "19:30", + "1.9538059188078196" + ], + [ + "19:45", + "1.9032627675360876" + ], + [ + "20:00", + "1.9320954839505782" + ], + [ + "20:15", + "1.927960887160643" + ], + [ + "20:30", + "1.886767095536217" + ], + [ + "20:45", + "1.8914448674969617" + ], + [ + "21:00", + "1.9643413651062864" + ], + [ + "21:15", + "1.865361321898436" + ], + [ + "21:30", + "1.8927675503797932" + ], + [ + "21:45", + "1.885567970527686" + ], + [ + "22:00", + "1.7215493494891798" + ], + [ + "22:15", + "1.7579133444927777" + ], + [ + "22:30", + "1.6379839606643793" + ], + [ + "22:45", + "1.6190794196034282" + ], + [ + "23:00", + "1.9924491864228344" + ], + [ + "23:15", + "1.8386860231711695" + ], + [ + "23:30", + "1.97292348154526" + ], + [ + "23:45", + "1.8696507127518425" + ], + [ + "00:00", + "1.5201577007331757" + ], + [ + "00:15", + "1.5247105283679734" + ], + [ + "00:30", + "0.9960970161675283" + ], + [ + "00:45", + "1.0093902055570039" + ], + [ + "01:00", + "1.1877617987932418" + ], + [ + "01:15", + "1.1172542467258024" + ], + [ + "01:30", + "1.036330975779366" + ], + [ + "01:45", + "1.217924197719783" + ], + [ + "02:00", + "1.2854840150309346" + ], + [ + "02:15", + "1.1387742213135323" + ], + [ + "02:30", + "1.113621534319913" + ], + [ + "02:45", + "1.1700304152482628" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25, + 23.5, + 23.75 + ], + "y": [ + 1.2606697963467377, + 1.2751965066779807, + 1.3200261693665603, + 1.073259255589472, + 1.2219213028744484, + 1.0572510279431864, + 1.2033964590849133, + 1.0805863929785555, + 0.9725992481119361, + 1.0534175383662052, + 1.1171766490917585, + 1.0035478662794428, + 0.9793798491267811, + 0.9604450171008416, + 1.0462605875762825, + 0.9501157143866441, + 1.0774149435742346, + 1.0479985167042207, + 1.1104707581431208, + 1.1326165121428857, + 1.3054126160364596, + 1.286414951204812, + 1.469095116265166, + 1.462841518473796, + 1.5471912298369273, + 1.575084212159018, + 1.685221343473361, + 1.7127784568809061, + 1.7457232877750175, + 1.725050203280497, + 1.8048726006577445, + 1.7697349670018114, + 1.7197782310851564, + 1.757628792857521, + 1.6010615902288943, + 1.5822478554564054, + 1.3982752927903237, + 1.3707122381466927, + 1.5103197031464342, + 1.579924485742861, + 1.4793794819078228, + 1.390293128199957, + 1.543038873982552, + 1.4701223334387337, + 1.4910302545623764, + 1.4393209812284657, + 1.5088250242037813, + 1.4375064669943598, + 1.4741498619547166, + 1.4924448240703292, + 1.5464650902692323, + 1.5561228027246525, + 1.5953746150805805, + 1.5899123589618174, + 1.680734932538564, + 1.6645167245176358, + 1.7259617553774587, + 1.6772084393142563, + 1.7747319341391088, + 1.7582376307015588, + 1.752512830570924, + 1.795258657140824, + 1.8735576200130095, + 1.826609170139562, + 1.908936173408292, + 1.9365789597398846, + 1.9538059188078196, + 1.9032627675360876, + 1.9320954839505782, + 1.927960887160643, + 1.886767095536217, + 1.8914448674969617, + 1.9643413651062864, + 1.865361321898436, + 1.8927675503797932, + 1.885567970527686, + 1.7215493494891798, + 1.7579133444927777, + 1.6379839606643793, + 1.6190794196034282, + 1.9924491864228344, + 1.8386860231711695, + 1.97292348154526, + 1.8696507127518425, + 1.5201577007331757, + 1.5247105283679734, + 0.9960970161675283, + 1.0093902055570039, + 1.1877617987932418, + 1.1172542467258024, + 1.036330975779366, + 1.217924197719783, + 1.2854840150309346, + 1.1387742213135323, + 1.113621534319913, + 1.1700304152482628 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average occupancy by time bin (OD_dist-weighted) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Average occupancy" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1269347057339092" + ], + [ + "04:10", + "1.183315922030218" + ], + [ + "04:19", + "1.020977082138179" + ], + [ + "04:30", + "1.1270128806263786" + ], + [ + "04:40", + "1.1263681399418604" + ], + [ + "04:49", + "1.118083187971494" + ], + [ + "05:00", + "0.9897878521213063" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0818312572990452" + ], + [ + "05:30", + "1.0856437631284126" + ], + [ + "05:40", + "1.0674782599651953" + ], + [ + "05:49", + "0.9811777087669468" + ], + [ + "06:00", + "0.9688417647786189" + ], + [ + "06:10", + "0.9251838620543567" + ], + [ + "06:19", + "0.9683619696413023" + ], + [ + "06:30", + "1.0209246384536417" + ], + [ + "06:40", + "0.9779619172742089" + ], + [ + "06:49", + "0.9256885449852714" + ], + [ + "07:00", + "1.061987673659908" + ], + [ + "07:10", + "1.036518467324717" + ], + [ + "07:19", + "1.0321799612950202" + ], + [ + "07:30", + "1.0951012329242487" + ], + [ + "07:40", + "1.0645670515151604" + ], + [ + "07:49", + "1.1199188585361046" + ], + [ + "08:00", + "1.296708106715972" + ], + [ + "08:10", + "1.2910624251454585" + ], + [ + "08:19", + "1.2848943927871044" + ], + [ + "08:30", + "1.442780474793665" + ], + [ + "08:40", + "1.4349704104992251" + ], + [ + "08:49", + "1.4401307976454372" + ], + [ + "09:00", + "1.5087555110510038" + ], + [ + "09:10", + "1.5891807749918847" + ], + [ + "09:19", + "1.5555066872545613" + ], + [ + "09:30", + "1.6482125215395373" + ], + [ + "09:40", + "1.6927817938564795" + ], + [ + "09:49", + "1.6642632986145796" + ], + [ + "10:00", + "1.7255967433933863" + ], + [ + "10:10", + "1.7615758260972627" + ], + [ + "10:19", + "1.6954755490847238" + ], + [ + "10:30", + "1.8345978388881383" + ], + [ + "10:40", + "1.6912542690332335" + ], + [ + "10:49", + "1.7828530739005293" + ], + [ + "11:00", + "1.7882051207781073" + ], + [ + "11:10", + "1.6964001929007024" + ], + [ + "11:19", + "1.7344908755574489" + ], + [ + "11:30", + "1.6457586680994094" + ], + [ + "11:40", + "1.5859841301566848" + ], + [ + "11:49", + "1.5376239137665637" + ], + [ + "12:00", + "1.406096761351721" + ], + [ + "12:10", + "1.3849373042627509" + ], + [ + "12:19", + "1.368628588171102" + ], + [ + "12:30", + "1.4867019672825126" + ], + [ + "12:40", + "1.438708240345497" + ], + [ + "12:49", + "1.5602385095048719" + ], + [ + "13:00", + "1.5669961325676882" + ], + [ + "13:10", + "1.42494421695802" + ], + [ + "13:19", + "1.3873811114046888" + ], + [ + "13:30", + "1.4680296664950658" + ], + [ + "13:40", + "1.511599784000429" + ], + [ + "13:49", + "1.4935745743916866" + ], + [ + "14:00", + "1.4060332951717749" + ], + [ + "14:10", + "1.5017317613473715" + ], + [ + "14:19", + "1.4703927740714626" + ], + [ + "14:30", + "1.4371220011099988" + ], + [ + "14:40", + "1.5068676690735445" + ], + [ + "14:49", + "1.4478117357821705" + ], + [ + "15:00", + "1.4196435727071088" + ], + [ + "15:10", + "1.4903427569533385" + ], + [ + "15:19", + "1.4698244938793883" + ], + [ + "15:30", + "1.5505846863487387" + ], + [ + "15:40", + "1.533519879787878" + ], + [ + "15:49", + "1.5667786069174539" + ], + [ + "16:00", + "1.5778047809114366" + ], + [ + "16:10", + "1.5555200473410558" + ], + [ + "16:19", + "1.564869119125043" + ], + [ + "16:30", + "1.698682981767884" + ], + [ + "16:40", + "1.6872971414285893" + ], + [ + "16:49", + "1.6493481770759535" + ], + [ + "17:00", + "1.7060311521985225" + ], + [ + "17:10", + "1.7137124903923262" + ], + [ + "17:19", + "1.6376606553417676" + ], + [ + "17:30", + "1.7895981600845021" + ], + [ + "17:40", + "1.7412522178219008" + ], + [ + "17:49", + "1.715352448907016" + ], + [ + "18:00", + "1.7857796975493536" + ], + [ + "18:10", + "1.7331170595870433" + ], + [ + "18:19", + "1.791502017081316" + ], + [ + "18:30", + "1.8519412914338227" + ], + [ + "18:40", + "1.8291994298199865" + ], + [ + "18:49", + "1.823260530908403" + ], + [ + "19:00", + "1.8865026719965499" + ], + [ + "19:10", + "1.901366011141666" + ], + [ + "19:19", + "1.938707110039195" + ], + [ + "19:30", + "1.97263533191086" + ], + [ + "19:40", + "1.8903750453346955" + ], + [ + "19:49", + "1.8792997080904943" + ], + [ + "20:00", + "1.9818921649480923" + ], + [ + "20:10", + "1.879964175983358" + ], + [ + "20:19", + "1.9345212266640923" + ], + [ + "20:30", + "1.9041762738192747" + ], + [ + "20:40", + "1.8202001845845146" + ], + [ + "20:49", + "1.8602091573942137" + ], + [ + "21:00", + "1.9046104065816931" + ], + [ + "21:10", + "1.9458201089413423" + ], + [ + "21:19", + "1.8657575666693111" + ], + [ + "21:30", + "1.9123086016829915" + ], + [ + "21:40", + "1.890408253433916" + ], + [ + "21:49", + "1.860057532127748" + ], + [ + "22:00", + "1.768405111248504" + ], + [ + "22:10", + "1.7228262662065983" + ], + [ + "22:19", + "1.7600741446233072" + ], + [ + "22:30", + "1.7351119281990313" + ], + [ + "22:40", + "1.627579637809477" + ], + [ + "22:49", + "1.5026127534180285" + ], + [ + "23:00", + "1.8668294834726493" + ], + [ + "23:10", + "1.921586028950252" + ], + [ + "23:19", + "1.859944045343084" + ], + [ + "23:30", + "1.9421573552577784" + ], + [ + "23:40", + "1.9996994539344555" + ], + [ + "23:49", + "1.8589087984770138" + ], + [ + "00:00", + "1.6627462508277173" + ], + [ + "00:10", + "1.4912009784351483" + ], + [ + "00:19", + "1.5628532968400852" + ], + [ + "00:30", + "0.9781458275090296" + ], + [ + "00:40", + "0.9812069092694643" + ], + [ + "00:49", + "1.0182492746801393" + ], + [ + "01:00", + "1.0080667767153983" + ], + [ + "01:10", + "1.1416978645073563" + ], + [ + "01:19", + "1.1811130366714149" + ], + [ + "01:30", + "1.0561868544820934" + ], + [ + "01:40", + "1.0768999151158571" + ], + [ + "01:49", + "0.9842344139042237" + ], + [ + "02:00", + "1.5838487306115105" + ], + [ + "02:10", + "1.1065686921529496" + ], + [ + "02:19", + "1.2924803345972495" + ], + [ + "02:30", + "0.9596692985545329" + ], + [ + "02:40", + "0.9956463783304861" + ], + [ + "02:49", + "1.17815968919917" + ], + [ + "03:00", + "2.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1269347057339092, + 1.183315922030218, + 1.020977082138179, + 1.1270128806263786, + 1.1263681399418604, + 1.118083187971494, + 0.9897878521213063, + 0.9699007539618653, + 1.0818312572990452, + 1.0856437631284126, + 1.0674782599651953, + 0.9811777087669468, + 0.9688417647786189, + 0.9251838620543567, + 0.9683619696413023, + 1.0209246384536417, + 0.9779619172742089, + 0.9256885449852714, + 1.061987673659908, + 1.036518467324717, + 1.0321799612950202, + 1.0951012329242487, + 1.0645670515151604, + 1.1199188585361046, + 1.296708106715972, + 1.2910624251454585, + 1.2848943927871044, + 1.442780474793665, + 1.4349704104992251, + 1.4401307976454372, + 1.5087555110510038, + 1.5891807749918847, + 1.5555066872545613, + 1.6482125215395373, + 1.6927817938564795, + 1.6642632986145796, + 1.7255967433933863, + 1.7615758260972627, + 1.6954755490847238, + 1.8345978388881383, + 1.6912542690332335, + 1.7828530739005293, + 1.7882051207781073, + 1.6964001929007024, + 1.7344908755574489, + 1.6457586680994094, + 1.5859841301566848, + 1.5376239137665637, + 1.406096761351721, + 1.3849373042627509, + 1.368628588171102, + 1.4867019672825126, + 1.438708240345497, + 1.5602385095048719, + 1.5669961325676882, + 1.42494421695802, + 1.3873811114046888, + 1.4680296664950658, + 1.511599784000429, + 1.4935745743916866, + 1.4060332951717749, + 1.5017317613473715, + 1.4703927740714626, + 1.4371220011099988, + 1.5068676690735445, + 1.4478117357821705, + 1.4196435727071088, + 1.4903427569533385, + 1.4698244938793883, + 1.5505846863487387, + 1.533519879787878, + 1.5667786069174539, + 1.5778047809114366, + 1.5555200473410558, + 1.564869119125043, + 1.698682981767884, + 1.6872971414285893, + 1.6493481770759535, + 1.7060311521985225, + 1.7137124903923262, + 1.6376606553417676, + 1.7895981600845021, + 1.7412522178219008, + 1.715352448907016, + 1.7857796975493536, + 1.7331170595870433, + 1.791502017081316, + 1.8519412914338227, + 1.8291994298199865, + 1.823260530908403, + 1.8865026719965499, + 1.901366011141666, + 1.938707110039195, + 1.97263533191086, + 1.8903750453346955, + 1.8792997080904943, + 1.9818921649480923, + 1.879964175983358, + 1.9345212266640923, + 1.9041762738192747, + 1.8202001845845146, + 1.8602091573942137, + 1.9046104065816931, + 1.9458201089413423, + 1.8657575666693111, + 1.9123086016829915, + 1.890408253433916, + 1.860057532127748, + 1.768405111248504, + 1.7228262662065983, + 1.7600741446233072, + 1.7351119281990313, + 1.627579637809477, + 1.5026127534180285, + 1.8668294834726493, + 1.921586028950252, + 1.859944045343084, + 1.9421573552577784, + 1.9996994539344555, + 1.8589087984770138, + 1.6627462508277173, + 1.4912009784351483, + 1.5628532968400852, + 0.9781458275090296, + 0.9812069092694643, + 1.0182492746801393, + 1.0080667767153983, + 1.1416978645073563, + 1.1811130366714149, + 1.0561868544820934, + 1.0768999151158571, + 0.9842344139042237, + 1.5838487306115105, + 1.1065686921529496, + 1.2924803345972495, + 0.9596692985545329, + 0.9956463783304861, + 1.17815968919917, + 2 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1047943789569705" + ], + [ + "04:10", + "1.1883017666310987" + ], + [ + "04:19", + "1.0142650203051602" + ], + [ + "04:30", + "1.1261941354434528" + ], + [ + "04:40", + "1.1215528640811856" + ], + [ + "04:49", + "1.123777977179432" + ], + [ + "05:00", + "0.9882266801920959" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0808466735711024" + ], + [ + "05:30", + "1.0855660588666805" + ], + [ + "05:40", + "1.0601101960948967" + ], + [ + "05:49", + "0.9848024633599429" + ], + [ + "06:00", + "0.9765561102534407" + ], + [ + "06:10", + "0.9119154822308351" + ], + [ + "06:19", + "0.972482336364256" + ], + [ + "06:30", + "1.0202065289219322" + ], + [ + "06:40", + "0.9725331279371819" + ], + [ + "06:49", + "0.9261779086060292" + ], + [ + "07:00", + "1.0632695259807021" + ], + [ + "07:10", + "1.0339391138613918" + ], + [ + "07:19", + "1.0236572172795426" + ], + [ + "07:30", + "1.1006780610742664" + ], + [ + "07:40", + "1.0575505118892772" + ], + [ + "07:49", + "1.114940646414758" + ], + [ + "08:00", + "1.3014173734410066" + ], + [ + "08:10", + "1.2696756256675363" + ], + [ + "08:19", + "1.2965877484768953" + ], + [ + "08:30", + "1.4341715787408271" + ], + [ + "08:40", + "1.430042309477122" + ], + [ + "08:49", + "1.4380137786545435" + ], + [ + "09:00", + "1.51399122481316" + ], + [ + "09:10", + "1.5847006040270823" + ], + [ + "09:19", + "1.5562176749254824" + ], + [ + "09:30", + "1.6407752060106144" + ], + [ + "09:40", + "1.6994202153182405" + ], + [ + "09:49", + "1.6640126025420001" + ], + [ + "10:00", + "1.7251395058579841" + ], + [ + "10:10", + "1.7525517194747418" + ], + [ + "10:19", + "1.6873331213928526" + ], + [ + "10:30", + "1.8334453624071898" + ], + [ + "10:40", + "1.693668235138805" + ], + [ + "10:49", + "1.7859891406406136" + ], + [ + "11:00", + "1.7795501166727645" + ], + [ + "11:10", + "1.691847810965162" + ], + [ + "11:19", + "1.7343094400313146" + ], + [ + "11:30", + "1.6429979727425528" + ], + [ + "11:40", + "1.5871194978874017" + ], + [ + "11:49", + "1.546006640817828" + ], + [ + "12:00", + "1.3953132777658983" + ], + [ + "12:10", + "1.3826133358004693" + ], + [ + "12:19", + "1.3668006368479524" + ], + [ + "12:30", + "1.4846488389806105" + ], + [ + "12:40", + "1.4393407285551885" + ], + [ + "12:49", + "1.5639695192762437" + ], + [ + "13:00", + "1.5613427863052345" + ], + [ + "13:10", + "1.4248213569615025" + ], + [ + "13:19", + "1.38645194277324" + ], + [ + "13:30", + "1.4680138338204818" + ], + [ + "13:40", + "1.5135488972516147" + ], + [ + "13:49", + "1.4881802659589993" + ], + [ + "14:00", + "1.4023551340359355" + ], + [ + "14:10", + "1.5013838506332775" + ], + [ + "14:19", + "1.4648357612990703" + ], + [ + "14:30", + "1.4311985015441322" + ], + [ + "14:40", + "1.516740774495766" + ], + [ + "14:49", + "1.4386649795356425" + ], + [ + "15:00", + "1.42165574341497" + ], + [ + "15:10", + "1.4962301527252777" + ], + [ + "15:19", + "1.4733333998309337" + ], + [ + "15:30", + "1.5649200192682766" + ], + [ + "15:40", + "1.5340813547248355" + ], + [ + "15:49", + "1.5651635251608118" + ], + [ + "16:00", + "1.5708273315573937" + ], + [ + "16:10", + "1.5519529163355583" + ], + [ + "16:19", + "1.566904243194357" + ], + [ + "16:30", + "1.6969412739944085" + ], + [ + "16:40", + "1.6811443417260956" + ], + [ + "16:49", + "1.6415844876116314" + ], + [ + "17:00", + "1.710522439052927" + ], + [ + "17:10", + "1.7046339200151728" + ], + [ + "17:19", + "1.6275761959462534" + ], + [ + "17:30", + "1.7846931879107075" + ], + [ + "17:40", + "1.7485532414247638" + ], + [ + "17:49", + "1.694820429886836" + ], + [ + "18:00", + "1.7928881359388897" + ], + [ + "18:10", + "1.7290242564158707" + ], + [ + "18:19", + "1.792775883504344" + ], + [ + "18:30", + "1.8456329434682042" + ], + [ + "18:40", + "1.8311686647261587" + ], + [ + "18:49", + "1.8206918667931573" + ], + [ + "19:00", + "1.8955131075514289" + ], + [ + "19:10", + "1.8962856747679528" + ], + [ + "19:19", + "1.9427811449375454" + ], + [ + "19:30", + "1.984900889417502" + ], + [ + "19:40", + "1.8709525476448663" + ], + [ + "19:49", + "1.8668034785116996" + ], + [ + "20:00", + "1.9771690305974159" + ], + [ + "20:10", + "1.878614121133621" + ], + [ + "20:19", + "1.936911790303976" + ], + [ + "20:30", + "1.8917147494741715" + ], + [ + "20:40", + "1.837296798470076" + ], + [ + "20:49", + "1.8693167099155221" + ], + [ + "21:00", + "1.9169677248084704" + ], + [ + "21:10", + "1.921932938522009" + ], + [ + "21:19", + "1.8798497339476843" + ], + [ + "21:30", + "1.905715168124015" + ], + [ + "21:40", + "1.893181203133364" + ], + [ + "21:49", + "1.8617453164116233" + ], + [ + "22:00", + "1.7550234773197868" + ], + [ + "22:10", + "1.7084678306863534" + ], + [ + "22:19", + "1.7681571397839972" + ], + [ + "22:30", + "1.7344961668132806" + ], + [ + "22:40", + "1.6365375769543882" + ], + [ + "22:49", + "1.5113369482378676" + ], + [ + "23:00", + "1.847115009394817" + ], + [ + "23:10", + "1.8970647542561716" + ], + [ + "23:19", + "1.861599442746066" + ], + [ + "23:30", + "1.9427360914729772" + ], + [ + "23:40", + "1.998653960244702" + ], + [ + "23:49", + "1.8743745287917795" + ], + [ + "00:00", + "1.6352720417982047" + ], + [ + "00:10", + "1.485414484190452" + ], + [ + "00:19", + "1.5706949210855135" + ], + [ + "00:30", + "0.9766095879949893" + ], + [ + "00:40", + "0.9821807673090218" + ], + [ + "00:49", + "1.017567406578456" + ], + [ + "01:00", + "1.0191363887274218" + ], + [ + "01:10", + "1.283939509979537" + ], + [ + "01:19", + "1.1522076015971365" + ], + [ + "01:30", + "0.9078177845905282" + ], + [ + "01:40", + "1.0715741109753536" + ], + [ + "01:49", + "0.9889496039667814" + ], + [ + "02:00", + "1.5007136655051716" + ], + [ + "02:10", + "1.2073326377175864" + ], + [ + "02:19", + "1.2848702876399642" + ], + [ + "02:30", + "0.9600689531114455" + ], + [ + "02:40", + "1.2025682887203437" + ], + [ + "02:49", + "0.9406502908123711" + ], + [ + "03:00", + "2.1002028742157735" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1047943789569705, + 1.1883017666310987, + 1.0142650203051602, + 1.1261941354434528, + 1.1215528640811856, + 1.123777977179432, + 0.9882266801920959, + 0.9699007539618653, + 1.0808466735711024, + 1.0855660588666805, + 1.0601101960948967, + 0.9848024633599429, + 0.9765561102534407, + 0.9119154822308351, + 0.972482336364256, + 1.0202065289219322, + 0.9725331279371819, + 0.9261779086060292, + 1.0632695259807021, + 1.0339391138613918, + 1.0236572172795426, + 1.1006780610742664, + 1.0575505118892772, + 1.114940646414758, + 1.3014173734410066, + 1.2696756256675363, + 1.2965877484768953, + 1.4341715787408271, + 1.430042309477122, + 1.4380137786545435, + 1.51399122481316, + 1.5847006040270823, + 1.5562176749254824, + 1.6407752060106144, + 1.6994202153182405, + 1.6640126025420001, + 1.7251395058579841, + 1.7525517194747418, + 1.6873331213928526, + 1.8334453624071898, + 1.693668235138805, + 1.7859891406406136, + 1.7795501166727645, + 1.691847810965162, + 1.7343094400313146, + 1.6429979727425528, + 1.5871194978874017, + 1.546006640817828, + 1.3953132777658983, + 1.3826133358004693, + 1.3668006368479524, + 1.4846488389806105, + 1.4393407285551885, + 1.5639695192762437, + 1.5613427863052345, + 1.4248213569615025, + 1.38645194277324, + 1.4680138338204818, + 1.5135488972516147, + 1.4881802659589993, + 1.4023551340359355, + 1.5013838506332775, + 1.4648357612990703, + 1.4311985015441322, + 1.516740774495766, + 1.4386649795356425, + 1.42165574341497, + 1.4962301527252777, + 1.4733333998309337, + 1.5649200192682766, + 1.5340813547248355, + 1.5651635251608118, + 1.5708273315573937, + 1.5519529163355583, + 1.566904243194357, + 1.6969412739944085, + 1.6811443417260956, + 1.6415844876116314, + 1.710522439052927, + 1.7046339200151728, + 1.6275761959462534, + 1.7846931879107075, + 1.7485532414247638, + 1.694820429886836, + 1.7928881359388897, + 1.7290242564158707, + 1.792775883504344, + 1.8456329434682042, + 1.8311686647261587, + 1.8206918667931573, + 1.8955131075514289, + 1.8962856747679528, + 1.9427811449375454, + 1.984900889417502, + 1.8709525476448663, + 1.8668034785116996, + 1.9771690305974159, + 1.878614121133621, + 1.936911790303976, + 1.8917147494741715, + 1.837296798470076, + 1.8693167099155221, + 1.9169677248084704, + 1.921932938522009, + 1.8798497339476843, + 1.905715168124015, + 1.893181203133364, + 1.8617453164116233, + 1.7550234773197868, + 1.7084678306863534, + 1.7681571397839972, + 1.7344961668132806, + 1.6365375769543882, + 1.5113369482378676, + 1.847115009394817, + 1.8970647542561716, + 1.861599442746066, + 1.9427360914729772, + 1.998653960244702, + 1.8743745287917795, + 1.6352720417982047, + 1.485414484190452, + 1.5706949210855135, + 0.9766095879949893, + 0.9821807673090218, + 1.017567406578456, + 1.0191363887274218, + 1.283939509979537, + 1.1522076015971365, + 0.9078177845905282, + 1.0715741109753536, + 0.9889496039667814, + 1.5007136655051716, + 1.2073326377175864, + 1.2848702876399642, + 0.9600689531114455, + 1.2025682887203437, + 0.9406502908123711, + 2.1002028742157735 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1047943789569705" + ], + [ + "04:10", + "1.1883017666310987" + ], + [ + "04:19", + "1.0142650203051602" + ], + [ + "04:30", + "1.1261941354434528" + ], + [ + "04:40", + "1.1215528640811856" + ], + [ + "04:49", + "1.123777977179432" + ], + [ + "05:00", + "0.9882266801920959" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0808466735711024" + ], + [ + "05:30", + "1.0855660588666805" + ], + [ + "05:40", + "1.0601101960948967" + ], + [ + "05:49", + "0.9848024633599429" + ], + [ + "06:00", + "0.9765561102534407" + ], + [ + "06:10", + "0.9119154822308351" + ], + [ + "06:19", + "0.9729962586086075" + ], + [ + "06:30", + "1.0194487381972455" + ], + [ + "06:40", + "0.9726281681054523" + ], + [ + "06:49", + "0.9264660984291495" + ], + [ + "07:00", + "1.0642702123044254" + ], + [ + "07:10", + "1.0339840423508844" + ], + [ + "07:19", + "1.0249766249768082" + ], + [ + "07:30", + "1.096680899416543" + ], + [ + "07:40", + "1.059791787949299" + ], + [ + "07:49", + "1.1311002165102784" + ], + [ + "08:00", + "1.2908885441686746" + ], + [ + "08:10", + "1.2825680605859393" + ], + [ + "08:19", + "1.2876230387547933" + ], + [ + "08:30", + "1.440266103777849" + ], + [ + "08:40", + "1.4386513884640761" + ], + [ + "08:49", + "1.4397553977906188" + ], + [ + "09:00", + "1.5005177246867532" + ], + [ + "09:10", + "1.5879726056810461" + ], + [ + "09:19", + "1.5546973910105537" + ], + [ + "09:30", + "1.6447418905028213" + ], + [ + "09:40", + "1.6996935098705164" + ], + [ + "09:49", + "1.6654891856438048" + ], + [ + "10:00", + "1.7148858018258737" + ], + [ + "10:10", + "1.7624559466426784" + ], + [ + "10:19", + "1.6905292020665665" + ], + [ + "10:30", + "1.8322316443655013" + ], + [ + "10:40", + "1.6827216291798317" + ], + [ + "10:49", + "1.791534246134415" + ], + [ + "11:00", + "1.7867701989868228" + ], + [ + "11:10", + "1.6887686378784057" + ], + [ + "11:19", + "1.7331860297241073" + ], + [ + "11:30", + "1.6455082769718508" + ], + [ + "11:40", + "1.5866816557908274" + ], + [ + "11:49", + "1.5364449092640564" + ], + [ + "12:00", + "1.405541384246915" + ], + [ + "12:10", + "1.3831819421118776" + ], + [ + "12:19", + "1.3682362320722716" + ], + [ + "12:30", + "1.4850549117623466" + ], + [ + "12:40", + "1.4403880467742893" + ], + [ + "12:49", + "1.5629662366306054" + ], + [ + "13:00", + "1.5625794049262998" + ], + [ + "13:10", + "1.4242473519391148" + ], + [ + "13:19", + "1.3882255123204985" + ], + [ + "13:30", + "1.463940442587454" + ], + [ + "13:40", + "1.5137500110773519" + ], + [ + "13:49", + "1.4921124823702157" + ], + [ + "14:00", + "1.4040877772606009" + ], + [ + "14:10", + "1.4945545934226876" + ], + [ + "14:19", + "1.474979441443249" + ], + [ + "14:30", + "1.4270908917109228" + ], + [ + "14:40", + "1.5195651430425507" + ], + [ + "14:49", + "1.4477508707927003" + ], + [ + "15:00", + "1.4145830864752562" + ], + [ + "15:10", + "1.491947927658131" + ], + [ + "15:19", + "1.469079335809095" + ], + [ + "15:30", + "1.5458992617455247" + ], + [ + "15:40", + "1.5435553412337275" + ], + [ + "15:49", + "1.558598411733489" + ], + [ + "16:00", + "1.5780700153711371" + ], + [ + "16:10", + "1.5619773209903285" + ], + [ + "16:19", + "1.55629583362381" + ], + [ + "16:30", + "1.6986545257945012" + ], + [ + "16:40", + "1.6792560187099421" + ], + [ + "16:49", + "1.6424715500876714" + ], + [ + "17:00", + "1.710651716218577" + ], + [ + "17:10", + "1.7004222374375098" + ], + [ + "17:19", + "1.6278335528399184" + ], + [ + "17:30", + "1.7945932296232903" + ], + [ + "17:40", + "1.7416195691241478" + ], + [ + "17:49", + "1.7102067875553235" + ], + [ + "18:00", + "1.7862533663677158" + ], + [ + "18:10", + "1.7407351135853129" + ], + [ + "18:19", + "1.78799181714888" + ], + [ + "18:30", + "1.853445187300798" + ], + [ + "18:40", + "1.825833258740307" + ], + [ + "18:49", + "1.809468591279298" + ], + [ + "19:00", + "1.8906499268965187" + ], + [ + "19:10", + "1.902338770534634" + ], + [ + "19:19", + "1.9383208049239784" + ], + [ + "19:30", + "1.998273348994049" + ], + [ + "19:40", + "1.8666836440721777" + ], + [ + "19:49", + "1.8744356003622384" + ], + [ + "20:00", + "1.9757887399275524" + ], + [ + "20:10", + "1.8721306790111045" + ], + [ + "20:19", + "1.9462677023168422" + ], + [ + "20:30", + "1.907486771059141" + ], + [ + "20:40", + "1.8235362259860508" + ], + [ + "20:49", + "1.8625659266610506" + ], + [ + "21:00", + "1.9072469237826044" + ], + [ + "21:10", + "1.924348391061679" + ], + [ + "21:19", + "1.8940315220247954" + ], + [ + "21:30", + "1.9019910472184078" + ], + [ + "21:40", + "1.8902949079701652" + ], + [ + "21:49", + "1.8589345241570256" + ], + [ + "22:00", + "1.7402430651895469" + ], + [ + "22:10", + "1.7222045710140885" + ], + [ + "22:19", + "1.7648254259079579" + ], + [ + "22:30", + "1.7296771941292808" + ], + [ + "22:40", + "1.6251650263634603" + ], + [ + "22:49", + "1.516577538076878" + ], + [ + "23:00", + "1.8412245495424808" + ], + [ + "23:10", + "1.9136370418497044" + ], + [ + "23:19", + "1.8542928402715548" + ], + [ + "23:30", + "1.9453439515100865" + ], + [ + "23:40", + "1.989869019400556" + ], + [ + "23:49", + "1.8626102971998753" + ], + [ + "00:00", + "1.662410462357551" + ], + [ + "00:10", + "1.4858707762634744" + ], + [ + "00:19", + "1.5414978146312293" + ], + [ + "00:30", + "1.0188599513280487" + ], + [ + "00:40", + "0.9850569449264881" + ], + [ + "00:49", + "1.0204393507967415" + ], + [ + "01:00", + "1.0205250508239634" + ], + [ + "01:10", + "1.2829992310930993" + ], + [ + "01:19", + "1.154290800151939" + ], + [ + "01:30", + "0.9426322946425192" + ], + [ + "01:40", + "1.0716543488653647" + ], + [ + "01:49", + "0.9894490806054449" + ], + [ + "02:00", + "1.578841250620199" + ], + [ + "02:10", + "1.1070575595435153" + ], + [ + "02:19", + "1.2972990747988666" + ], + [ + "02:30", + "0.9592678525865996" + ], + [ + "02:40", + "0.9962053941806114" + ], + [ + "02:49", + "1.1699188512138818" + ], + [ + "03:00", + "2.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1047943789569705, + 1.1883017666310987, + 1.0142650203051602, + 1.1261941354434528, + 1.1215528640811856, + 1.123777977179432, + 0.9882266801920959, + 0.9699007539618653, + 1.0808466735711024, + 1.0855660588666805, + 1.0601101960948967, + 0.9848024633599429, + 0.9765561102534407, + 0.9119154822308351, + 0.9729962586086075, + 1.0194487381972455, + 0.9726281681054523, + 0.9264660984291495, + 1.0642702123044254, + 1.0339840423508844, + 1.0249766249768082, + 1.096680899416543, + 1.059791787949299, + 1.1311002165102784, + 1.2908885441686746, + 1.2825680605859393, + 1.2876230387547933, + 1.440266103777849, + 1.4386513884640761, + 1.4397553977906188, + 1.5005177246867532, + 1.5879726056810461, + 1.5546973910105537, + 1.6447418905028213, + 1.6996935098705164, + 1.6654891856438048, + 1.7148858018258737, + 1.7624559466426784, + 1.6905292020665665, + 1.8322316443655013, + 1.6827216291798317, + 1.791534246134415, + 1.7867701989868228, + 1.6887686378784057, + 1.7331860297241073, + 1.6455082769718508, + 1.5866816557908274, + 1.5364449092640564, + 1.405541384246915, + 1.3831819421118776, + 1.3682362320722716, + 1.4850549117623466, + 1.4403880467742893, + 1.5629662366306054, + 1.5625794049262998, + 1.4242473519391148, + 1.3882255123204985, + 1.463940442587454, + 1.5137500110773519, + 1.4921124823702157, + 1.4040877772606009, + 1.4945545934226876, + 1.474979441443249, + 1.4270908917109228, + 1.5195651430425507, + 1.4477508707927003, + 1.4145830864752562, + 1.491947927658131, + 1.469079335809095, + 1.5458992617455247, + 1.5435553412337275, + 1.558598411733489, + 1.5780700153711371, + 1.5619773209903285, + 1.55629583362381, + 1.6986545257945012, + 1.6792560187099421, + 1.6424715500876714, + 1.710651716218577, + 1.7004222374375098, + 1.6278335528399184, + 1.7945932296232903, + 1.7416195691241478, + 1.7102067875553235, + 1.7862533663677158, + 1.7407351135853129, + 1.78799181714888, + 1.853445187300798, + 1.825833258740307, + 1.809468591279298, + 1.8906499268965187, + 1.902338770534634, + 1.9383208049239784, + 1.998273348994049, + 1.8666836440721777, + 1.8744356003622384, + 1.9757887399275524, + 1.8721306790111045, + 1.9462677023168422, + 1.907486771059141, + 1.8235362259860508, + 1.8625659266610506, + 1.9072469237826044, + 1.924348391061679, + 1.8940315220247954, + 1.9019910472184078, + 1.8902949079701652, + 1.8589345241570256, + 1.7402430651895469, + 1.7222045710140885, + 1.7648254259079579, + 1.7296771941292808, + 1.6251650263634603, + 1.516577538076878, + 1.8412245495424808, + 1.9136370418497044, + 1.8542928402715548, + 1.9453439515100865, + 1.989869019400556, + 1.8626102971998753, + 1.662410462357551, + 1.4858707762634744, + 1.5414978146312293, + 1.0188599513280487, + 0.9850569449264881, + 1.0204393507967415, + 1.0205250508239634, + 1.2829992310930993, + 1.154290800151939, + 0.9426322946425192, + 1.0716543488653647, + 0.9894490806054449, + 1.578841250620199, + 1.1070575595435153, + 1.2972990747988666, + 0.9592678525865996, + 0.9962053941806114, + 1.1699188512138818, + 2 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1269347057339092" + ], + [ + "04:10", + "1.183315922030218" + ], + [ + "04:19", + "1.020977082138179" + ], + [ + "04:30", + "1.1270128806263786" + ], + [ + "04:40", + "1.1263681399418604" + ], + [ + "04:49", + "1.118083187971494" + ], + [ + "05:00", + "0.9897878521213063" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0818312572990452" + ], + [ + "05:30", + "1.0856437631284126" + ], + [ + "05:40", + "1.0674782599651953" + ], + [ + "05:49", + "0.9811777087669468" + ], + [ + "06:00", + "0.9711832231640755" + ], + [ + "06:10", + "0.9278965616725434" + ], + [ + "06:19", + "0.9720003350418066" + ], + [ + "06:30", + "1.0204068257882464" + ], + [ + "06:40", + "0.979319443115786" + ], + [ + "06:49", + "0.9236513173771458" + ], + [ + "07:00", + "1.0636518999395794" + ], + [ + "07:10", + "1.0369947820775907" + ], + [ + "07:19", + "1.0322528262719026" + ], + [ + "07:30", + "1.0969952307069828" + ], + [ + "07:40", + "1.0676946431776058" + ], + [ + "07:49", + "1.1143865635033674" + ], + [ + "08:00", + "1.2876337841769665" + ], + [ + "08:10", + "1.3136689496109661" + ], + [ + "08:19", + "1.2772364551371465" + ], + [ + "08:30", + "1.4370263327382162" + ], + [ + "08:40", + "1.4327658404691148" + ], + [ + "08:49", + "1.4396187797529865" + ], + [ + "09:00", + "1.5178278489159327" + ], + [ + "09:10", + "1.5821074111865883" + ], + [ + "09:19", + "1.5608309616568052" + ], + [ + "09:30", + "1.6423885280272865" + ], + [ + "09:40", + "1.694180891868229" + ], + [ + "09:49", + "1.6572397848489153" + ], + [ + "10:00", + "1.724148932694864" + ], + [ + "10:10", + "1.7588880309538015" + ], + [ + "10:19", + "1.6944374463986" + ], + [ + "10:30", + "1.8281584389303678" + ], + [ + "10:40", + "1.6978752257051153" + ], + [ + "10:49", + "1.7885907871117392" + ], + [ + "11:00", + "1.785172874724185" + ], + [ + "11:10", + "1.6972809962487765" + ], + [ + "11:19", + "1.7370186055055306" + ], + [ + "11:30", + "1.643384647117527" + ], + [ + "11:40", + "1.5876670396613597" + ], + [ + "11:49", + "1.540245515260227" + ], + [ + "12:00", + "1.4015738911386681" + ], + [ + "12:10", + "1.38500069782615" + ], + [ + "12:19", + "1.3700616797212801" + ], + [ + "12:30", + "1.4860904325363737" + ], + [ + "12:40", + "1.4379497193330755" + ], + [ + "12:49", + "1.5627624395501907" + ], + [ + "13:00", + "1.5665536034050933" + ], + [ + "13:10", + "1.4250217387535715" + ], + [ + "13:19", + "1.389420730974661" + ], + [ + "13:30", + "1.4692161359944884" + ], + [ + "13:40", + "1.510510368421014" + ], + [ + "13:49", + "1.4929088676486868" + ], + [ + "14:00", + "1.4022145318109638" + ], + [ + "14:10", + "1.5066608434640645" + ], + [ + "14:19", + "1.475596846042855" + ], + [ + "14:30", + "1.4286452596518688" + ], + [ + "14:40", + "1.517588063521507" + ], + [ + "14:49", + "1.454962229808327" + ], + [ + "15:00", + "1.4187770443855323" + ], + [ + "15:10", + "1.4923041279693436" + ], + [ + "15:19", + "1.4721483568018694" + ], + [ + "15:30", + "1.5405780380124174" + ], + [ + "15:40", + "1.5405786156971404" + ], + [ + "15:49", + "1.5650692304838636" + ], + [ + "16:00", + "1.5775992744813878" + ], + [ + "16:10", + "1.5529699256339955" + ], + [ + "16:19", + "1.5603210048752216" + ], + [ + "16:30", + "1.6964329823860496" + ], + [ + "16:40", + "1.6879416923480586" + ], + [ + "16:49", + "1.647874652528703" + ], + [ + "17:00", + "1.7121856288918553" + ], + [ + "17:10", + "1.705009825231168" + ], + [ + "17:19", + "1.6404680290839062" + ], + [ + "17:30", + "1.7819281310063246" + ], + [ + "17:40", + "1.744658573505704" + ], + [ + "17:49", + "1.7060713209800857" + ], + [ + "18:00", + "1.7923262148890406" + ], + [ + "18:10", + "1.7305219137173546" + ], + [ + "18:19", + "1.7884340358953115" + ], + [ + "18:30", + "1.8417685175440042" + ], + [ + "18:40", + "1.831620035430378" + ], + [ + "18:49", + "1.8275066290381754" + ], + [ + "19:00", + "1.899166249470119" + ], + [ + "19:10", + "1.898120828051651" + ], + [ + "19:19", + "1.9474756698894329" + ], + [ + "19:30", + "1.9903981909806305" + ], + [ + "19:40", + "1.8731647755064493" + ], + [ + "19:49", + "1.8807270456910439" + ], + [ + "20:00", + "1.9799831598163649" + ], + [ + "20:10", + "1.8634497328857036" + ], + [ + "20:19", + "1.9420122327247837" + ], + [ + "20:30", + "1.8938199876305126" + ], + [ + "20:40", + "1.8238117834343386" + ], + [ + "20:49", + "1.879453717813514" + ], + [ + "21:00", + "1.9089543038172716" + ], + [ + "21:10", + "1.9213488096142068" + ], + [ + "21:19", + "1.8774302945144492" + ], + [ + "21:30", + "1.908203311163047" + ], + [ + "21:40", + "1.8843393162265158" + ], + [ + "21:49", + "1.8698028090230276" + ], + [ + "22:00", + "1.754107235677" + ], + [ + "22:10", + "1.708613320387488" + ], + [ + "22:19", + "1.7711570534561452" + ], + [ + "22:30", + "1.7362999334486722" + ], + [ + "22:40", + "1.6346503257938487" + ], + [ + "22:49", + "1.4816524206328603" + ], + [ + "23:00", + "1.8621148272686927" + ], + [ + "23:10", + "1.9022643786751918" + ], + [ + "23:19", + "1.8658594371091242" + ], + [ + "23:30", + "1.9381818448969377" + ], + [ + "23:40", + "2.0083224374037205" + ], + [ + "23:49", + "1.8550213646131826" + ], + [ + "00:00", + "1.6671212940323261" + ], + [ + "00:10", + "1.4861050729482748" + ], + [ + "00:19", + "1.5708928106253155" + ], + [ + "00:30", + "0.981318405443875" + ], + [ + "00:40", + "0.9806132387425643" + ], + [ + "00:49", + "1.018008916885152" + ], + [ + "01:00", + "1.0203795317595858" + ], + [ + "01:10", + "1.2734835912817806" + ], + [ + "01:19", + "1.1458531615845116" + ], + [ + "01:30", + "0.9262628633421433" + ], + [ + "01:40", + "1.064468057025245" + ], + [ + "01:49", + "0.9814088522019572" + ], + [ + "02:00", + "1.5469866327739488" + ], + [ + "02:10", + "1.1081757494556261" + ], + [ + "02:19", + "1.2881932544432466" + ], + [ + "02:30", + "0.9581428647264629" + ], + [ + "02:40", + "1.20595000680463" + ], + [ + "02:49", + "0.9455494676797531" + ], + [ + "03:00", + "2.1002028742157735" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1269347057339092, + 1.183315922030218, + 1.020977082138179, + 1.1270128806263786, + 1.1263681399418604, + 1.118083187971494, + 0.9897878521213063, + 0.9699007539618653, + 1.0818312572990452, + 1.0856437631284126, + 1.0674782599651953, + 0.9811777087669468, + 0.9711832231640755, + 0.9278965616725434, + 0.9720003350418066, + 1.0204068257882464, + 0.979319443115786, + 0.9236513173771458, + 1.0636518999395794, + 1.0369947820775907, + 1.0322528262719026, + 1.0969952307069828, + 1.0676946431776058, + 1.1143865635033674, + 1.2876337841769665, + 1.3136689496109661, + 1.2772364551371465, + 1.4370263327382162, + 1.4327658404691148, + 1.4396187797529865, + 1.5178278489159327, + 1.5821074111865883, + 1.5608309616568052, + 1.6423885280272865, + 1.694180891868229, + 1.6572397848489153, + 1.724148932694864, + 1.7588880309538015, + 1.6944374463986, + 1.8281584389303678, + 1.6978752257051153, + 1.7885907871117392, + 1.785172874724185, + 1.6972809962487765, + 1.7370186055055306, + 1.643384647117527, + 1.5876670396613597, + 1.540245515260227, + 1.4015738911386681, + 1.38500069782615, + 1.3700616797212801, + 1.4860904325363737, + 1.4379497193330755, + 1.5627624395501907, + 1.5665536034050933, + 1.4250217387535715, + 1.389420730974661, + 1.4692161359944884, + 1.510510368421014, + 1.4929088676486868, + 1.4022145318109638, + 1.5066608434640645, + 1.475596846042855, + 1.4286452596518688, + 1.517588063521507, + 1.454962229808327, + 1.4187770443855323, + 1.4923041279693436, + 1.4721483568018694, + 1.5405780380124174, + 1.5405786156971404, + 1.5650692304838636, + 1.5775992744813878, + 1.5529699256339955, + 1.5603210048752216, + 1.6964329823860496, + 1.6879416923480586, + 1.647874652528703, + 1.7121856288918553, + 1.705009825231168, + 1.6404680290839062, + 1.7819281310063246, + 1.744658573505704, + 1.7060713209800857, + 1.7923262148890406, + 1.7305219137173546, + 1.7884340358953115, + 1.8417685175440042, + 1.831620035430378, + 1.8275066290381754, + 1.899166249470119, + 1.898120828051651, + 1.9474756698894329, + 1.9903981909806305, + 1.8731647755064493, + 1.8807270456910439, + 1.9799831598163649, + 1.8634497328857036, + 1.9420122327247837, + 1.8938199876305126, + 1.8238117834343386, + 1.879453717813514, + 1.9089543038172716, + 1.9213488096142068, + 1.8774302945144492, + 1.908203311163047, + 1.8843393162265158, + 1.8698028090230276, + 1.754107235677, + 1.708613320387488, + 1.7711570534561452, + 1.7362999334486722, + 1.6346503257938487, + 1.4816524206328603, + 1.8621148272686927, + 1.9022643786751918, + 1.8658594371091242, + 1.9381818448969377, + 2.0083224374037205, + 1.8550213646131826, + 1.6671212940323261, + 1.4861050729482748, + 1.5708928106253155, + 0.981318405443875, + 0.9806132387425643, + 1.018008916885152, + 1.0203795317595858, + 1.2734835912817806, + 1.1458531615845116, + 0.9262628633421433, + 1.064468057025245, + 0.9814088522019572, + 1.5469866327739488, + 1.1081757494556261, + 1.2881932544432466, + 0.9581428647264629, + 1.20595000680463, + 0.9455494676797531, + 2.1002028742157735 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average occupancy by time bin (OD_dist-weighted) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Average occupancy" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1269347057339092" + ], + [ + "04:10", + "1.183315922030218" + ], + [ + "04:19", + "1.020977082138179" + ], + [ + "04:30", + "1.1270128806263786" + ], + [ + "04:40", + "1.1263681399418604" + ], + [ + "04:49", + "1.118083187971494" + ], + [ + "05:00", + "0.9897878521213063" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0818312572990452" + ], + [ + "05:30", + "1.0856437631284126" + ], + [ + "05:40", + "1.0674782599651953" + ], + [ + "05:49", + "0.9811777087669468" + ], + [ + "06:00", + "0.9688417647786189" + ], + [ + "06:10", + "0.9251838620543567" + ], + [ + "06:19", + "0.9683619696413023" + ], + [ + "06:30", + "1.0209246384536417" + ], + [ + "06:40", + "0.9779619172742089" + ], + [ + "06:49", + "0.9256885449852714" + ], + [ + "07:00", + "1.061987673659908" + ], + [ + "07:10", + "1.036518467324717" + ], + [ + "07:19", + "1.0321799612950202" + ], + [ + "07:30", + "1.0951012329242487" + ], + [ + "07:40", + "1.0645670515151604" + ], + [ + "07:49", + "1.1199188585361046" + ], + [ + "08:00", + "1.296708106715972" + ], + [ + "08:10", + "1.2910624251454585" + ], + [ + "08:19", + "1.2848943927871044" + ], + [ + "08:30", + "1.442780474793665" + ], + [ + "08:40", + "1.4349704104992251" + ], + [ + "08:49", + "1.4401307976454372" + ], + [ + "09:00", + "1.5087555110510038" + ], + [ + "09:10", + "1.5891807749918847" + ], + [ + "09:19", + "1.5555066872545613" + ], + [ + "09:30", + "1.6482125215395373" + ], + [ + "09:40", + "1.6927817938564795" + ], + [ + "09:49", + "1.6642632986145796" + ], + [ + "10:00", + "1.7255967433933863" + ], + [ + "10:10", + "1.7615758260972627" + ], + [ + "10:19", + "1.6954755490847238" + ], + [ + "10:30", + "1.8345978388881383" + ], + [ + "10:40", + "1.6912542690332335" + ], + [ + "10:49", + "1.7828530739005293" + ], + [ + "11:00", + "1.7882051207781073" + ], + [ + "11:10", + "1.6964001929007024" + ], + [ + "11:19", + "1.7344908755574489" + ], + [ + "11:30", + "1.6457586680994094" + ], + [ + "11:40", + "1.5859841301566848" + ], + [ + "11:49", + "1.5376239137665637" + ], + [ + "12:00", + "1.406096761351721" + ], + [ + "12:10", + "1.3849373042627509" + ], + [ + "12:19", + "1.368628588171102" + ], + [ + "12:30", + "1.4867019672825126" + ], + [ + "12:40", + "1.438708240345497" + ], + [ + "12:49", + "1.5602385095048719" + ], + [ + "13:00", + "1.5669961325676882" + ], + [ + "13:10", + "1.42494421695802" + ], + [ + "13:19", + "1.3873811114046888" + ], + [ + "13:30", + "1.4680296664950658" + ], + [ + "13:40", + "1.511599784000429" + ], + [ + "13:49", + "1.4935745743916866" + ], + [ + "14:00", + "1.4060332951717749" + ], + [ + "14:10", + "1.5017317613473715" + ], + [ + "14:19", + "1.4703927740714626" + ], + [ + "14:30", + "1.4371220011099988" + ], + [ + "14:40", + "1.5068676690735445" + ], + [ + "14:49", + "1.4478117357821705" + ], + [ + "15:00", + "1.4196435727071088" + ], + [ + "15:10", + "1.4903427569533385" + ], + [ + "15:19", + "1.4698244938793883" + ], + [ + "15:30", + "1.5505846863487387" + ], + [ + "15:40", + "1.533519879787878" + ], + [ + "15:49", + "1.5667786069174539" + ], + [ + "16:00", + "1.5778047809114366" + ], + [ + "16:10", + "1.5555200473410558" + ], + [ + "16:19", + "1.564869119125043" + ], + [ + "16:30", + "1.698682981767884" + ], + [ + "16:40", + "1.6872971414285893" + ], + [ + "16:49", + "1.6493481770759535" + ], + [ + "17:00", + "1.7060311521985225" + ], + [ + "17:10", + "1.7137124903923262" + ], + [ + "17:19", + "1.6376606553417676" + ], + [ + "17:30", + "1.7895981600845021" + ], + [ + "17:40", + "1.7412522178219008" + ], + [ + "17:49", + "1.715352448907016" + ], + [ + "18:00", + "1.7857796975493536" + ], + [ + "18:10", + "1.7331170595870433" + ], + [ + "18:19", + "1.791502017081316" + ], + [ + "18:30", + "1.8519412914338227" + ], + [ + "18:40", + "1.8291994298199865" + ], + [ + "18:49", + "1.823260530908403" + ], + [ + "19:00", + "1.8865026719965499" + ], + [ + "19:10", + "1.901366011141666" + ], + [ + "19:19", + "1.938707110039195" + ], + [ + "19:30", + "1.97263533191086" + ], + [ + "19:40", + "1.8903750453346955" + ], + [ + "19:49", + "1.8792997080904943" + ], + [ + "20:00", + "1.9818921649480923" + ], + [ + "20:10", + "1.879964175983358" + ], + [ + "20:19", + "1.9345212266640923" + ], + [ + "20:30", + "1.9041762738192747" + ], + [ + "20:40", + "1.8202001845845146" + ], + [ + "20:49", + "1.8602091573942137" + ], + [ + "21:00", + "1.9046104065816931" + ], + [ + "21:10", + "1.9458201089413423" + ], + [ + "21:19", + "1.8657575666693111" + ], + [ + "21:30", + "1.9123086016829915" + ], + [ + "21:40", + "1.890408253433916" + ], + [ + "21:49", + "1.860057532127748" + ], + [ + "22:00", + "1.768405111248504" + ], + [ + "22:10", + "1.7228262662065983" + ], + [ + "22:19", + "1.7600741446233072" + ], + [ + "22:30", + "1.7351119281990313" + ], + [ + "22:40", + "1.627579637809477" + ], + [ + "22:49", + "1.5026127534180285" + ], + [ + "23:00", + "1.8668294834726493" + ], + [ + "23:10", + "1.921586028950252" + ], + [ + "23:19", + "1.859944045343084" + ], + [ + "23:30", + "1.9421573552577784" + ], + [ + "23:40", + "1.9996994539344555" + ], + [ + "23:49", + "1.8589087984770138" + ], + [ + "00:00", + "1.6627462508277173" + ], + [ + "00:10", + "1.4912009784351483" + ], + [ + "00:19", + "1.5628532968400852" + ], + [ + "00:30", + "0.9781458275090296" + ], + [ + "00:40", + "0.9812069092694643" + ], + [ + "00:49", + "1.0182492746801393" + ], + [ + "01:00", + "1.0080667767153983" + ], + [ + "01:10", + "1.1416978645073563" + ], + [ + "01:19", + "1.1811130366714149" + ], + [ + "01:30", + "1.0561868544820934" + ], + [ + "01:40", + "1.0768999151158571" + ], + [ + "01:49", + "0.9842344139042237" + ], + [ + "02:00", + "1.5838487306115105" + ], + [ + "02:10", + "1.1065686921529496" + ], + [ + "02:19", + "1.2924803345972495" + ], + [ + "02:30", + "0.9596692985545329" + ], + [ + "02:40", + "0.9956463783304861" + ], + [ + "02:49", + "1.17815968919917" + ], + [ + "03:00", + "2.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1269347057339092, + 1.183315922030218, + 1.020977082138179, + 1.1270128806263786, + 1.1263681399418604, + 1.118083187971494, + 0.9897878521213063, + 0.9699007539618653, + 1.0818312572990452, + 1.0856437631284126, + 1.0674782599651953, + 0.9811777087669468, + 0.9688417647786189, + 0.9251838620543567, + 0.9683619696413023, + 1.0209246384536417, + 0.9779619172742089, + 0.9256885449852714, + 1.061987673659908, + 1.036518467324717, + 1.0321799612950202, + 1.0951012329242487, + 1.0645670515151604, + 1.1199188585361046, + 1.296708106715972, + 1.2910624251454585, + 1.2848943927871044, + 1.442780474793665, + 1.4349704104992251, + 1.4401307976454372, + 1.5087555110510038, + 1.5891807749918847, + 1.5555066872545613, + 1.6482125215395373, + 1.6927817938564795, + 1.6642632986145796, + 1.7255967433933863, + 1.7615758260972627, + 1.6954755490847238, + 1.8345978388881383, + 1.6912542690332335, + 1.7828530739005293, + 1.7882051207781073, + 1.6964001929007024, + 1.7344908755574489, + 1.6457586680994094, + 1.5859841301566848, + 1.5376239137665637, + 1.406096761351721, + 1.3849373042627509, + 1.368628588171102, + 1.4867019672825126, + 1.438708240345497, + 1.5602385095048719, + 1.5669961325676882, + 1.42494421695802, + 1.3873811114046888, + 1.4680296664950658, + 1.511599784000429, + 1.4935745743916866, + 1.4060332951717749, + 1.5017317613473715, + 1.4703927740714626, + 1.4371220011099988, + 1.5068676690735445, + 1.4478117357821705, + 1.4196435727071088, + 1.4903427569533385, + 1.4698244938793883, + 1.5505846863487387, + 1.533519879787878, + 1.5667786069174539, + 1.5778047809114366, + 1.5555200473410558, + 1.564869119125043, + 1.698682981767884, + 1.6872971414285893, + 1.6493481770759535, + 1.7060311521985225, + 1.7137124903923262, + 1.6376606553417676, + 1.7895981600845021, + 1.7412522178219008, + 1.715352448907016, + 1.7857796975493536, + 1.7331170595870433, + 1.791502017081316, + 1.8519412914338227, + 1.8291994298199865, + 1.823260530908403, + 1.8865026719965499, + 1.901366011141666, + 1.938707110039195, + 1.97263533191086, + 1.8903750453346955, + 1.8792997080904943, + 1.9818921649480923, + 1.879964175983358, + 1.9345212266640923, + 1.9041762738192747, + 1.8202001845845146, + 1.8602091573942137, + 1.9046104065816931, + 1.9458201089413423, + 1.8657575666693111, + 1.9123086016829915, + 1.890408253433916, + 1.860057532127748, + 1.768405111248504, + 1.7228262662065983, + 1.7600741446233072, + 1.7351119281990313, + 1.627579637809477, + 1.5026127534180285, + 1.8668294834726493, + 1.921586028950252, + 1.859944045343084, + 1.9421573552577784, + 1.9996994539344555, + 1.8589087984770138, + 1.6627462508277173, + 1.4912009784351483, + 1.5628532968400852, + 0.9781458275090296, + 0.9812069092694643, + 1.0182492746801393, + 1.0080667767153983, + 1.1416978645073563, + 1.1811130366714149, + 1.0561868544820934, + 1.0768999151158571, + 0.9842344139042237, + 1.5838487306115105, + 1.1065686921529496, + 1.2924803345972495, + 0.9596692985545329, + 0.9956463783304861, + 1.17815968919917, + 2 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.4735682599548785" + ], + [ + "03:10", + "1.1627080364349767" + ], + [ + "03:19", + "1.2465504888940537" + ], + [ + "03:30", + "1.4053565113133744" + ], + [ + "03:40", + "1.2271221162888657" + ], + [ + "03:49", + "1.1191358383786965" + ], + [ + "04:00", + "1.0687282447075008" + ], + [ + "04:10", + "1.260806888906587" + ], + [ + "04:19", + "1.0538831636839776" + ], + [ + "04:30", + "1.0350438003366582" + ], + [ + "04:40", + "1.2088289335328226" + ], + [ + "04:49", + "1.2417654995474776" + ], + [ + "05:00", + "1.0501726795940944" + ], + [ + "05:10", + "1.0632910912633315" + ], + [ + "05:19", + "0.978560955856779" + ], + [ + "05:30", + "1.033348615849195" + ], + [ + "05:40", + "1.0569710247148674" + ], + [ + "05:49", + "1.0457797945656429" + ], + [ + "06:00", + "0.9864900296866216" + ], + [ + "06:10", + "0.9640847806336262" + ], + [ + "06:19", + "0.9889258453706244" + ], + [ + "06:30", + "0.9695942360407832" + ], + [ + "06:40", + "1.0056338980205985" + ], + [ + "06:49", + "0.9698900964725339" + ], + [ + "07:00", + "1.0445785792367646" + ], + [ + "07:10", + "1.0898839556952493" + ], + [ + "07:19", + "1.0289550497461877" + ], + [ + "07:30", + "1.0878124361464963" + ], + [ + "07:40", + "1.084683834684128" + ], + [ + "07:49", + "1.1329150126338705" + ], + [ + "08:00", + "1.2800355559697736" + ], + [ + "08:10", + "1.337034933403239" + ], + [ + "08:19", + "1.3819699457109595" + ], + [ + "08:30", + "1.5357075637276179" + ], + [ + "08:40", + "1.5173312313097327" + ], + [ + "08:49", + "1.555867077674955" + ], + [ + "09:00", + "1.6565394114155505" + ], + [ + "09:10", + "1.5932236664592245" + ], + [ + "09:19", + "1.6836534864917674" + ], + [ + "09:30", + "1.8572112400574607" + ], + [ + "09:40", + "1.8206871463679144" + ], + [ + "09:49", + "1.9245828914340635" + ], + [ + "10:00", + "1.8668829652186454" + ], + [ + "10:10", + "1.8201128160191045" + ], + [ + "10:19", + "1.978268682426275" + ], + [ + "10:30", + "1.8701458370455029" + ], + [ + "10:40", + "2.094771812403172" + ], + [ + "10:49", + "1.9264996391243223" + ], + [ + "11:00", + "2.0115241697801376" + ], + [ + "11:10", + "1.8890528447297328" + ], + [ + "11:19", + "1.8718602822932393" + ], + [ + "11:30", + "1.729244934706874" + ], + [ + "11:40", + "1.7023371519765633" + ], + [ + "11:49", + "1.6852820872051961" + ], + [ + "12:00", + "1.4877141262980942" + ], + [ + "12:10", + "1.4041030359272098" + ], + [ + "12:19", + "1.3916597772096988" + ], + [ + "12:30", + "1.5800211518972136" + ], + [ + "12:40", + "1.5396355244035203" + ], + [ + "12:49", + "1.7364645113452641" + ], + [ + "13:00", + "1.4859850478550898" + ], + [ + "13:10", + "1.4481423400894637" + ], + [ + "13:19", + "1.5463817717064134" + ], + [ + "13:30", + "1.5411816502228" + ], + [ + "13:40", + "1.606190140708574" + ], + [ + "13:49", + "1.5469754366518655" + ], + [ + "14:00", + "1.458988393457431" + ], + [ + "14:10", + "1.4792725095894197" + ], + [ + "14:19", + "1.5973796659088193" + ], + [ + "14:30", + "1.4963646438377962" + ], + [ + "14:40", + "1.5870088246759642" + ], + [ + "14:49", + "1.525772785332651" + ], + [ + "15:00", + "1.5845486996291345" + ], + [ + "15:10", + "1.4641870415507012" + ], + [ + "15:19", + "1.5979920421858518" + ], + [ + "15:30", + "1.6262551940346897" + ], + [ + "15:40", + "1.6183069940118966" + ], + [ + "15:49", + "1.6383451963939863" + ], + [ + "16:00", + "1.6666069805711012" + ], + [ + "16:10", + "1.7036955309428907" + ], + [ + "16:19", + "1.6157148544427709" + ], + [ + "16:30", + "1.8381354147209306" + ], + [ + "16:40", + "1.7345567482082735" + ], + [ + "16:49", + "1.7784448382045" + ], + [ + "17:00", + "1.8288072447417083" + ], + [ + "17:10", + "1.7667539680301856" + ], + [ + "17:19", + "1.8130468627633731" + ], + [ + "17:30", + "1.8767733170777265" + ], + [ + "17:40", + "1.9268140521293229" + ], + [ + "17:49", + "1.9199828741229807" + ], + [ + "18:00", + "1.8954803494948487" + ], + [ + "18:10", + "1.9145866788871222" + ], + [ + "18:19", + "1.903699092110373" + ], + [ + "18:30", + "2.0490404031354275" + ], + [ + "18:40", + "1.9828850314147952" + ], + [ + "18:49", + "1.9860499666788953" + ], + [ + "19:00", + "2.0802926632169596" + ], + [ + "19:10", + "2.146242781855394" + ], + [ + "19:19", + "2.0962429868217276" + ], + [ + "19:30", + "2.2321383203588465" + ], + [ + "19:40", + "2.007982825755445" + ], + [ + "19:49", + "2.119825115336382" + ], + [ + "20:00", + "2.1996567854886178" + ], + [ + "20:10", + "2.0895753135488246" + ], + [ + "20:19", + "1.9900030676360159" + ], + [ + "20:30", + "2.1176693744781003" + ], + [ + "20:40", + "1.9634044936072348" + ], + [ + "20:49", + "2.075551515661376" + ], + [ + "21:00", + "2.1192695963571753" + ], + [ + "21:10", + "2.1736824798759424" + ], + [ + "21:19", + "2.04861481796552" + ], + [ + "21:30", + "2.1103086982002024" + ], + [ + "21:40", + "2.0678824814407175" + ], + [ + "21:49", + "2.0673722653872346" + ], + [ + "22:00", + "1.8563407736797657" + ], + [ + "22:10", + "1.9093581361218963" + ], + [ + "22:19", + "2.031922690457993" + ], + [ + "22:30", + "1.8602962519389283" + ], + [ + "22:40", + "1.6780076181083035" + ], + [ + "22:49", + "1.6713634455842434" + ], + [ + "23:00", + "2.105295594892128" + ], + [ + "23:10", + "2.117148895186397" + ], + [ + "23:19", + "1.9808076671988857" + ], + [ + "23:30", + "2.151492533493434" + ], + [ + "23:40", + "2.1221418327576953" + ], + [ + "23:49", + "2.1486143696321593" + ], + [ + "00:00", + "1.7302448546099445" + ], + [ + "00:10", + "1.5080911231066974" + ], + [ + "00:19", + "1.5723201346514966" + ], + [ + "00:30", + "0.9780203191886598" + ], + [ + "00:40", + "0.9803448116902195" + ], + [ + "00:49", + "1.0309986371408735" + ], + [ + "01:00", + "1.0205067778089834" + ], + [ + "01:10", + "1.5608210214898168" + ], + [ + "01:19", + "1.0026579582359862" + ], + [ + "01:30", + "0.9993831483729843" + ], + [ + "01:40", + "1.4112562624743754" + ], + [ + "01:49", + "1.0383126327558878" + ], + [ + "02:00", + "0.908494451252358" + ], + [ + "02:10", + "1.4455518369326954" + ], + [ + "02:19", + "1.2918471070136617" + ], + [ + "02:30", + "1.0367842711574613" + ], + [ + "02:40", + "1.4442764402848374" + ], + [ + "02:49", + "0.8972925495822492" + ], + [ + "03:00", + "1.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.4735682599548785, + 1.1627080364349767, + 1.2465504888940537, + 1.4053565113133744, + 1.2271221162888657, + 1.1191358383786965, + 1.0687282447075008, + 1.260806888906587, + 1.0538831636839776, + 1.0350438003366582, + 1.2088289335328226, + 1.2417654995474776, + 1.0501726795940944, + 1.0632910912633315, + 0.978560955856779, + 1.033348615849195, + 1.0569710247148674, + 1.0457797945656429, + 0.9864900296866216, + 0.9640847806336262, + 0.9889258453706244, + 0.9695942360407832, + 1.0056338980205985, + 0.9698900964725339, + 1.0445785792367646, + 1.0898839556952493, + 1.0289550497461877, + 1.0878124361464963, + 1.084683834684128, + 1.1329150126338705, + 1.2800355559697736, + 1.337034933403239, + 1.3819699457109595, + 1.5357075637276179, + 1.5173312313097327, + 1.555867077674955, + 1.6565394114155505, + 1.5932236664592245, + 1.6836534864917674, + 1.8572112400574607, + 1.8206871463679144, + 1.9245828914340635, + 1.8668829652186454, + 1.8201128160191045, + 1.978268682426275, + 1.8701458370455029, + 2.094771812403172, + 1.9264996391243223, + 2.0115241697801376, + 1.8890528447297328, + 1.8718602822932393, + 1.729244934706874, + 1.7023371519765633, + 1.6852820872051961, + 1.4877141262980942, + 1.4041030359272098, + 1.3916597772096988, + 1.5800211518972136, + 1.5396355244035203, + 1.7364645113452641, + 1.4859850478550898, + 1.4481423400894637, + 1.5463817717064134, + 1.5411816502228, + 1.606190140708574, + 1.5469754366518655, + 1.458988393457431, + 1.4792725095894197, + 1.5973796659088193, + 1.4963646438377962, + 1.5870088246759642, + 1.525772785332651, + 1.5845486996291345, + 1.4641870415507012, + 1.5979920421858518, + 1.6262551940346897, + 1.6183069940118966, + 1.6383451963939863, + 1.6666069805711012, + 1.7036955309428907, + 1.6157148544427709, + 1.8381354147209306, + 1.7345567482082735, + 1.7784448382045, + 1.8288072447417083, + 1.7667539680301856, + 1.8130468627633731, + 1.8767733170777265, + 1.9268140521293229, + 1.9199828741229807, + 1.8954803494948487, + 1.9145866788871222, + 1.903699092110373, + 2.0490404031354275, + 1.9828850314147952, + 1.9860499666788953, + 2.0802926632169596, + 2.146242781855394, + 2.0962429868217276, + 2.2321383203588465, + 2.007982825755445, + 2.119825115336382, + 2.1996567854886178, + 2.0895753135488246, + 1.9900030676360159, + 2.1176693744781003, + 1.9634044936072348, + 2.075551515661376, + 2.1192695963571753, + 2.1736824798759424, + 2.04861481796552, + 2.1103086982002024, + 2.0678824814407175, + 2.0673722653872346, + 1.8563407736797657, + 1.9093581361218963, + 2.031922690457993, + 1.8602962519389283, + 1.6780076181083035, + 1.6713634455842434, + 2.105295594892128, + 2.117148895186397, + 1.9808076671988857, + 2.151492533493434, + 2.1221418327576953, + 2.1486143696321593, + 1.7302448546099445, + 1.5080911231066974, + 1.5723201346514966, + 0.9780203191886598, + 0.9803448116902195, + 1.0309986371408735, + 1.0205067778089834, + 1.5608210214898168, + 1.0026579582359862, + 0.9993831483729843, + 1.4112562624743754, + 1.0383126327558878, + 0.908494451252358, + 1.4455518369326954, + 1.2918471070136617, + 1.0367842711574613, + 1.4442764402848374, + 0.8972925495822492, + 1 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.497537774500297" + ], + [ + "03:10", + "1.1817928504857826" + ], + [ + "03:19", + "1.2766435346710838" + ], + [ + "03:30", + "1.3323730830628802" + ], + [ + "03:40", + "1.2057317103003986" + ], + [ + "03:49", + "1.160999464547712" + ], + [ + "04:00", + "1.049300805091383" + ], + [ + "04:10", + "1.340708981564071" + ], + [ + "04:19", + "0.9980044360629458" + ], + [ + "04:30", + "1.1891718399153004" + ], + [ + "04:40", + "1.094050981581155" + ], + [ + "04:49", + "0.9998950879406915" + ], + [ + "05:00", + "1.1092515268133802" + ], + [ + "05:10", + "1.002363745727555" + ], + [ + "05:19", + "0.9710674217695762" + ], + [ + "05:30", + "1.092025457125229" + ], + [ + "05:40", + "1.0330506546073885" + ], + [ + "05:49", + "1.0971971179371407" + ], + [ + "06:00", + "0.9602957436791891" + ], + [ + "06:10", + "0.9722331126133861" + ], + [ + "06:19", + "0.98928598584624" + ], + [ + "06:30", + "0.9610328940202467" + ], + [ + "06:40", + "1.0074415021688572" + ], + [ + "06:49", + "0.9816883189436112" + ], + [ + "07:00", + "1.0418757560408571" + ], + [ + "07:10", + "1.114364868545904" + ], + [ + "07:19", + "1.0302412614753498" + ], + [ + "07:30", + "1.1209060092778642" + ], + [ + "07:40", + "1.0615890405714081" + ], + [ + "07:49", + "1.1394676793979195" + ], + [ + "08:00", + "1.3331175965201931" + ], + [ + "08:10", + "1.383132526481189" + ], + [ + "08:19", + "1.3920273196945023" + ], + [ + "08:30", + "1.5921645099770985" + ], + [ + "08:40", + "1.5972915570524246" + ], + [ + "08:49", + "1.5431510485175166" + ], + [ + "09:00", + "1.6730688601553674" + ], + [ + "09:10", + "1.6159325900088517" + ], + [ + "09:19", + "1.7756006257057177" + ], + [ + "09:30", + "1.8731181408066673" + ], + [ + "09:40", + "1.9013102239537858" + ], + [ + "09:49", + "2.0107132692922303" + ], + [ + "10:00", + "1.9829468802025634" + ], + [ + "10:10", + "1.9249198401075907" + ], + [ + "10:19", + "2.0338254692443405" + ], + [ + "10:30", + "1.9902002867033752" + ], + [ + "10:40", + "2.1390484150075415" + ], + [ + "10:49", + "2.0708125058932088" + ], + [ + "11:00", + "2.036981208360699" + ], + [ + "11:10", + "1.9378609678946725" + ], + [ + "11:19", + "1.9837868780893626" + ], + [ + "11:30", + "1.702746697453721" + ], + [ + "11:40", + "1.7952352227301756" + ], + [ + "11:49", + "1.764085981467898" + ], + [ + "12:00", + "1.4978266055958152" + ], + [ + "12:10", + "1.3771843817207152" + ], + [ + "12:19", + "1.4519898191200091" + ], + [ + "12:30", + "1.650497814573258" + ], + [ + "12:40", + "1.6053194557822068" + ], + [ + "12:49", + "1.6684821611550504" + ], + [ + "13:00", + "1.5366142273036" + ], + [ + "13:10", + "1.4973408224716749" + ], + [ + "13:19", + "1.5352040336322414" + ], + [ + "13:30", + "1.549701728970609" + ], + [ + "13:40", + "1.6619580239184026" + ], + [ + "13:49", + "1.5817425660545623" + ], + [ + "14:00", + "1.5159611699739863" + ], + [ + "14:10", + "1.6222118870015005" + ], + [ + "14:19", + "1.5554666992132227" + ], + [ + "14:30", + "1.5464850855084031" + ], + [ + "14:40", + "1.5989472066590777" + ], + [ + "14:49", + "1.612446848864446" + ], + [ + "15:00", + "1.5120213872839574" + ], + [ + "15:10", + "1.663481010338613" + ], + [ + "15:19", + "1.5434567676510342" + ], + [ + "15:30", + "1.7240328327367505" + ], + [ + "15:40", + "1.6184859738478838" + ], + [ + "15:49", + "1.706549683695357" + ], + [ + "16:00", + "1.6786078411948302" + ], + [ + "16:10", + "1.8041224690606381" + ], + [ + "16:19", + "1.7426858812796824" + ], + [ + "16:30", + "1.8433818574196936" + ], + [ + "16:40", + "1.8093681711198824" + ], + [ + "16:49", + "1.8335513239856847" + ], + [ + "17:00", + "1.991148810137012" + ], + [ + "17:10", + "1.8685148937233738" + ], + [ + "17:19", + "1.8732634078255235" + ], + [ + "17:30", + "1.9535946585793005" + ], + [ + "17:40", + "2.091152238534487" + ], + [ + "17:49", + "1.9611691523232846" + ], + [ + "18:00", + "1.9591293278643156" + ], + [ + "18:10", + "2.0718475166968764" + ], + [ + "18:19", + "1.8811475712341292" + ], + [ + "18:30", + "2.163499257948448" + ], + [ + "18:40", + "2.08224191013266" + ], + [ + "18:49", + "2.126871316726106" + ], + [ + "19:00", + "2.186251747319234" + ], + [ + "19:10", + "2.25383663668643" + ], + [ + "19:19", + "2.192869120323812" + ], + [ + "19:30", + "2.328162457214567" + ], + [ + "19:40", + "2.1420354469755556" + ], + [ + "19:49", + "2.233006574678219" + ], + [ + "20:00", + "2.2920777185621515" + ], + [ + "20:10", + "2.147110377440079" + ], + [ + "20:19", + "2.178193001898934" + ], + [ + "20:30", + "2.2056864094783055" + ], + [ + "20:40", + "2.1932638109067297" + ], + [ + "20:49", + "2.0714948939280897" + ], + [ + "21:00", + "2.1879722277570246" + ], + [ + "21:10", + "2.2275056080547224" + ], + [ + "21:19", + "2.2150691559402094" + ], + [ + "21:30", + "2.1946503158534165" + ], + [ + "21:40", + "2.2836215269865794" + ], + [ + "21:49", + "2.1084921915662163" + ], + [ + "22:00", + "1.8780189250497412" + ], + [ + "22:10", + "1.9686565917347358" + ], + [ + "22:19", + "2.1807647261134733" + ], + [ + "22:30", + "1.8432839001983967" + ], + [ + "22:40", + "1.8053180054692333" + ], + [ + "22:49", + "1.7132558689555086" + ], + [ + "23:00", + "2.3185084925599697" + ], + [ + "23:10", + "2.2995215208836886" + ], + [ + "23:19", + "2.072716460295491" + ], + [ + "23:30", + "2.273112626186331" + ], + [ + "23:40", + "2.2719658042132598" + ], + [ + "23:49", + "2.22433043749901" + ], + [ + "00:00", + "1.6923947969899042" + ], + [ + "00:10", + "1.6380023318396586" + ], + [ + "00:19", + "1.5972156613208333" + ], + [ + "00:30", + "0.9479027624190814" + ], + [ + "00:40", + "1.0282400677999928" + ], + [ + "00:49", + "1.0238436839055907" + ], + [ + "01:00", + "1.054060856966717" + ], + [ + "01:10", + "1.4741204591681352" + ], + [ + "01:19", + "1.0074061577729512" + ], + [ + "01:30", + "0.9820513065318871" + ], + [ + "01:40", + "1.3648845097964393" + ], + [ + "01:49", + "0.9492511398107996" + ], + [ + "02:00", + "1.3120941072185168" + ], + [ + "02:10", + "1.2053603049820807" + ], + [ + "02:19", + "1.2113281986788214" + ], + [ + "02:30", + "1.2241246301395452" + ], + [ + "02:40", + "1.0474702735957315" + ], + [ + "02:49", + "1.2889616109419222" + ], + [ + "03:00", + "1.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.497537774500297, + 1.1817928504857826, + 1.2766435346710838, + 1.3323730830628802, + 1.2057317103003986, + 1.160999464547712, + 1.049300805091383, + 1.340708981564071, + 0.9980044360629458, + 1.1891718399153004, + 1.094050981581155, + 0.9998950879406915, + 1.1092515268133802, + 1.002363745727555, + 0.9710674217695762, + 1.092025457125229, + 1.0330506546073885, + 1.0971971179371407, + 0.9602957436791891, + 0.9722331126133861, + 0.98928598584624, + 0.9610328940202467, + 1.0074415021688572, + 0.9816883189436112, + 1.0418757560408571, + 1.114364868545904, + 1.0302412614753498, + 1.1209060092778642, + 1.0615890405714081, + 1.1394676793979195, + 1.3331175965201931, + 1.383132526481189, + 1.3920273196945023, + 1.5921645099770985, + 1.5972915570524246, + 1.5431510485175166, + 1.6730688601553674, + 1.6159325900088517, + 1.7756006257057177, + 1.8731181408066673, + 1.9013102239537858, + 2.0107132692922303, + 1.9829468802025634, + 1.9249198401075907, + 2.0338254692443405, + 1.9902002867033752, + 2.1390484150075415, + 2.0708125058932088, + 2.036981208360699, + 1.9378609678946725, + 1.9837868780893626, + 1.702746697453721, + 1.7952352227301756, + 1.764085981467898, + 1.4978266055958152, + 1.3771843817207152, + 1.4519898191200091, + 1.650497814573258, + 1.6053194557822068, + 1.6684821611550504, + 1.5366142273036, + 1.4973408224716749, + 1.5352040336322414, + 1.549701728970609, + 1.6619580239184026, + 1.5817425660545623, + 1.5159611699739863, + 1.6222118870015005, + 1.5554666992132227, + 1.5464850855084031, + 1.5989472066590777, + 1.612446848864446, + 1.5120213872839574, + 1.663481010338613, + 1.5434567676510342, + 1.7240328327367505, + 1.6184859738478838, + 1.706549683695357, + 1.6786078411948302, + 1.8041224690606381, + 1.7426858812796824, + 1.8433818574196936, + 1.8093681711198824, + 1.8335513239856847, + 1.991148810137012, + 1.8685148937233738, + 1.8732634078255235, + 1.9535946585793005, + 2.091152238534487, + 1.9611691523232846, + 1.9591293278643156, + 2.0718475166968764, + 1.8811475712341292, + 2.163499257948448, + 2.08224191013266, + 2.126871316726106, + 2.186251747319234, + 2.25383663668643, + 2.192869120323812, + 2.328162457214567, + 2.1420354469755556, + 2.233006574678219, + 2.2920777185621515, + 2.147110377440079, + 2.178193001898934, + 2.2056864094783055, + 2.1932638109067297, + 2.0714948939280897, + 2.1879722277570246, + 2.2275056080547224, + 2.2150691559402094, + 2.1946503158534165, + 2.2836215269865794, + 2.1084921915662163, + 1.8780189250497412, + 1.9686565917347358, + 2.1807647261134733, + 1.8432839001983967, + 1.8053180054692333, + 1.7132558689555086, + 2.3185084925599697, + 2.2995215208836886, + 2.072716460295491, + 2.273112626186331, + 2.2719658042132598, + 2.22433043749901, + 1.6923947969899042, + 1.6380023318396586, + 1.5972156613208333, + 0.9479027624190814, + 1.0282400677999928, + 1.0238436839055907, + 1.054060856966717, + 1.4741204591681352, + 1.0074061577729512, + 0.9820513065318871, + 1.3648845097964393, + 0.9492511398107996, + 1.3120941072185168, + 1.2053603049820807, + 1.2113281986788214, + 1.2241246301395452, + 1.0474702735957315, + 1.2889616109419222, + 1 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average occupancy by time bin (OD_dist-weighted) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Average occupancy" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "1.2539910618250936" + ], + [ + "03:10", + "1.0856753728996447" + ], + [ + "03:19", + "1.4506045788554864" + ], + [ + "03:30", + "1.39893283658915" + ], + [ + "03:40", + "1.1213347276884802" + ], + [ + "03:49", + "1.0548218043388635" + ], + [ + "04:00", + "1.1269347057339092" + ], + [ + "04:10", + "1.183315922030218" + ], + [ + "04:19", + "1.020977082138179" + ], + [ + "04:30", + "1.1270128806263786" + ], + [ + "04:40", + "1.1263681399418604" + ], + [ + "04:49", + "1.118083187971494" + ], + [ + "05:00", + "0.9897878521213063" + ], + [ + "05:10", + "0.9699007539618653" + ], + [ + "05:19", + "1.0818312572990452" + ], + [ + "05:30", + "1.0856437631284126" + ], + [ + "05:40", + "1.0674782599651953" + ], + [ + "05:49", + "0.9811777087669468" + ], + [ + "06:00", + "0.9688417647786189" + ], + [ + "06:10", + "0.9251838620543567" + ], + [ + "06:19", + "0.9683619696413023" + ], + [ + "06:30", + "1.0209246384536417" + ], + [ + "06:40", + "0.9779619172742089" + ], + [ + "06:49", + "0.9256885449852714" + ], + [ + "07:00", + "1.061987673659908" + ], + [ + "07:10", + "1.036518467324717" + ], + [ + "07:19", + "1.0321799612950202" + ], + [ + "07:30", + "1.0951012329242487" + ], + [ + "07:40", + "1.0645670515151604" + ], + [ + "07:49", + "1.1199188585361046" + ], + [ + "08:00", + "1.296708106715972" + ], + [ + "08:10", + "1.2910624251454585" + ], + [ + "08:19", + "1.2848943927871044" + ], + [ + "08:30", + "1.442780474793665" + ], + [ + "08:40", + "1.4349704104992251" + ], + [ + "08:49", + "1.4401307976454372" + ], + [ + "09:00", + "1.5087555110510038" + ], + [ + "09:10", + "1.5891807749918847" + ], + [ + "09:19", + "1.5555066872545613" + ], + [ + "09:30", + "1.6482125215395373" + ], + [ + "09:40", + "1.6927817938564795" + ], + [ + "09:49", + "1.6642632986145796" + ], + [ + "10:00", + "1.7255967433933863" + ], + [ + "10:10", + "1.7615758260972627" + ], + [ + "10:19", + "1.6954755490847238" + ], + [ + "10:30", + "1.8345978388881383" + ], + [ + "10:40", + "1.6912542690332335" + ], + [ + "10:49", + "1.7828530739005293" + ], + [ + "11:00", + "1.7882051207781073" + ], + [ + "11:10", + "1.6964001929007024" + ], + [ + "11:19", + "1.7344908755574489" + ], + [ + "11:30", + "1.6457586680994094" + ], + [ + "11:40", + "1.5859841301566848" + ], + [ + "11:49", + "1.5376239137665637" + ], + [ + "12:00", + "1.406096761351721" + ], + [ + "12:10", + "1.3849373042627509" + ], + [ + "12:19", + "1.368628588171102" + ], + [ + "12:30", + "1.4867019672825126" + ], + [ + "12:40", + "1.438708240345497" + ], + [ + "12:49", + "1.5602385095048719" + ], + [ + "13:00", + "1.5669961325676882" + ], + [ + "13:10", + "1.42494421695802" + ], + [ + "13:19", + "1.3873811114046888" + ], + [ + "13:30", + "1.4680296664950658" + ], + [ + "13:40", + "1.511599784000429" + ], + [ + "13:49", + "1.4935745743916866" + ], + [ + "14:00", + "1.4060332951717749" + ], + [ + "14:10", + "1.5017317613473715" + ], + [ + "14:19", + "1.4703927740714626" + ], + [ + "14:30", + "1.4371220011099988" + ], + [ + "14:40", + "1.5068676690735445" + ], + [ + "14:49", + "1.4478117357821705" + ], + [ + "15:00", + "1.4196435727071088" + ], + [ + "15:10", + "1.4903427569533385" + ], + [ + "15:19", + "1.4698244938793883" + ], + [ + "15:30", + "1.5505846863487387" + ], + [ + "15:40", + "1.533519879787878" + ], + [ + "15:49", + "1.5667786069174539" + ], + [ + "16:00", + "1.5778047809114366" + ], + [ + "16:10", + "1.5555200473410558" + ], + [ + "16:19", + "1.564869119125043" + ], + [ + "16:30", + "1.698682981767884" + ], + [ + "16:40", + "1.6872971414285893" + ], + [ + "16:49", + "1.6493481770759535" + ], + [ + "17:00", + "1.7060311521985225" + ], + [ + "17:10", + "1.7137124903923262" + ], + [ + "17:19", + "1.6376606553417676" + ], + [ + "17:30", + "1.7895981600845021" + ], + [ + "17:40", + "1.7412522178219008" + ], + [ + "17:49", + "1.715352448907016" + ], + [ + "18:00", + "1.7857796975493536" + ], + [ + "18:10", + "1.7331170595870433" + ], + [ + "18:19", + "1.791502017081316" + ], + [ + "18:30", + "1.8519412914338227" + ], + [ + "18:40", + "1.8291994298199865" + ], + [ + "18:49", + "1.823260530908403" + ], + [ + "19:00", + "1.8865026719965499" + ], + [ + "19:10", + "1.901366011141666" + ], + [ + "19:19", + "1.938707110039195" + ], + [ + "19:30", + "1.97263533191086" + ], + [ + "19:40", + "1.8903750453346955" + ], + [ + "19:49", + "1.8792997080904943" + ], + [ + "20:00", + "1.9818921649480923" + ], + [ + "20:10", + "1.879964175983358" + ], + [ + "20:19", + "1.9345212266640923" + ], + [ + "20:30", + "1.9041762738192747" + ], + [ + "20:40", + "1.8202001845845146" + ], + [ + "20:49", + "1.8602091573942137" + ], + [ + "21:00", + "1.9046104065816931" + ], + [ + "21:10", + "1.9458201089413423" + ], + [ + "21:19", + "1.8657575666693111" + ], + [ + "21:30", + "1.9123086016829915" + ], + [ + "21:40", + "1.890408253433916" + ], + [ + "21:49", + "1.860057532127748" + ], + [ + "22:00", + "1.768405111248504" + ], + [ + "22:10", + "1.7228262662065983" + ], + [ + "22:19", + "1.7600741446233072" + ], + [ + "22:30", + "1.7351119281990313" + ], + [ + "22:40", + "1.627579637809477" + ], + [ + "22:49", + "1.5026127534180285" + ], + [ + "23:00", + "1.8668294834726493" + ], + [ + "23:10", + "1.921586028950252" + ], + [ + "23:19", + "1.859944045343084" + ], + [ + "23:30", + "1.9421573552577784" + ], + [ + "23:40", + "1.9996994539344555" + ], + [ + "23:49", + "1.8589087984770138" + ], + [ + "00:00", + "1.6627462508277173" + ], + [ + "00:10", + "1.4912009784351483" + ], + [ + "00:19", + "1.5628532968400852" + ], + [ + "00:30", + "0.9781458275090296" + ], + [ + "00:40", + "0.9812069092694643" + ], + [ + "00:49", + "1.0182492746801393" + ], + [ + "01:00", + "1.0080667767153983" + ], + [ + "01:10", + "1.1416978645073563" + ], + [ + "01:19", + "1.1811130366714149" + ], + [ + "01:30", + "1.0561868544820934" + ], + [ + "01:40", + "1.0768999151158571" + ], + [ + "01:49", + "0.9842344139042237" + ], + [ + "02:00", + "1.5838487306115105" + ], + [ + "02:10", + "1.1065686921529496" + ], + [ + "02:19", + "1.2924803345972495" + ], + [ + "02:30", + "0.9596692985545329" + ], + [ + "02:40", + "0.9956463783304861" + ], + [ + "02:49", + "1.17815968919917" + ], + [ + "03:00", + "2.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24 + ], + "y": [ + 1.2539910618250936, + 1.0856753728996447, + 1.4506045788554864, + 1.39893283658915, + 1.1213347276884802, + 1.0548218043388635, + 1.1269347057339092, + 1.183315922030218, + 1.020977082138179, + 1.1270128806263786, + 1.1263681399418604, + 1.118083187971494, + 0.9897878521213063, + 0.9699007539618653, + 1.0818312572990452, + 1.0856437631284126, + 1.0674782599651953, + 0.9811777087669468, + 0.9688417647786189, + 0.9251838620543567, + 0.9683619696413023, + 1.0209246384536417, + 0.9779619172742089, + 0.9256885449852714, + 1.061987673659908, + 1.036518467324717, + 1.0321799612950202, + 1.0951012329242487, + 1.0645670515151604, + 1.1199188585361046, + 1.296708106715972, + 1.2910624251454585, + 1.2848943927871044, + 1.442780474793665, + 1.4349704104992251, + 1.4401307976454372, + 1.5087555110510038, + 1.5891807749918847, + 1.5555066872545613, + 1.6482125215395373, + 1.6927817938564795, + 1.6642632986145796, + 1.7255967433933863, + 1.7615758260972627, + 1.6954755490847238, + 1.8345978388881383, + 1.6912542690332335, + 1.7828530739005293, + 1.7882051207781073, + 1.6964001929007024, + 1.7344908755574489, + 1.6457586680994094, + 1.5859841301566848, + 1.5376239137665637, + 1.406096761351721, + 1.3849373042627509, + 1.368628588171102, + 1.4867019672825126, + 1.438708240345497, + 1.5602385095048719, + 1.5669961325676882, + 1.42494421695802, + 1.3873811114046888, + 1.4680296664950658, + 1.511599784000429, + 1.4935745743916866, + 1.4060332951717749, + 1.5017317613473715, + 1.4703927740714626, + 1.4371220011099988, + 1.5068676690735445, + 1.4478117357821705, + 1.4196435727071088, + 1.4903427569533385, + 1.4698244938793883, + 1.5505846863487387, + 1.533519879787878, + 1.5667786069174539, + 1.5778047809114366, + 1.5555200473410558, + 1.564869119125043, + 1.698682981767884, + 1.6872971414285893, + 1.6493481770759535, + 1.7060311521985225, + 1.7137124903923262, + 1.6376606553417676, + 1.7895981600845021, + 1.7412522178219008, + 1.715352448907016, + 1.7857796975493536, + 1.7331170595870433, + 1.791502017081316, + 1.8519412914338227, + 1.8291994298199865, + 1.823260530908403, + 1.8865026719965499, + 1.901366011141666, + 1.938707110039195, + 1.97263533191086, + 1.8903750453346955, + 1.8792997080904943, + 1.9818921649480923, + 1.879964175983358, + 1.9345212266640923, + 1.9041762738192747, + 1.8202001845845146, + 1.8602091573942137, + 1.9046104065816931, + 1.9458201089413423, + 1.8657575666693111, + 1.9123086016829915, + 1.890408253433916, + 1.860057532127748, + 1.768405111248504, + 1.7228262662065983, + 1.7600741446233072, + 1.7351119281990313, + 1.627579637809477, + 1.5026127534180285, + 1.8668294834726493, + 1.921586028950252, + 1.859944045343084, + 1.9421573552577784, + 1.9996994539344555, + 1.8589087984770138, + 1.6627462508277173, + 1.4912009784351483, + 1.5628532968400852, + 0.9781458275090296, + 0.9812069092694643, + 1.0182492746801393, + 1.0080667767153983, + 1.1416978645073563, + 1.1811130366714149, + 1.0561868544820934, + 1.0768999151158571, + 0.9842344139042237, + 1.5838487306115105, + 1.1065686921529496, + 1.2924803345972495, + 0.9596692985545329, + 0.9956463783304861, + 1.17815968919917, + 2 + ] + }, + { + "customdata": [ + [ + "03:00", + "1.3615753017291958" + ], + [ + "03:10", + "1.389739804348231" + ], + [ + "03:19", + "1.3592087610331118" + ], + [ + "03:30", + "1.3699744360969899" + ], + [ + "03:40", + "1.351603507683002" + ], + [ + "03:49", + "1.3560761784751378" + ], + [ + "04:00", + "1.3670678662858355" + ], + [ + "04:10", + "1.367431288353108" + ], + [ + "04:19", + "1.3686899446787122" + ], + [ + "04:30", + "1.4160722468930547" + ], + [ + "04:40", + "1.3948248318327239" + ], + [ + "04:49", + "1.3857203539251335" + ], + [ + "05:00", + "1.4483823604164425" + ], + [ + "05:10", + "1.461824411501473" + ], + [ + "05:19", + "1.435192487985569" + ], + [ + "05:30", + "1.4869944895544924" + ], + [ + "05:40", + "1.4940469429216614" + ], + [ + "05:49", + "1.4695108492452076" + ], + [ + "06:00", + "1.5005146609812483" + ], + [ + "06:10", + "1.4871024682339369" + ], + [ + "06:19", + "1.4728661813400317" + ], + [ + "06:30", + "1.5250940758424465" + ], + [ + "06:40", + "1.493488345211369" + ], + [ + "06:49", + "1.4647902403679294" + ], + [ + "07:00", + "1.4783320609722683" + ], + [ + "07:10", + "1.4593610142958786" + ], + [ + "07:19", + "1.4696314847141734" + ], + [ + "07:30", + "1.4323747041883952" + ], + [ + "07:40", + "1.4438437143038163" + ], + [ + "07:49", + "1.449264710416674" + ], + [ + "08:00", + "1.4757347990708745" + ], + [ + "08:10", + "1.4661268897059905" + ], + [ + "08:19", + "1.4539696975531067" + ], + [ + "08:30", + "1.4979778901537626" + ], + [ + "08:40", + "1.4777341236490114" + ], + [ + "08:49", + "1.4853334349648455" + ], + [ + "09:00", + "1.5297685840268649" + ], + [ + "09:10", + "1.5124564701114105" + ], + [ + "09:19", + "1.5145939454067305" + ], + [ + "09:30", + "1.5524477846463114" + ], + [ + "09:40", + "1.5433542903778446" + ], + [ + "09:49", + "1.5565424188036203" + ], + [ + "10:00", + "1.5825943881146671" + ], + [ + "10:10", + "1.5753406724671217" + ], + [ + "10:19", + "1.5905322462721283" + ], + [ + "10:30", + "1.5969833076846534" + ], + [ + "10:40", + "1.6197120159895104" + ], + [ + "10:49", + "1.6175820458433425" + ], + [ + "11:00", + "1.6042922794782197" + ], + [ + "11:10", + "1.5943417082968108" + ], + [ + "11:19", + "1.5862790461230423" + ], + [ + "11:30", + "1.5126897827130315" + ], + [ + "11:40", + "1.5357057988522744" + ], + [ + "11:49", + "1.532132776781461" + ], + [ + "12:00", + "1.528923013018114" + ], + [ + "12:10", + "1.5291342221264328" + ], + [ + "12:19", + "1.5246450070672655" + ], + [ + "12:30", + "1.5440525432798584" + ], + [ + "12:40", + "1.547536897254248" + ], + [ + "12:49", + "1.547632675967562" + ], + [ + "13:00", + "1.5603979684858351" + ], + [ + "13:10", + "1.558014333153263" + ], + [ + "13:19", + "1.558400802953865" + ], + [ + "13:30", + "1.5754976311638247" + ], + [ + "13:40", + "1.5704909807393885" + ], + [ + "13:49", + "1.5757325441064978" + ], + [ + "14:00", + "1.5531412604696946" + ], + [ + "14:10", + "1.555850164222135" + ], + [ + "14:19", + "1.5589675006694272" + ], + [ + "14:30", + "1.5332534021667967" + ], + [ + "14:40", + "1.5322930791487532" + ], + [ + "14:49", + "1.5323228634091415" + ], + [ + "15:00", + "1.5127799730416744" + ], + [ + "15:10", + "1.513162002321217" + ], + [ + "15:19", + "1.5297909674999586" + ], + [ + "15:30", + "1.5236197127467836" + ], + [ + "15:40", + "1.5230818456310893" + ], + [ + "15:49", + "1.5210194903051024" + ], + [ + "16:00", + "1.5184193483846415" + ], + [ + "16:10", + "1.521695027675504" + ], + [ + "16:19", + "1.5145904776556025" + ], + [ + "16:30", + "1.530671153362508" + ], + [ + "16:40", + "1.5348961692728338" + ], + [ + "16:49", + "1.5357525436124895" + ], + [ + "17:00", + "1.5613234803731053" + ], + [ + "17:10", + "1.5570032169185053" + ], + [ + "17:19", + "1.5618154249955811" + ], + [ + "17:30", + "1.5821954464982289" + ], + [ + "17:40", + "1.5785709244011552" + ], + [ + "17:49", + "1.5779378339967691" + ], + [ + "18:00", + "1.5955086370374687" + ], + [ + "18:10", + "1.5914876506119395" + ], + [ + "18:19", + "1.5864569105172939" + ], + [ + "18:30", + "1.6163363923885594" + ], + [ + "18:40", + "1.5965499209794607" + ], + [ + "18:49", + "1.5974185724522159" + ], + [ + "19:00", + "1.6384041240191214" + ], + [ + "19:10", + "1.6259374612751334" + ], + [ + "19:19", + "1.637117824132755" + ], + [ + "19:30", + "1.6460771430840793" + ], + [ + "19:40", + "1.6298790923488153" + ], + [ + "19:49", + "1.629862751380065" + ], + [ + "20:00", + "1.6362759296863796" + ], + [ + "20:10", + "1.6188758579089737" + ], + [ + "20:19", + "1.6139391291643364" + ], + [ + "20:30", + "1.621073776694557" + ], + [ + "20:40", + "1.6230403039791794" + ], + [ + "20:49", + "1.6164668795820798" + ], + [ + "21:00", + "1.6554284512527242" + ], + [ + "21:10", + "1.6493856701780198" + ], + [ + "21:19", + "1.6408790756547469" + ], + [ + "21:30", + "1.6814940720469378" + ], + [ + "21:40", + "1.6449782505502561" + ], + [ + "21:49", + "1.6455014488762392" + ], + [ + "22:00", + "1.6631891135574748" + ], + [ + "22:10", + "1.6487286850205267" + ], + [ + "22:19", + "1.6399527013584803" + ], + [ + "22:30", + "1.59059202216658" + ], + [ + "22:40", + "1.5880115827939922" + ], + [ + "22:49", + "1.5734931533373724" + ], + [ + "23:00", + "1.5879525072908254" + ], + [ + "23:10", + "1.5773396019668393" + ], + [ + "23:19", + "1.5812858577563096" + ], + [ + "23:30", + "1.5426492293585319" + ], + [ + "23:40", + "1.5982270981753899" + ], + [ + "23:49", + "1.5943012584060525" + ], + [ + "00:00", + "1.5486669672908038" + ], + [ + "00:10", + "1.4507513367906235" + ], + [ + "00:19", + "1.4358359072802205" + ], + [ + "00:30", + "1.4275160659662933" + ], + [ + "00:40", + "1.4068704867102597" + ], + [ + "00:49", + "1.402708587010174" + ], + [ + "01:00", + "1.3689098493561362" + ], + [ + "01:10", + "1.361045025070265" + ], + [ + "01:19", + "1.3455641478978617" + ], + [ + "01:30", + "1.3298174959758797" + ], + [ + "01:40", + "1.3535491614771749" + ], + [ + "01:49", + "1.3765090111868459" + ], + [ + "02:00", + "1.3516830063104097" + ], + [ + "02:10", + "1.3533935915889959" + ], + [ + "02:19", + "1.3539303029670404" + ], + [ + "02:30", + "1.3350546109124148" + ], + [ + "02:40", + "1.350147632173103" + ], + [ + "02:49", + "1.336920396627511" + ], + [ + "03:00", + "1.475160350771077" + ], + [ + "03:10", + "1.109813014871216" + ], + [ + "03:19", + "1.0546658240158486" + ], + [ + "03:30", + "1.1864513339666507" + ], + [ + "03:40", + "1.0616992235774967" + ], + [ + "03:49", + "1.1939076999708644" + ], + [ + "04:00", + "1.11084571112157" + ], + [ + "04:10", + "1.0" + ], + [ + "04:19", + "1.1536316973559988" + ], + [ + "04:30", + "1.0" + ], + [ + "04:40", + "1.0" + ], + [ + "04:49", + "1.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332, + 25.5, + 25.666666666666668, + 25.833333333333332 + ], + "y": [ + 1.3615753017291958, + 1.389739804348231, + 1.3592087610331118, + 1.3699744360969899, + 1.351603507683002, + 1.3560761784751378, + 1.3670678662858355, + 1.367431288353108, + 1.3686899446787122, + 1.4160722468930547, + 1.3948248318327239, + 1.3857203539251335, + 1.4483823604164425, + 1.461824411501473, + 1.435192487985569, + 1.4869944895544924, + 1.4940469429216614, + 1.4695108492452076, + 1.5005146609812483, + 1.4871024682339369, + 1.4728661813400317, + 1.5250940758424465, + 1.493488345211369, + 1.4647902403679294, + 1.4783320609722683, + 1.4593610142958786, + 1.4696314847141734, + 1.4323747041883952, + 1.4438437143038163, + 1.449264710416674, + 1.4757347990708745, + 1.4661268897059905, + 1.4539696975531067, + 1.4979778901537626, + 1.4777341236490114, + 1.4853334349648455, + 1.5297685840268649, + 1.5124564701114105, + 1.5145939454067305, + 1.5524477846463114, + 1.5433542903778446, + 1.5565424188036203, + 1.5825943881146671, + 1.5753406724671217, + 1.5905322462721283, + 1.5969833076846534, + 1.6197120159895104, + 1.6175820458433425, + 1.6042922794782197, + 1.5943417082968108, + 1.5862790461230423, + 1.5126897827130315, + 1.5357057988522744, + 1.532132776781461, + 1.528923013018114, + 1.5291342221264328, + 1.5246450070672655, + 1.5440525432798584, + 1.547536897254248, + 1.547632675967562, + 1.5603979684858351, + 1.558014333153263, + 1.558400802953865, + 1.5754976311638247, + 1.5704909807393885, + 1.5757325441064978, + 1.5531412604696946, + 1.555850164222135, + 1.5589675006694272, + 1.5332534021667967, + 1.5322930791487532, + 1.5323228634091415, + 1.5127799730416744, + 1.513162002321217, + 1.5297909674999586, + 1.5236197127467836, + 1.5230818456310893, + 1.5210194903051024, + 1.5184193483846415, + 1.521695027675504, + 1.5145904776556025, + 1.530671153362508, + 1.5348961692728338, + 1.5357525436124895, + 1.5613234803731053, + 1.5570032169185053, + 1.5618154249955811, + 1.5821954464982289, + 1.5785709244011552, + 1.5779378339967691, + 1.5955086370374687, + 1.5914876506119395, + 1.5864569105172939, + 1.6163363923885594, + 1.5965499209794607, + 1.5974185724522159, + 1.6384041240191214, + 1.6259374612751334, + 1.637117824132755, + 1.6460771430840793, + 1.6298790923488153, + 1.629862751380065, + 1.6362759296863796, + 1.6188758579089737, + 1.6139391291643364, + 1.621073776694557, + 1.6230403039791794, + 1.6164668795820798, + 1.6554284512527242, + 1.6493856701780198, + 1.6408790756547469, + 1.6814940720469378, + 1.6449782505502561, + 1.6455014488762392, + 1.6631891135574748, + 1.6487286850205267, + 1.6399527013584803, + 1.59059202216658, + 1.5880115827939922, + 1.5734931533373724, + 1.5879525072908254, + 1.5773396019668393, + 1.5812858577563096, + 1.5426492293585319, + 1.5982270981753899, + 1.5943012584060525, + 1.5486669672908038, + 1.4507513367906235, + 1.4358359072802205, + 1.4275160659662933, + 1.4068704867102597, + 1.402708587010174, + 1.3689098493561362, + 1.361045025070265, + 1.3455641478978617, + 1.3298174959758797, + 1.3535491614771749, + 1.3765090111868459, + 1.3516830063104097, + 1.3533935915889959, + 1.3539303029670404, + 1.3350546109124148, + 1.350147632173103, + 1.336920396627511, + 1.475160350771077, + 1.109813014871216, + 1.0546658240158486, + 1.1864513339666507, + 1.0616992235774967, + 1.1939076999708644, + 1.11084571112157, + 1, + 1.1536316973559988, + 1, + 1, + 1 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Average occupancy by time bin (OD_dist-weighted) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Average occupancy" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_occupancy_by_time_bin(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " OD_dist-weighted average occupancy by *native time bin* (depart_bin),\n", + " including deadheading trips.\n", + " \"\"\"\n", + " occ = pd.to_numeric(new_df[\"occupancy\"], errors=\"coerce\")\n", + " dist = pd.to_numeric(new_df[dist_col_new], errors=\"coerce\")\n", + " bins = pd.to_numeric(new_df[\"depart_bin\"], errors=\"coerce\")\n", + "\n", + " valid = (\n", + " bins.notna()\n", + " & dist.notna()\n", + " & occ.notna()\n", + " )\n", + " if not valid.any():\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " df = pd.DataFrame({\n", + " \"depart_bin_int\": bins[valid].astype(int),\n", + " \"occ\": occ[valid].astype(float),\n", + " \"dist\": dist[valid].astype(float),\n", + " })\n", + "\n", + " # OD_dist-weighted average occupancy per *depart_bin*\n", + " df[\"wv\"] = df[\"occ\"] * df[\"dist\"]\n", + "\n", + " agg = (\n", + " df.groupby(\"depart_bin_int\")\n", + " .agg(sum_w=(\"dist\", \"sum\"), sum_wv=(\"wv\", \"sum\"), n=(\"occ\", \"size\"))\n", + " .reset_index()\n", + " )\n", + " agg = agg[agg[\"sum_w\"] > 0]\n", + " agg[\"avg_occupancy\"] = (agg[\"sum_wv\"] / agg[\"sum_w\"]).astype(float)\n", + "\n", + " # Native time bins → clock time using bin_minutes\n", + " # Example: bin 0 = 3:00, bin 1 = 3:00 + bin_minutes, etc.\n", + " times = start_time + pd.to_timedelta(agg[\"depart_bin_int\"] * bin_minutes, unit=\"m\")\n", + " vals = agg[\"avg_occupancy\"].values\n", + "\n", + " out = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " out[\"hover\"] = [\n", + " f\"Time: {t:%H:%M} | Avg occ: {v:.3f} (legs: {int(n):,}, total OD_dist: {w:,.1f})\"\n", + " for t, v, n, w in zip(times, vals, agg[\"n\"], agg[\"sum_w\"])\n", + " ]\n", + " return out\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_occupancy_by_time_bin,\n", + " \"Average occupancy by time bin (OD_dist-weighted)\",\n", + " \"Average occupancy\",\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# def metric_occupancy_by_hour(new_df, pooled_df, scenario, bin_minutes):\n", + "# \"\"\"\n", + "# OD_dist-weighted average occupancy by hour of day, including deadheading trips.\n", + "# \"\"\"\n", + "# occ = pd.to_numeric(new_df[\"occupancy\"], errors=\"coerce\")\n", + "# dist = pd.to_numeric(new_df[dist_col_new], errors=\"coerce\")\n", + "# bins = pd.to_numeric(new_df[\"depart_bin\"], errors=\"coerce\")\n", + "\n", + "# valid = (\n", + "# bins.notna()\n", + "# & dist.notna() \n", + "# & occ.notna() \n", + "# )\n", + "# if not valid.any():\n", + "# return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + "# df = pd.DataFrame({\n", + "# \"depart_bin_int\": bins[valid].astype(int),\n", + "# \"occ\": occ[valid].astype(float),\n", + "# \"dist\": dist[valid].astype(float),\n", + "# })\n", + "\n", + "# # hour_from_3am based on elapsed minutes = depart_bin * bin_minutes\n", + "# df[\"hour_from_3am\"] = ((df[\"depart_bin_int\"] * bin_minutes) // 60).astype(int)\n", + "# df[\"wv\"] = df[\"occ\"] * df[\"dist\"]\n", + "\n", + "# agg = (\n", + "# df.groupby(\"hour_from_3am\")\n", + "# .agg(sum_w=(\"dist\", \"sum\"), sum_wv=(\"wv\", \"sum\"), n=(\"occ\", \"size\"))\n", + "# .reset_index()\n", + "# )\n", + "# agg = agg[agg[\"sum_w\"] > 0]\n", + "# agg[\"avg_occupancy\"] = (agg[\"sum_wv\"] / agg[\"sum_w\"]).astype(float)\n", + "\n", + "# times = start_time + pd.to_timedelta(agg[\"hour_from_3am\"] * 60, unit=\"m\")\n", + "# vals = agg[\"avg_occupancy\"].values\n", + "\n", + "# out = pd.DataFrame({\"x\": times, \"y\": vals})\n", + "# out[\"hover\"] = [\n", + "# f\"Avg occ: {v:.3f} (legs: {int(n):,}, total OD_dist: {w:,.1f})\"\n", + "# for v, n, w in zip(vals, agg[\"n\"], agg[\"sum_w\"])\n", + "# ]\n", + "# return out\n", + "\n", + "\n", + "# run_timeseries_metric(\n", + "# metric_occupancy_by_hour,\n", + "# \"Average occupancy by hour (OD_dist-weighted)\",\n", + "# \"Average occupancy\",\n", + "# )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Occupancy by veh trips and VMT — time_bin_size\n", + " avg_occ_by_trip avg_occ_by_vmt\n", + "scenario \n", + "base 0.933701 1.589033\n", + "timebin_5 0.932447 1.564145\n", + "timebin_15 0.934670 1.601782\n", + "\n", + "Occupancy by veh trips and VMT — max_detour\n", + " avg_occ_by_trip avg_occ_by_vmt\n", + "scenario \n", + "base 0.933701 1.589033\n", + "detour_5 0.930064 1.587440\n", + "detour_10 0.931596 1.587707\n", + "detour_20 0.934698 1.588779\n", + "\n", + "Occupancy by veh trips and VMT — max_occupancy\n", + " avg_occ_by_trip avg_occ_by_vmt\n", + "scenario \n", + "base 0.933701 1.589033\n", + "occ_6 0.998006 1.697590\n", + "occ_8 1.039218 1.754532\n", + "\n", + "Occupancy by veh trips and VMT — tnc_shared_demand\n", + " avg_occ_by_trip avg_occ_by_vmt\n", + "scenario \n", + "base 0.933701 1.589033\n", + "shift_to_all_shared_tnc 1.041364 1.537540\n" + ] + } + ], + "source": [ + "def metric_occupancy_trip_vmt(new_df, pooled_df):\n", + " occ = pd.to_numeric(new_df[\"occupancy\"], errors=\"coerce\")\n", + " dist = pd.to_numeric(new_df[dist_col_new], errors=\"coerce\")\n", + "\n", + " valid = occ.notna() & dist.notna() & (dist >= 0)\n", + " occ = occ[valid]\n", + " dist = dist[valid]\n", + "\n", + " avg_trip_occ = occ.mean()\n", + " w_sum = dist.sum()\n", + " avg_vmt_occ = (dist * occ).sum() / w_sum if w_sum > 0 else np.nan\n", + "\n", + " return {\n", + " \"avg_occ_by_trip\": avg_trip_occ,\n", + " \"avg_occ_by_vmt\": avg_vmt_occ,\n", + " }\n", + "\n", + "run_scalar_metric(metric_occupancy_trip_vmt, \"Occupancy by veh trips and VMT\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Share and profile of refueling trips" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "12.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "30.0" + ], + [ + "12:49", + "18.0" + ], + [ + "13:00", + "18.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "12.0" + ], + [ + "13:30", + "18.0" + ], + [ + "13:40", + "30.0" + ], + [ + "13:49", + "30.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:10", + "48.0" + ], + [ + "14:19", + "84.0" + ], + [ + "14:30", + "78.0" + ], + [ + "14:40", + "54.0" + ], + [ + "14:49", + "96.0" + ], + [ + "15:00", + "78.0" + ], + [ + "15:10", + "66.0" + ], + [ + "15:19", + "150.0" + ], + [ + "15:30", + "150.0" + ], + [ + "15:40", + "90.0" + ], + [ + "15:49", + "126.0" + ], + [ + "16:00", + "102.0" + ], + [ + "16:10", + "198.0" + ], + [ + "16:19", + "138.0" + ], + [ + "16:30", + "144.0" + ], + [ + "16:40", + "192.0" + ], + [ + "16:49", + "186.0" + ], + [ + "17:00", + "234.0" + ], + [ + "17:10", + "300.0" + ], + [ + "17:19", + "168.0" + ], + [ + "17:30", + "168.0" + ], + [ + "17:40", + "330.0" + ], + [ + "17:49", + "330.0" + ], + [ + "18:00", + "372.0" + ], + [ + "18:10", + "324.0" + ], + [ + "18:19", + "378.0" + ], + [ + "18:30", + "372.0" + ], + [ + "18:40", + "474.0" + ], + [ + "18:49", + "480.0" + ], + [ + "19:00", + "498.0" + ], + [ + "19:10", + "372.0" + ], + [ + "19:19", + "498.0" + ], + [ + "19:30", + "474.0" + ], + [ + "19:40", + "504.0" + ], + [ + "19:49", + "534.0" + ], + [ + "20:00", + "426.0" + ], + [ + "20:10", + "474.0" + ], + [ + "20:19", + "444.0" + ], + [ + "20:30", + "360.0" + ], + [ + "20:40", + "432.0" + ], + [ + "20:49", + "534.0" + ], + [ + "21:00", + "444.0" + ], + [ + "21:10", + "384.0" + ], + [ + "21:19", + "468.0" + ], + [ + "21:30", + "420.0" + ], + [ + "21:40", + "378.0" + ], + [ + "21:49", + "300.0" + ], + [ + "22:00", + "264.0" + ], + [ + "22:10", + "312.0" + ], + [ + "22:19", + "330.0" + ], + [ + "22:30", + "294.0" + ], + [ + "22:40", + "252.0" + ], + [ + "22:49", + "174.0" + ], + [ + "23:00", + "162.0" + ], + [ + "23:10", + "198.0" + ], + [ + "23:19", + "228.0" + ], + [ + "23:30", + "240.0" + ], + [ + "23:40", + "186.0" + ], + [ + "23:49", + "156.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "108.0" + ], + [ + "00:19", + "108.0" + ], + [ + "00:30", + "84.0" + ], + [ + "00:40", + "66.0" + ], + [ + "00:49", + "66.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "54.0" + ], + [ + "01:19", + "42.0" + ], + [ + "01:30", + "54.0" + ], + [ + "01:40", + "48.0" + ], + [ + "01:49", + "12.0" + ], + [ + "02:00", + "42.0" + ], + [ + "02:10", + "48.0" + ], + [ + "02:19", + "48.0" + ], + [ + "02:30", + "36.0" + ], + [ + "02:40", + "36.0" + ], + [ + "02:49", + "30.0" + ], + [ + "03:00", + "30.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 6, + 0, + 12, + 6, + 6, + 30, + 18, + 18, + 18, + 12, + 18, + 30, + 30, + 24, + 48, + 84, + 78, + 54, + 96, + 78, + 66, + 150, + 150, + 90, + 126, + 102, + 198, + 138, + 144, + 192, + 186, + 234, + 300, + 168, + 168, + 330, + 330, + 372, + 324, + 378, + 372, + 474, + 480, + 498, + 372, + 498, + 474, + 504, + 534, + 426, + 474, + 444, + 360, + 432, + 534, + 444, + 384, + 468, + 420, + 378, + 300, + 264, + 312, + 330, + 294, + 252, + 174, + 162, + 198, + 228, + 240, + 186, + 156, + 156, + 108, + 108, + 84, + 66, + 66, + 48, + 54, + 42, + 54, + 48, + 12, + 42, + 48, + 48, + 36, + 36, + 30, + 30, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:04", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:15", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:25", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:34", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:45", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "03:55", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:04", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:15", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:25", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:34", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:45", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "04:55", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:04", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:15", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:25", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:34", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:45", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "05:55", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:04", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:15", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:25", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:34", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:45", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "06:55", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:04", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:15", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:25", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:34", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:45", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "07:55", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:04", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:15", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:25", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:34", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:45", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "08:55", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:04", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:15", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:25", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:34", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:45", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "09:55", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:04", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:15", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:25", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:34", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:45", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "10:55", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:04", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:15", + "12.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:25", + "0.0" + ], + [ + "11:30", + "24.0" + ], + [ + "11:34", + "0.0" + ], + [ + "11:40", + "12.0" + ], + [ + "11:45", + "12.0" + ], + [ + "11:49", + "12.0" + ], + [ + "11:55", + "12.0" + ], + [ + "12:00", + "12.0" + ], + [ + "12:04", + "24.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:15", + "36.0" + ], + [ + "12:19", + "12.0" + ], + [ + "12:25", + "0.0" + ], + [ + "12:30", + "12.0" + ], + [ + "12:34", + "36.0" + ], + [ + "12:40", + "48.0" + ], + [ + "12:45", + "48.0" + ], + [ + "12:49", + "48.0" + ], + [ + "12:55", + "48.0" + ], + [ + "13:00", + "24.0" + ], + [ + "13:04", + "24.0" + ], + [ + "13:10", + "24.0" + ], + [ + "13:15", + "48.0" + ], + [ + "13:19", + "48.0" + ], + [ + "13:25", + "84.0" + ], + [ + "13:30", + "48.0" + ], + [ + "13:34", + "36.0" + ], + [ + "13:40", + "96.0" + ], + [ + "13:45", + "84.0" + ], + [ + "13:49", + "60.0" + ], + [ + "13:55", + "72.0" + ], + [ + "14:00", + "60.0" + ], + [ + "14:04", + "60.0" + ], + [ + "14:10", + "72.0" + ], + [ + "14:15", + "84.0" + ], + [ + "14:19", + "84.0" + ], + [ + "14:25", + "108.0" + ], + [ + "14:30", + "108.0" + ], + [ + "14:34", + "72.0" + ], + [ + "14:40", + "156.0" + ], + [ + "14:45", + "132.0" + ], + [ + "14:49", + "108.0" + ], + [ + "14:55", + "72.0" + ], + [ + "15:00", + "192.0" + ], + [ + "15:04", + "180.0" + ], + [ + "15:10", + "132.0" + ], + [ + "15:15", + "156.0" + ], + [ + "15:19", + "216.0" + ], + [ + "15:25", + "180.0" + ], + [ + "15:30", + "252.0" + ], + [ + "15:34", + "168.0" + ], + [ + "15:40", + "300.0" + ], + [ + "15:45", + "288.0" + ], + [ + "15:49", + "204.0" + ], + [ + "15:55", + "180.0" + ], + [ + "16:00", + "240.0" + ], + [ + "16:04", + "360.0" + ], + [ + "16:10", + "168.0" + ], + [ + "16:15", + "276.0" + ], + [ + "16:19", + "324.0" + ], + [ + "16:25", + "324.0" + ], + [ + "16:30", + "456.0" + ], + [ + "16:34", + "324.0" + ], + [ + "16:40", + "444.0" + ], + [ + "16:45", + "336.0" + ], + [ + "16:49", + "420.0" + ], + [ + "16:55", + "312.0" + ], + [ + "17:00", + "228.0" + ], + [ + "17:04", + "456.0" + ], + [ + "17:10", + "420.0" + ], + [ + "17:15", + "564.0" + ], + [ + "17:19", + "648.0" + ], + [ + "17:25", + "528.0" + ], + [ + "17:30", + "372.0" + ], + [ + "17:34", + "540.0" + ], + [ + "17:40", + "408.0" + ], + [ + "17:45", + "408.0" + ], + [ + "17:49", + "468.0" + ], + [ + "17:55", + "588.0" + ], + [ + "18:00", + "540.0" + ], + [ + "18:04", + "504.0" + ], + [ + "18:10", + "492.0" + ], + [ + "18:15", + "564.0" + ], + [ + "18:19", + "480.0" + ], + [ + "18:25", + "576.0" + ], + [ + "18:30", + "576.0" + ], + [ + "18:34", + "504.0" + ], + [ + "18:40", + "444.0" + ], + [ + "18:45", + "660.0" + ], + [ + "18:49", + "684.0" + ], + [ + "18:55", + "492.0" + ], + [ + "19:00", + "768.0" + ], + [ + "19:04", + "444.0" + ], + [ + "19:10", + "540.0" + ], + [ + "19:15", + "612.0" + ], + [ + "19:19", + "576.0" + ], + [ + "19:25", + "672.0" + ], + [ + "19:30", + "492.0" + ], + [ + "19:34", + "396.0" + ], + [ + "19:40", + "540.0" + ], + [ + "19:45", + "588.0" + ], + [ + "19:49", + "372.0" + ], + [ + "19:55", + "456.0" + ], + [ + "20:00", + "588.0" + ], + [ + "20:04", + "492.0" + ], + [ + "20:10", + "576.0" + ], + [ + "20:15", + "480.0" + ], + [ + "20:19", + "348.0" + ], + [ + "20:25", + "444.0" + ], + [ + "20:30", + "396.0" + ], + [ + "20:34", + "588.0" + ], + [ + "20:40", + "516.0" + ], + [ + "20:45", + "348.0" + ], + [ + "20:49", + "468.0" + ], + [ + "20:55", + "360.0" + ], + [ + "21:00", + "408.0" + ], + [ + "21:04", + "432.0" + ], + [ + "21:10", + "480.0" + ], + [ + "21:15", + "360.0" + ], + [ + "21:19", + "312.0" + ], + [ + "21:25", + "528.0" + ], + [ + "21:30", + "348.0" + ], + [ + "21:34", + "300.0" + ], + [ + "21:40", + "396.0" + ], + [ + "21:45", + "240.0" + ], + [ + "21:49", + "336.0" + ], + [ + "21:55", + "228.0" + ], + [ + "22:00", + "216.0" + ], + [ + "22:04", + "216.0" + ], + [ + "22:10", + "264.0" + ], + [ + "22:15", + "144.0" + ], + [ + "22:19", + "264.0" + ], + [ + "22:25", + "264.0" + ], + [ + "22:30", + "228.0" + ], + [ + "22:34", + "180.0" + ], + [ + "22:40", + "180.0" + ], + [ + "22:45", + "180.0" + ], + [ + "22:49", + "204.0" + ], + [ + "22:55", + "192.0" + ], + [ + "23:00", + "228.0" + ], + [ + "23:04", + "120.0" + ], + [ + "23:10", + "120.0" + ], + [ + "23:15", + "168.0" + ], + [ + "23:19", + "264.0" + ], + [ + "23:25", + "228.0" + ], + [ + "23:30", + "192.0" + ], + [ + "23:34", + "204.0" + ], + [ + "23:40", + "168.0" + ], + [ + "23:45", + "96.0" + ], + [ + "23:49", + "120.0" + ], + [ + "23:55", + "108.0" + ], + [ + "00:00", + "144.0" + ], + [ + "00:04", + "84.0" + ], + [ + "00:10", + "84.0" + ], + [ + "00:15", + "120.0" + ], + [ + "00:19", + "36.0" + ], + [ + "00:25", + "48.0" + ], + [ + "00:30", + "60.0" + ], + [ + "00:34", + "96.0" + ], + [ + "00:40", + "48.0" + ], + [ + "00:45", + "36.0" + ], + [ + "00:49", + "48.0" + ], + [ + "00:55", + "48.0" + ], + [ + "01:00", + "24.0" + ], + [ + "01:04", + "12.0" + ], + [ + "01:10", + "0.0" + ], + [ + "01:15", + "0.0" + ], + [ + "01:19", + "0.0" + ], + [ + "01:25", + "0.0" + ], + [ + "01:30", + "12.0" + ], + [ + "01:34", + "48.0" + ], + [ + "01:40", + "0.0" + ], + [ + "01:45", + "24.0" + ], + [ + "01:49", + "12.0" + ], + [ + "01:55", + "0.0" + ], + [ + "02:00", + "0.0" + ], + [ + "02:04", + "0.0" + ], + [ + "02:10", + "24.0" + ], + [ + "02:15", + "12.0" + ], + [ + "02:19", + "12.0" + ], + [ + "02:25", + "36.0" + ], + [ + "02:30", + "12.0" + ], + [ + "02:34", + "12.0" + ], + [ + "02:40", + "12.0" + ], + [ + "02:45", + "48.0" + ], + [ + "02:49", + "36.0" + ], + [ + "02:55", + "0.0" + ], + [ + "03:00", + "0.0" + ], + [ + "03:04", + "12.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:15", + "24.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:25", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:34", + "12.0" + ], + [ + "03:40", + "12.0" + ], + [ + "03:45", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "03:55", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:04", + "12.0" + ], + [ + "04:10", + "24.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_5", + "mode": "lines", + "name": "timebin_5", + "type": "scatter", + "x": [ + 0, + 0.08333333333333333, + 0.16666666666666666, + 0.25, + 0.3333333333333333, + 0.4166666666666667, + 0.5, + 0.5833333333333334, + 0.6666666666666666, + 0.75, + 0.8333333333333334, + 0.9166666666666666, + 1, + 1.0833333333333333, + 1.1666666666666667, + 1.25, + 1.3333333333333333, + 1.4166666666666667, + 1.5, + 1.5833333333333333, + 1.6666666666666667, + 1.75, + 1.8333333333333333, + 1.9166666666666667, + 2, + 2.0833333333333335, + 2.1666666666666665, + 2.25, + 2.3333333333333335, + 2.4166666666666665, + 2.5, + 2.5833333333333335, + 2.6666666666666665, + 2.75, + 2.8333333333333335, + 2.9166666666666665, + 3, + 3.0833333333333335, + 3.1666666666666665, + 3.25, + 3.3333333333333335, + 3.4166666666666665, + 3.5, + 3.5833333333333335, + 3.6666666666666665, + 3.75, + 3.8333333333333335, + 3.9166666666666665, + 4, + 4.083333333333333, + 4.166666666666667, + 4.25, + 4.333333333333333, + 4.416666666666667, + 4.5, + 4.583333333333333, + 4.666666666666667, + 4.75, + 4.833333333333333, + 4.916666666666667, + 5, + 5.083333333333333, + 5.166666666666667, + 5.25, + 5.333333333333333, + 5.416666666666667, + 5.5, + 5.583333333333333, + 5.666666666666667, + 5.75, + 5.833333333333333, + 5.916666666666667, + 6, + 6.083333333333333, + 6.166666666666667, + 6.25, + 6.333333333333333, + 6.416666666666667, + 6.5, + 6.583333333333333, + 6.666666666666667, + 6.75, + 6.833333333333333, + 6.916666666666667, + 7, + 7.083333333333333, + 7.166666666666667, + 7.25, + 7.333333333333333, + 7.416666666666667, + 7.5, + 7.583333333333333, + 7.666666666666667, + 7.75, + 7.833333333333333, + 7.916666666666667, + 8, + 8.083333333333334, + 8.166666666666666, + 8.25, + 8.333333333333334, + 8.416666666666666, + 8.5, + 8.583333333333334, + 8.666666666666666, + 8.75, + 8.833333333333334, + 8.916666666666666, + 9, + 9.083333333333334, + 9.166666666666666, + 9.25, + 9.333333333333334, + 9.416666666666666, + 9.5, + 9.583333333333334, + 9.666666666666666, + 9.75, + 9.833333333333334, + 9.916666666666666, + 10, + 10.083333333333334, + 10.166666666666666, + 10.25, + 10.333333333333334, + 10.416666666666666, + 10.5, + 10.583333333333334, + 10.666666666666666, + 10.75, + 10.833333333333334, + 10.916666666666666, + 11, + 11.083333333333334, + 11.166666666666666, + 11.25, + 11.333333333333334, + 11.416666666666666, + 11.5, + 11.583333333333334, + 11.666666666666666, + 11.75, + 11.833333333333334, + 11.916666666666666, + 12, + 12.083333333333334, + 12.166666666666666, + 12.25, + 12.333333333333334, + 12.416666666666666, + 12.5, + 12.583333333333334, + 12.666666666666666, + 12.75, + 12.833333333333334, + 12.916666666666666, + 13, + 13.083333333333334, + 13.166666666666666, + 13.25, + 13.333333333333334, + 13.416666666666666, + 13.5, + 13.583333333333334, + 13.666666666666666, + 13.75, + 13.833333333333334, + 13.916666666666666, + 14, + 14.083333333333334, + 14.166666666666666, + 14.25, + 14.333333333333334, + 14.416666666666666, + 14.5, + 14.583333333333334, + 14.666666666666666, + 14.75, + 14.833333333333334, + 14.916666666666666, + 15, + 15.083333333333334, + 15.166666666666666, + 15.25, + 15.333333333333334, + 15.416666666666666, + 15.5, + 15.583333333333334, + 15.666666666666666, + 15.75, + 15.833333333333334, + 15.916666666666666, + 16, + 16.083333333333332, + 16.166666666666668, + 16.25, + 16.333333333333332, + 16.416666666666668, + 16.5, + 16.583333333333332, + 16.666666666666668, + 16.75, + 16.833333333333332, + 16.916666666666668, + 17, + 17.083333333333332, + 17.166666666666668, + 17.25, + 17.333333333333332, + 17.416666666666668, + 17.5, + 17.583333333333332, + 17.666666666666668, + 17.75, + 17.833333333333332, + 17.916666666666668, + 18, + 18.083333333333332, + 18.166666666666668, + 18.25, + 18.333333333333332, + 18.416666666666668, + 18.5, + 18.583333333333332, + 18.666666666666668, + 18.75, + 18.833333333333332, + 18.916666666666668, + 19, + 19.083333333333332, + 19.166666666666668, + 19.25, + 19.333333333333332, + 19.416666666666668, + 19.5, + 19.583333333333332, + 19.666666666666668, + 19.75, + 19.833333333333332, + 19.916666666666668, + 20, + 20.083333333333332, + 20.166666666666668, + 20.25, + 20.333333333333332, + 20.416666666666668, + 20.5, + 20.583333333333332, + 20.666666666666668, + 20.75, + 20.833333333333332, + 20.916666666666668, + 21, + 21.083333333333332, + 21.166666666666668, + 21.25, + 21.333333333333332, + 21.416666666666668, + 21.5, + 21.583333333333332, + 21.666666666666668, + 21.75, + 21.833333333333332, + 21.916666666666668, + 22, + 22.083333333333332, + 22.166666666666668, + 22.25, + 22.333333333333332, + 22.416666666666668, + 22.5, + 22.583333333333332, + 22.666666666666668, + 22.75, + 22.833333333333332, + 22.916666666666668, + 23, + 23.083333333333332, + 23.166666666666668, + 23.25, + 23.333333333333332, + 23.416666666666668, + 23.5, + 23.583333333333332, + 23.666666666666668, + 23.75, + 23.833333333333332, + 23.916666666666668, + 24, + 24.083333333333332, + 24.166666666666668, + 24.25, + 24.333333333333332, + 24.416666666666668, + 24.5, + 24.583333333333332, + 24.666666666666668, + 24.75, + 24.833333333333332, + 24.916666666666668, + 25, + 25.083333333333332, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 0, + 0, + 24, + 0, + 12, + 12, + 12, + 12, + 12, + 24, + 12, + 36, + 12, + 0, + 12, + 36, + 48, + 48, + 48, + 48, + 24, + 24, + 24, + 48, + 48, + 84, + 48, + 36, + 96, + 84, + 60, + 72, + 60, + 60, + 72, + 84, + 84, + 108, + 108, + 72, + 156, + 132, + 108, + 72, + 192, + 180, + 132, + 156, + 216, + 180, + 252, + 168, + 300, + 288, + 204, + 180, + 240, + 360, + 168, + 276, + 324, + 324, + 456, + 324, + 444, + 336, + 420, + 312, + 228, + 456, + 420, + 564, + 648, + 528, + 372, + 540, + 408, + 408, + 468, + 588, + 540, + 504, + 492, + 564, + 480, + 576, + 576, + 504, + 444, + 660, + 684, + 492, + 768, + 444, + 540, + 612, + 576, + 672, + 492, + 396, + 540, + 588, + 372, + 456, + 588, + 492, + 576, + 480, + 348, + 444, + 396, + 588, + 516, + 348, + 468, + 360, + 408, + 432, + 480, + 360, + 312, + 528, + 348, + 300, + 396, + 240, + 336, + 228, + 216, + 216, + 264, + 144, + 264, + 264, + 228, + 180, + 180, + 180, + 204, + 192, + 228, + 120, + 120, + 168, + 264, + 228, + 192, + 204, + 168, + 96, + 120, + 108, + 144, + 84, + 84, + 120, + 36, + 48, + 60, + 96, + 48, + 36, + 48, + 48, + 24, + 12, + 0, + 0, + 0, + 0, + 12, + 48, + 0, + 24, + 12, + 0, + 0, + 0, + 24, + 12, + 12, + 36, + 12, + 12, + 12, + 48, + 36, + 0, + 0, + 12, + 12, + 24, + 0, + 0, + 0, + 12, + 12, + 0, + 0, + 0, + 0, + 12, + 24 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:15", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:45", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:15", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:45", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:15", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:45", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:15", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:45", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:15", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:45", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:15", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:45", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:15", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:45", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:15", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:45", + "0.0" + ], + [ + "11:00", + "4.0" + ], + [ + "11:15", + "0.0" + ], + [ + "11:30", + "4.0" + ], + [ + "11:45", + "0.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:15", + "8.0" + ], + [ + "12:30", + "12.0" + ], + [ + "12:45", + "4.0" + ], + [ + "13:00", + "0.0" + ], + [ + "13:15", + "16.0" + ], + [ + "13:30", + "12.0" + ], + [ + "13:45", + "0.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:15", + "16.0" + ], + [ + "14:30", + "36.0" + ], + [ + "14:45", + "48.0" + ], + [ + "15:00", + "12.0" + ], + [ + "15:15", + "52.0" + ], + [ + "15:30", + "64.0" + ], + [ + "15:45", + "76.0" + ], + [ + "16:00", + "108.0" + ], + [ + "16:15", + "112.0" + ], + [ + "16:30", + "108.0" + ], + [ + "16:45", + "132.0" + ], + [ + "17:00", + "64.0" + ], + [ + "17:15", + "144.0" + ], + [ + "17:30", + "160.0" + ], + [ + "17:45", + "208.0" + ], + [ + "18:00", + "188.0" + ], + [ + "18:15", + "184.0" + ], + [ + "18:30", + "292.0" + ], + [ + "18:45", + "264.0" + ], + [ + "19:00", + "292.0" + ], + [ + "19:15", + "292.0" + ], + [ + "19:30", + "320.0" + ], + [ + "19:45", + "320.0" + ], + [ + "20:00", + "308.0" + ], + [ + "20:15", + "340.0" + ], + [ + "20:30", + "392.0" + ], + [ + "20:45", + "368.0" + ], + [ + "21:00", + "368.0" + ], + [ + "21:15", + "392.0" + ], + [ + "21:30", + "336.0" + ], + [ + "21:45", + "248.0" + ], + [ + "22:00", + "304.0" + ], + [ + "22:15", + "320.0" + ], + [ + "22:30", + "256.0" + ], + [ + "22:45", + "256.0" + ], + [ + "23:00", + "248.0" + ], + [ + "23:15", + "280.0" + ], + [ + "23:30", + "244.0" + ], + [ + "23:45", + "252.0" + ], + [ + "00:00", + "144.0" + ], + [ + "00:15", + "88.0" + ], + [ + "00:30", + "92.0" + ], + [ + "00:45", + "72.0" + ], + [ + "01:00", + "120.0" + ], + [ + "01:15", + "72.0" + ], + [ + "01:30", + "56.0" + ], + [ + "01:45", + "48.0" + ], + [ + "02:00", + "32.0" + ], + [ + "02:15", + "20.0" + ], + [ + "02:30", + "40.0" + ], + [ + "02:45", + "52.0" + ], + [ + "03:00", + "24.0" + ], + [ + "03:15", + "8.0" + ], + [ + "03:30", + "4.0" + ], + [ + "03:45", + "4.0" + ], + [ + "04:00", + "20.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "timebin_15", + "mode": "lines", + "name": "timebin_15", + "type": "scatter", + "x": [ + 0, + 0.25, + 0.5, + 0.75, + 1, + 1.25, + 1.5, + 1.75, + 2, + 2.25, + 2.5, + 2.75, + 3, + 3.25, + 3.5, + 3.75, + 4, + 4.25, + 4.5, + 4.75, + 5, + 5.25, + 5.5, + 5.75, + 6, + 6.25, + 6.5, + 6.75, + 7, + 7.25, + 7.5, + 7.75, + 8, + 8.25, + 8.5, + 8.75, + 9, + 9.25, + 9.5, + 9.75, + 10, + 10.25, + 10.5, + 10.75, + 11, + 11.25, + 11.5, + 11.75, + 12, + 12.25, + 12.5, + 12.75, + 13, + 13.25, + 13.5, + 13.75, + 14, + 14.25, + 14.5, + 14.75, + 15, + 15.25, + 15.5, + 15.75, + 16, + 16.25, + 16.5, + 16.75, + 17, + 17.25, + 17.5, + 17.75, + 18, + 18.25, + 18.5, + 18.75, + 19, + 19.25, + 19.5, + 19.75, + 20, + 20.25, + 20.5, + 20.75, + 21, + 21.25, + 21.5, + 21.75, + 22, + 22.25, + 22.5, + 22.75, + 23, + 23.25, + 23.5, + 23.75, + 24, + 24.25, + 24.5, + 24.75, + 25 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 4, + 0, + 4, + 0, + 0, + 8, + 12, + 4, + 0, + 16, + 12, + 0, + 24, + 16, + 36, + 48, + 12, + 52, + 64, + 76, + 108, + 112, + 108, + 132, + 64, + 144, + 160, + 208, + 188, + 184, + 292, + 264, + 292, + 292, + 320, + 320, + 308, + 340, + 392, + 368, + 368, + 392, + 336, + 248, + 304, + 320, + 256, + 256, + 248, + 280, + 244, + 252, + 144, + 88, + 92, + 72, + 120, + 72, + 56, + 48, + 32, + 20, + 40, + 52, + 24, + 8, + 4, + 4, + 20 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Refuel trips (per hour) — time_bin_size" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "12.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "30.0" + ], + [ + "12:49", + "18.0" + ], + [ + "13:00", + "18.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "12.0" + ], + [ + "13:30", + "18.0" + ], + [ + "13:40", + "30.0" + ], + [ + "13:49", + "30.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:10", + "48.0" + ], + [ + "14:19", + "84.0" + ], + [ + "14:30", + "78.0" + ], + [ + "14:40", + "54.0" + ], + [ + "14:49", + "96.0" + ], + [ + "15:00", + "78.0" + ], + [ + "15:10", + "66.0" + ], + [ + "15:19", + "150.0" + ], + [ + "15:30", + "150.0" + ], + [ + "15:40", + "90.0" + ], + [ + "15:49", + "126.0" + ], + [ + "16:00", + "102.0" + ], + [ + "16:10", + "198.0" + ], + [ + "16:19", + "138.0" + ], + [ + "16:30", + "144.0" + ], + [ + "16:40", + "192.0" + ], + [ + "16:49", + "186.0" + ], + [ + "17:00", + "234.0" + ], + [ + "17:10", + "300.0" + ], + [ + "17:19", + "168.0" + ], + [ + "17:30", + "168.0" + ], + [ + "17:40", + "330.0" + ], + [ + "17:49", + "330.0" + ], + [ + "18:00", + "372.0" + ], + [ + "18:10", + "324.0" + ], + [ + "18:19", + "378.0" + ], + [ + "18:30", + "372.0" + ], + [ + "18:40", + "474.0" + ], + [ + "18:49", + "480.0" + ], + [ + "19:00", + "498.0" + ], + [ + "19:10", + "372.0" + ], + [ + "19:19", + "498.0" + ], + [ + "19:30", + "474.0" + ], + [ + "19:40", + "504.0" + ], + [ + "19:49", + "534.0" + ], + [ + "20:00", + "426.0" + ], + [ + "20:10", + "474.0" + ], + [ + "20:19", + "444.0" + ], + [ + "20:30", + "360.0" + ], + [ + "20:40", + "432.0" + ], + [ + "20:49", + "534.0" + ], + [ + "21:00", + "444.0" + ], + [ + "21:10", + "384.0" + ], + [ + "21:19", + "468.0" + ], + [ + "21:30", + "420.0" + ], + [ + "21:40", + "378.0" + ], + [ + "21:49", + "300.0" + ], + [ + "22:00", + "264.0" + ], + [ + "22:10", + "312.0" + ], + [ + "22:19", + "330.0" + ], + [ + "22:30", + "294.0" + ], + [ + "22:40", + "252.0" + ], + [ + "22:49", + "174.0" + ], + [ + "23:00", + "162.0" + ], + [ + "23:10", + "198.0" + ], + [ + "23:19", + "228.0" + ], + [ + "23:30", + "240.0" + ], + [ + "23:40", + "186.0" + ], + [ + "23:49", + "156.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "108.0" + ], + [ + "00:19", + "108.0" + ], + [ + "00:30", + "84.0" + ], + [ + "00:40", + "66.0" + ], + [ + "00:49", + "66.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "54.0" + ], + [ + "01:19", + "42.0" + ], + [ + "01:30", + "54.0" + ], + [ + "01:40", + "48.0" + ], + [ + "01:49", + "12.0" + ], + [ + "02:00", + "42.0" + ], + [ + "02:10", + "48.0" + ], + [ + "02:19", + "48.0" + ], + [ + "02:30", + "36.0" + ], + [ + "02:40", + "36.0" + ], + [ + "02:49", + "30.0" + ], + [ + "03:00", + "30.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 6, + 0, + 12, + 6, + 6, + 30, + 18, + 18, + 18, + 12, + 18, + 30, + 30, + 24, + 48, + 84, + 78, + 54, + 96, + 78, + 66, + 150, + 150, + 90, + 126, + 102, + 198, + 138, + 144, + 192, + 186, + 234, + 300, + 168, + 168, + 330, + 330, + 372, + 324, + 378, + 372, + 474, + 480, + 498, + 372, + 498, + 474, + 504, + 534, + 426, + 474, + 444, + 360, + 432, + 534, + 444, + 384, + 468, + 420, + 378, + 300, + 264, + 312, + 330, + 294, + 252, + 174, + 162, + 198, + 228, + 240, + 186, + 156, + 156, + 108, + 108, + 84, + 66, + 66, + 48, + 54, + 42, + 54, + 48, + 12, + 42, + 48, + 48, + 36, + 36, + 30, + 30, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "18.0" + ], + [ + "11:49", + "12.0" + ], + [ + "12:00", + "12.0" + ], + [ + "12:10", + "6.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "0.0" + ], + [ + "12:49", + "6.0" + ], + [ + "13:00", + "18.0" + ], + [ + "13:10", + "24.0" + ], + [ + "13:19", + "18.0" + ], + [ + "13:30", + "42.0" + ], + [ + "13:40", + "48.0" + ], + [ + "13:49", + "42.0" + ], + [ + "14:00", + "36.0" + ], + [ + "14:10", + "48.0" + ], + [ + "14:19", + "60.0" + ], + [ + "14:30", + "78.0" + ], + [ + "14:40", + "66.0" + ], + [ + "14:49", + "60.0" + ], + [ + "15:00", + "66.0" + ], + [ + "15:10", + "84.0" + ], + [ + "15:19", + "132.0" + ], + [ + "15:30", + "114.0" + ], + [ + "15:40", + "90.0" + ], + [ + "15:49", + "120.0" + ], + [ + "16:00", + "156.0" + ], + [ + "16:10", + "120.0" + ], + [ + "16:19", + "174.0" + ], + [ + "16:30", + "198.0" + ], + [ + "16:40", + "198.0" + ], + [ + "16:49", + "258.0" + ], + [ + "17:00", + "192.0" + ], + [ + "17:10", + "228.0" + ], + [ + "17:19", + "216.0" + ], + [ + "17:30", + "282.0" + ], + [ + "17:40", + "288.0" + ], + [ + "17:49", + "288.0" + ], + [ + "18:00", + "366.0" + ], + [ + "18:10", + "390.0" + ], + [ + "18:19", + "330.0" + ], + [ + "18:30", + "342.0" + ], + [ + "18:40", + "384.0" + ], + [ + "18:49", + "402.0" + ], + [ + "19:00", + "420.0" + ], + [ + "19:10", + "468.0" + ], + [ + "19:19", + "426.0" + ], + [ + "19:30", + "498.0" + ], + [ + "19:40", + "486.0" + ], + [ + "19:49", + "534.0" + ], + [ + "20:00", + "408.0" + ], + [ + "20:10", + "432.0" + ], + [ + "20:19", + "468.0" + ], + [ + "20:30", + "570.0" + ], + [ + "20:40", + "426.0" + ], + [ + "20:49", + "462.0" + ], + [ + "21:00", + "528.0" + ], + [ + "21:10", + "504.0" + ], + [ + "21:19", + "480.0" + ], + [ + "21:30", + "450.0" + ], + [ + "21:40", + "390.0" + ], + [ + "21:49", + "306.0" + ], + [ + "22:00", + "288.0" + ], + [ + "22:10", + "348.0" + ], + [ + "22:19", + "258.0" + ], + [ + "22:30", + "234.0" + ], + [ + "22:40", + "246.0" + ], + [ + "22:49", + "222.0" + ], + [ + "23:00", + "174.0" + ], + [ + "23:10", + "180.0" + ], + [ + "23:19", + "192.0" + ], + [ + "23:30", + "192.0" + ], + [ + "23:40", + "228.0" + ], + [ + "23:49", + "156.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "138.0" + ], + [ + "00:19", + "84.0" + ], + [ + "00:30", + "108.0" + ], + [ + "00:40", + "60.0" + ], + [ + "00:49", + "78.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "48.0" + ], + [ + "01:19", + "24.0" + ], + [ + "01:30", + "66.0" + ], + [ + "01:40", + "36.0" + ], + [ + "01:49", + "24.0" + ], + [ + "02:00", + "24.0" + ], + [ + "02:10", + "30.0" + ], + [ + "02:19", + "12.0" + ], + [ + "02:30", + "48.0" + ], + [ + "02:40", + "48.0" + ], + [ + "02:49", + "36.0" + ], + [ + "03:00", + "12.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_5", + "mode": "lines", + "name": "detour_5", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 12, + 12, + 6, + 6, + 6, + 0, + 6, + 18, + 24, + 18, + 42, + 48, + 42, + 36, + 48, + 60, + 78, + 66, + 60, + 66, + 84, + 132, + 114, + 90, + 120, + 156, + 120, + 174, + 198, + 198, + 258, + 192, + 228, + 216, + 282, + 288, + 288, + 366, + 390, + 330, + 342, + 384, + 402, + 420, + 468, + 426, + 498, + 486, + 534, + 408, + 432, + 468, + 570, + 426, + 462, + 528, + 504, + 480, + 450, + 390, + 306, + 288, + 348, + 258, + 234, + 246, + 222, + 174, + 180, + 192, + 192, + 228, + 156, + 156, + 138, + 84, + 108, + 60, + 78, + 48, + 48, + 24, + 66, + 36, + 24, + 24, + 30, + 12, + 48, + 48, + 36, + 12, + 6, + 0, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "6.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "6.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "12.0" + ], + [ + "12:40", + "12.0" + ], + [ + "12:49", + "6.0" + ], + [ + "13:00", + "30.0" + ], + [ + "13:10", + "24.0" + ], + [ + "13:19", + "12.0" + ], + [ + "13:30", + "48.0" + ], + [ + "13:40", + "18.0" + ], + [ + "13:49", + "18.0" + ], + [ + "14:00", + "48.0" + ], + [ + "14:10", + "24.0" + ], + [ + "14:19", + "96.0" + ], + [ + "14:30", + "60.0" + ], + [ + "14:40", + "78.0" + ], + [ + "14:49", + "72.0" + ], + [ + "15:00", + "84.0" + ], + [ + "15:10", + "108.0" + ], + [ + "15:19", + "102.0" + ], + [ + "15:30", + "60.0" + ], + [ + "15:40", + "144.0" + ], + [ + "15:49", + "162.0" + ], + [ + "16:00", + "150.0" + ], + [ + "16:10", + "168.0" + ], + [ + "16:19", + "174.0" + ], + [ + "16:30", + "228.0" + ], + [ + "16:40", + "222.0" + ], + [ + "16:49", + "204.0" + ], + [ + "17:00", + "246.0" + ], + [ + "17:10", + "240.0" + ], + [ + "17:19", + "228.0" + ], + [ + "17:30", + "288.0" + ], + [ + "17:40", + "294.0" + ], + [ + "17:49", + "438.0" + ], + [ + "18:00", + "336.0" + ], + [ + "18:10", + "282.0" + ], + [ + "18:19", + "318.0" + ], + [ + "18:30", + "378.0" + ], + [ + "18:40", + "372.0" + ], + [ + "18:49", + "414.0" + ], + [ + "19:00", + "462.0" + ], + [ + "19:10", + "432.0" + ], + [ + "19:19", + "450.0" + ], + [ + "19:30", + "522.0" + ], + [ + "19:40", + "414.0" + ], + [ + "19:49", + "468.0" + ], + [ + "20:00", + "408.0" + ], + [ + "20:10", + "486.0" + ], + [ + "20:19", + "426.0" + ], + [ + "20:30", + "474.0" + ], + [ + "20:40", + "522.0" + ], + [ + "20:49", + "468.0" + ], + [ + "21:00", + "480.0" + ], + [ + "21:10", + "402.0" + ], + [ + "21:19", + "480.0" + ], + [ + "21:30", + "426.0" + ], + [ + "21:40", + "360.0" + ], + [ + "21:49", + "270.0" + ], + [ + "22:00", + "300.0" + ], + [ + "22:10", + "306.0" + ], + [ + "22:19", + "270.0" + ], + [ + "22:30", + "246.0" + ], + [ + "22:40", + "264.0" + ], + [ + "22:49", + "216.0" + ], + [ + "23:00", + "174.0" + ], + [ + "23:10", + "234.0" + ], + [ + "23:19", + "222.0" + ], + [ + "23:30", + "234.0" + ], + [ + "23:40", + "186.0" + ], + [ + "23:49", + "144.0" + ], + [ + "00:00", + "192.0" + ], + [ + "00:10", + "108.0" + ], + [ + "00:19", + "90.0" + ], + [ + "00:30", + "48.0" + ], + [ + "00:40", + "66.0" + ], + [ + "00:49", + "60.0" + ], + [ + "01:00", + "54.0" + ], + [ + "01:10", + "60.0" + ], + [ + "01:19", + "36.0" + ], + [ + "01:30", + "60.0" + ], + [ + "01:40", + "30.0" + ], + [ + "01:49", + "42.0" + ], + [ + "02:00", + "18.0" + ], + [ + "02:10", + "12.0" + ], + [ + "02:19", + "6.0" + ], + [ + "02:30", + "42.0" + ], + [ + "02:40", + "42.0" + ], + [ + "02:49", + "36.0" + ], + [ + "03:00", + "24.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "12.0" + ], + [ + "04:00", + "18.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_10", + "mode": "lines", + "name": "detour_10", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 6, + 6, + 12, + 6, + 12, + 12, + 6, + 30, + 24, + 12, + 48, + 18, + 18, + 48, + 24, + 96, + 60, + 78, + 72, + 84, + 108, + 102, + 60, + 144, + 162, + 150, + 168, + 174, + 228, + 222, + 204, + 246, + 240, + 228, + 288, + 294, + 438, + 336, + 282, + 318, + 378, + 372, + 414, + 462, + 432, + 450, + 522, + 414, + 468, + 408, + 486, + 426, + 474, + 522, + 468, + 480, + 402, + 480, + 426, + 360, + 270, + 300, + 306, + 270, + 246, + 264, + 216, + 174, + 234, + 222, + 234, + 186, + 144, + 192, + 108, + 90, + 48, + 66, + 60, + 54, + 60, + 36, + 60, + 30, + 42, + 18, + 12, + 6, + 42, + 42, + 36, + 24, + 6, + 6, + 6, + 0, + 12, + 18, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "18.0" + ], + [ + "11:49", + "0.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "18.0" + ], + [ + "12:19", + "0.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "18.0" + ], + [ + "12:49", + "12.0" + ], + [ + "13:00", + "12.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "42.0" + ], + [ + "13:30", + "48.0" + ], + [ + "13:40", + "18.0" + ], + [ + "13:49", + "24.0" + ], + [ + "14:00", + "48.0" + ], + [ + "14:10", + "42.0" + ], + [ + "14:19", + "72.0" + ], + [ + "14:30", + "66.0" + ], + [ + "14:40", + "54.0" + ], + [ + "14:49", + "78.0" + ], + [ + "15:00", + "66.0" + ], + [ + "15:10", + "90.0" + ], + [ + "15:19", + "102.0" + ], + [ + "15:30", + "144.0" + ], + [ + "15:40", + "72.0" + ], + [ + "15:49", + "168.0" + ], + [ + "16:00", + "174.0" + ], + [ + "16:10", + "198.0" + ], + [ + "16:19", + "156.0" + ], + [ + "16:30", + "198.0" + ], + [ + "16:40", + "228.0" + ], + [ + "16:49", + "216.0" + ], + [ + "17:00", + "228.0" + ], + [ + "17:10", + "270.0" + ], + [ + "17:19", + "294.0" + ], + [ + "17:30", + "222.0" + ], + [ + "17:40", + "336.0" + ], + [ + "17:49", + "318.0" + ], + [ + "18:00", + "342.0" + ], + [ + "18:10", + "318.0" + ], + [ + "18:19", + "390.0" + ], + [ + "18:30", + "312.0" + ], + [ + "18:40", + "390.0" + ], + [ + "18:49", + "396.0" + ], + [ + "19:00", + "372.0" + ], + [ + "19:10", + "444.0" + ], + [ + "19:19", + "426.0" + ], + [ + "19:30", + "486.0" + ], + [ + "19:40", + "462.0" + ], + [ + "19:49", + "390.0" + ], + [ + "20:00", + "540.0" + ], + [ + "20:10", + "432.0" + ], + [ + "20:19", + "468.0" + ], + [ + "20:30", + "528.0" + ], + [ + "20:40", + "540.0" + ], + [ + "20:49", + "588.0" + ], + [ + "21:00", + "552.0" + ], + [ + "21:10", + "462.0" + ], + [ + "21:19", + "618.0" + ], + [ + "21:30", + "396.0" + ], + [ + "21:40", + "336.0" + ], + [ + "21:49", + "384.0" + ], + [ + "22:00", + "336.0" + ], + [ + "22:10", + "246.0" + ], + [ + "22:19", + "330.0" + ], + [ + "22:30", + "192.0" + ], + [ + "22:40", + "246.0" + ], + [ + "22:49", + "138.0" + ], + [ + "23:00", + "210.0" + ], + [ + "23:10", + "222.0" + ], + [ + "23:19", + "216.0" + ], + [ + "23:30", + "162.0" + ], + [ + "23:40", + "126.0" + ], + [ + "23:49", + "150.0" + ], + [ + "00:00", + "150.0" + ], + [ + "00:10", + "114.0" + ], + [ + "00:19", + "66.0" + ], + [ + "00:30", + "102.0" + ], + [ + "00:40", + "54.0" + ], + [ + "00:49", + "54.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "84.0" + ], + [ + "01:19", + "48.0" + ], + [ + "01:30", + "84.0" + ], + [ + "01:40", + "24.0" + ], + [ + "01:49", + "30.0" + ], + [ + "02:00", + "60.0" + ], + [ + "02:10", + "30.0" + ], + [ + "02:19", + "12.0" + ], + [ + "02:30", + "24.0" + ], + [ + "02:40", + "30.0" + ], + [ + "02:49", + "48.0" + ], + [ + "03:00", + "12.0" + ], + [ + "03:10", + "24.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "6.0" + ], + [ + "03:49", + "6.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "detour_20", + "mode": "lines", + "name": "detour_20", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 18, + 0, + 0, + 18, + 0, + 6, + 18, + 12, + 12, + 18, + 42, + 48, + 18, + 24, + 48, + 42, + 72, + 66, + 54, + 78, + 66, + 90, + 102, + 144, + 72, + 168, + 174, + 198, + 156, + 198, + 228, + 216, + 228, + 270, + 294, + 222, + 336, + 318, + 342, + 318, + 390, + 312, + 390, + 396, + 372, + 444, + 426, + 486, + 462, + 390, + 540, + 432, + 468, + 528, + 540, + 588, + 552, + 462, + 618, + 396, + 336, + 384, + 336, + 246, + 330, + 192, + 246, + 138, + 210, + 222, + 216, + 162, + 126, + 150, + 150, + 114, + 66, + 102, + 54, + 54, + 48, + 84, + 48, + 84, + 24, + 30, + 60, + 30, + 12, + 24, + 30, + 48, + 12, + 24, + 0, + 6, + 6, + 6, + 0, + 0, + 6 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Refuel trips (per hour) — max_detour" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "12.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "30.0" + ], + [ + "12:49", + "18.0" + ], + [ + "13:00", + "18.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "12.0" + ], + [ + "13:30", + "18.0" + ], + [ + "13:40", + "30.0" + ], + [ + "13:49", + "30.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:10", + "48.0" + ], + [ + "14:19", + "84.0" + ], + [ + "14:30", + "78.0" + ], + [ + "14:40", + "54.0" + ], + [ + "14:49", + "96.0" + ], + [ + "15:00", + "78.0" + ], + [ + "15:10", + "66.0" + ], + [ + "15:19", + "150.0" + ], + [ + "15:30", + "150.0" + ], + [ + "15:40", + "90.0" + ], + [ + "15:49", + "126.0" + ], + [ + "16:00", + "102.0" + ], + [ + "16:10", + "198.0" + ], + [ + "16:19", + "138.0" + ], + [ + "16:30", + "144.0" + ], + [ + "16:40", + "192.0" + ], + [ + "16:49", + "186.0" + ], + [ + "17:00", + "234.0" + ], + [ + "17:10", + "300.0" + ], + [ + "17:19", + "168.0" + ], + [ + "17:30", + "168.0" + ], + [ + "17:40", + "330.0" + ], + [ + "17:49", + "330.0" + ], + [ + "18:00", + "372.0" + ], + [ + "18:10", + "324.0" + ], + [ + "18:19", + "378.0" + ], + [ + "18:30", + "372.0" + ], + [ + "18:40", + "474.0" + ], + [ + "18:49", + "480.0" + ], + [ + "19:00", + "498.0" + ], + [ + "19:10", + "372.0" + ], + [ + "19:19", + "498.0" + ], + [ + "19:30", + "474.0" + ], + [ + "19:40", + "504.0" + ], + [ + "19:49", + "534.0" + ], + [ + "20:00", + "426.0" + ], + [ + "20:10", + "474.0" + ], + [ + "20:19", + "444.0" + ], + [ + "20:30", + "360.0" + ], + [ + "20:40", + "432.0" + ], + [ + "20:49", + "534.0" + ], + [ + "21:00", + "444.0" + ], + [ + "21:10", + "384.0" + ], + [ + "21:19", + "468.0" + ], + [ + "21:30", + "420.0" + ], + [ + "21:40", + "378.0" + ], + [ + "21:49", + "300.0" + ], + [ + "22:00", + "264.0" + ], + [ + "22:10", + "312.0" + ], + [ + "22:19", + "330.0" + ], + [ + "22:30", + "294.0" + ], + [ + "22:40", + "252.0" + ], + [ + "22:49", + "174.0" + ], + [ + "23:00", + "162.0" + ], + [ + "23:10", + "198.0" + ], + [ + "23:19", + "228.0" + ], + [ + "23:30", + "240.0" + ], + [ + "23:40", + "186.0" + ], + [ + "23:49", + "156.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "108.0" + ], + [ + "00:19", + "108.0" + ], + [ + "00:30", + "84.0" + ], + [ + "00:40", + "66.0" + ], + [ + "00:49", + "66.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "54.0" + ], + [ + "01:19", + "42.0" + ], + [ + "01:30", + "54.0" + ], + [ + "01:40", + "48.0" + ], + [ + "01:49", + "12.0" + ], + [ + "02:00", + "42.0" + ], + [ + "02:10", + "48.0" + ], + [ + "02:19", + "48.0" + ], + [ + "02:30", + "36.0" + ], + [ + "02:40", + "36.0" + ], + [ + "02:49", + "30.0" + ], + [ + "03:00", + "30.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 6, + 0, + 12, + 6, + 6, + 30, + 18, + 18, + 18, + 12, + 18, + 30, + 30, + 24, + 48, + 84, + 78, + 54, + 96, + 78, + 66, + 150, + 150, + 90, + 126, + 102, + 198, + 138, + 144, + 192, + 186, + 234, + 300, + 168, + 168, + 330, + 330, + 372, + 324, + 378, + 372, + 474, + 480, + 498, + 372, + 498, + 474, + 504, + 534, + 426, + 474, + 444, + 360, + 432, + 534, + 444, + 384, + 468, + 420, + 378, + 300, + 264, + 312, + 330, + 294, + 252, + 174, + 162, + 198, + 228, + 240, + 186, + 156, + 156, + 108, + 108, + 84, + 66, + 66, + 48, + 54, + 42, + 54, + 48, + 12, + 42, + 48, + 48, + 36, + 36, + 30, + 30, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "6.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "6.0" + ], + [ + "11:40", + "0.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "6.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "12.0" + ], + [ + "12:40", + "6.0" + ], + [ + "12:49", + "6.0" + ], + [ + "13:00", + "24.0" + ], + [ + "13:10", + "30.0" + ], + [ + "13:19", + "30.0" + ], + [ + "13:30", + "18.0" + ], + [ + "13:40", + "30.0" + ], + [ + "13:49", + "12.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:10", + "42.0" + ], + [ + "14:19", + "54.0" + ], + [ + "14:30", + "54.0" + ], + [ + "14:40", + "72.0" + ], + [ + "14:49", + "108.0" + ], + [ + "15:00", + "90.0" + ], + [ + "15:10", + "84.0" + ], + [ + "15:19", + "120.0" + ], + [ + "15:30", + "114.0" + ], + [ + "15:40", + "120.0" + ], + [ + "15:49", + "180.0" + ], + [ + "16:00", + "96.0" + ], + [ + "16:10", + "150.0" + ], + [ + "16:19", + "168.0" + ], + [ + "16:30", + "186.0" + ], + [ + "16:40", + "246.0" + ], + [ + "16:49", + "180.0" + ], + [ + "17:00", + "246.0" + ], + [ + "17:10", + "234.0" + ], + [ + "17:19", + "252.0" + ], + [ + "17:30", + "204.0" + ], + [ + "17:40", + "288.0" + ], + [ + "17:49", + "264.0" + ], + [ + "18:00", + "324.0" + ], + [ + "18:10", + "324.0" + ], + [ + "18:19", + "390.0" + ], + [ + "18:30", + "384.0" + ], + [ + "18:40", + "408.0" + ], + [ + "18:49", + "372.0" + ], + [ + "19:00", + "318.0" + ], + [ + "19:10", + "318.0" + ], + [ + "19:19", + "456.0" + ], + [ + "19:30", + "444.0" + ], + [ + "19:40", + "384.0" + ], + [ + "19:49", + "402.0" + ], + [ + "20:00", + "366.0" + ], + [ + "20:10", + "378.0" + ], + [ + "20:19", + "360.0" + ], + [ + "20:30", + "330.0" + ], + [ + "20:40", + "474.0" + ], + [ + "20:49", + "426.0" + ], + [ + "21:00", + "456.0" + ], + [ + "21:10", + "318.0" + ], + [ + "21:19", + "342.0" + ], + [ + "21:30", + "324.0" + ], + [ + "21:40", + "276.0" + ], + [ + "21:49", + "276.0" + ], + [ + "22:00", + "300.0" + ], + [ + "22:10", + "216.0" + ], + [ + "22:19", + "270.0" + ], + [ + "22:30", + "270.0" + ], + [ + "22:40", + "246.0" + ], + [ + "22:49", + "186.0" + ], + [ + "23:00", + "156.0" + ], + [ + "23:10", + "138.0" + ], + [ + "23:19", + "204.0" + ], + [ + "23:30", + "138.0" + ], + [ + "23:40", + "120.0" + ], + [ + "23:49", + "210.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "132.0" + ], + [ + "00:19", + "84.0" + ], + [ + "00:30", + "90.0" + ], + [ + "00:40", + "18.0" + ], + [ + "00:49", + "90.0" + ], + [ + "01:00", + "72.0" + ], + [ + "01:10", + "30.0" + ], + [ + "01:19", + "36.0" + ], + [ + "01:30", + "30.0" + ], + [ + "01:40", + "36.0" + ], + [ + "01:49", + "48.0" + ], + [ + "02:00", + "30.0" + ], + [ + "02:10", + "12.0" + ], + [ + "02:19", + "30.0" + ], + [ + "02:30", + "18.0" + ], + [ + "02:40", + "36.0" + ], + [ + "02:49", + "24.0" + ], + [ + "03:00", + "42.0" + ], + [ + "03:10", + "18.0" + ], + [ + "03:19", + "12.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "6.0" + ], + [ + "03:49", + "6.0" + ], + [ + "04:00", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_6", + "mode": "lines", + "name": "occ_6", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 6, + 0, + 6, + 0, + 6, + 6, + 12, + 6, + 6, + 24, + 30, + 30, + 18, + 30, + 12, + 24, + 42, + 54, + 54, + 72, + 108, + 90, + 84, + 120, + 114, + 120, + 180, + 96, + 150, + 168, + 186, + 246, + 180, + 246, + 234, + 252, + 204, + 288, + 264, + 324, + 324, + 390, + 384, + 408, + 372, + 318, + 318, + 456, + 444, + 384, + 402, + 366, + 378, + 360, + 330, + 474, + 426, + 456, + 318, + 342, + 324, + 276, + 276, + 300, + 216, + 270, + 270, + 246, + 186, + 156, + 138, + 204, + 138, + 120, + 210, + 156, + 132, + 84, + 90, + 18, + 90, + 72, + 30, + 36, + 30, + 36, + 48, + 30, + 12, + 30, + 18, + 36, + 24, + 42, + 18, + 12, + 0, + 6, + 6, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "6.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "0.0" + ], + [ + "11:49", + "0.0" + ], + [ + "12:00", + "6.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "12.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "6.0" + ], + [ + "12:49", + "0.0" + ], + [ + "13:00", + "30.0" + ], + [ + "13:10", + "12.0" + ], + [ + "13:19", + "24.0" + ], + [ + "13:30", + "30.0" + ], + [ + "13:40", + "42.0" + ], + [ + "13:49", + "60.0" + ], + [ + "14:00", + "18.0" + ], + [ + "14:10", + "66.0" + ], + [ + "14:19", + "54.0" + ], + [ + "14:30", + "84.0" + ], + [ + "14:40", + "60.0" + ], + [ + "14:49", + "96.0" + ], + [ + "15:00", + "102.0" + ], + [ + "15:10", + "84.0" + ], + [ + "15:19", + "126.0" + ], + [ + "15:30", + "96.0" + ], + [ + "15:40", + "150.0" + ], + [ + "15:49", + "120.0" + ], + [ + "16:00", + "120.0" + ], + [ + "16:10", + "126.0" + ], + [ + "16:19", + "132.0" + ], + [ + "16:30", + "156.0" + ], + [ + "16:40", + "156.0" + ], + [ + "16:49", + "198.0" + ], + [ + "17:00", + "138.0" + ], + [ + "17:10", + "198.0" + ], + [ + "17:19", + "312.0" + ], + [ + "17:30", + "270.0" + ], + [ + "17:40", + "276.0" + ], + [ + "17:49", + "270.0" + ], + [ + "18:00", + "294.0" + ], + [ + "18:10", + "264.0" + ], + [ + "18:19", + "288.0" + ], + [ + "18:30", + "306.0" + ], + [ + "18:40", + "408.0" + ], + [ + "18:49", + "384.0" + ], + [ + "19:00", + "354.0" + ], + [ + "19:10", + "396.0" + ], + [ + "19:19", + "420.0" + ], + [ + "19:30", + "414.0" + ], + [ + "19:40", + "354.0" + ], + [ + "19:49", + "360.0" + ], + [ + "20:00", + "342.0" + ], + [ + "20:10", + "294.0" + ], + [ + "20:19", + "426.0" + ], + [ + "20:30", + "462.0" + ], + [ + "20:40", + "414.0" + ], + [ + "20:49", + "540.0" + ], + [ + "21:00", + "390.0" + ], + [ + "21:10", + "378.0" + ], + [ + "21:19", + "336.0" + ], + [ + "21:30", + "360.0" + ], + [ + "21:40", + "300.0" + ], + [ + "21:49", + "240.0" + ], + [ + "22:00", + "204.0" + ], + [ + "22:10", + "222.0" + ], + [ + "22:19", + "204.0" + ], + [ + "22:30", + "156.0" + ], + [ + "22:40", + "168.0" + ], + [ + "22:49", + "192.0" + ], + [ + "23:00", + "270.0" + ], + [ + "23:10", + "162.0" + ], + [ + "23:19", + "138.0" + ], + [ + "23:30", + "180.0" + ], + [ + "23:40", + "156.0" + ], + [ + "23:49", + "102.0" + ], + [ + "00:00", + "180.0" + ], + [ + "00:10", + "54.0" + ], + [ + "00:19", + "84.0" + ], + [ + "00:30", + "114.0" + ], + [ + "00:40", + "30.0" + ], + [ + "00:49", + "36.0" + ], + [ + "01:00", + "66.0" + ], + [ + "01:10", + "66.0" + ], + [ + "01:19", + "54.0" + ], + [ + "01:30", + "60.0" + ], + [ + "01:40", + "24.0" + ], + [ + "01:49", + "54.0" + ], + [ + "02:00", + "18.0" + ], + [ + "02:10", + "18.0" + ], + [ + "02:19", + "0.0" + ], + [ + "02:30", + "30.0" + ], + [ + "02:40", + "12.0" + ], + [ + "02:49", + "42.0" + ], + [ + "03:00", + "42.0" + ], + [ + "03:10", + "6.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "occ_8", + "mode": "lines", + "name": "occ_8", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 0, + 0, + 6, + 12, + 12, + 6, + 6, + 0, + 30, + 12, + 24, + 30, + 42, + 60, + 18, + 66, + 54, + 84, + 60, + 96, + 102, + 84, + 126, + 96, + 150, + 120, + 120, + 126, + 132, + 156, + 156, + 198, + 138, + 198, + 312, + 270, + 276, + 270, + 294, + 264, + 288, + 306, + 408, + 384, + 354, + 396, + 420, + 414, + 354, + 360, + 342, + 294, + 426, + 462, + 414, + 540, + 390, + 378, + 336, + 360, + 300, + 240, + 204, + 222, + 204, + 156, + 168, + 192, + 270, + 162, + 138, + 180, + 156, + 102, + 180, + 54, + 84, + 114, + 30, + 36, + 66, + 66, + 54, + 60, + 24, + 54, + 18, + 18, + 0, + 30, + 12, + 42, + 42, + 6, + 0, + 6, + 0, + 0, + 0, + 6 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Refuel trips (per hour) — max_occupancy" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "0.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "0.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "0.0" + ], + [ + "11:40", + "12.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "0.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "6.0" + ], + [ + "12:30", + "6.0" + ], + [ + "12:40", + "30.0" + ], + [ + "12:49", + "18.0" + ], + [ + "13:00", + "18.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "12.0" + ], + [ + "13:30", + "18.0" + ], + [ + "13:40", + "30.0" + ], + [ + "13:49", + "30.0" + ], + [ + "14:00", + "24.0" + ], + [ + "14:10", + "48.0" + ], + [ + "14:19", + "84.0" + ], + [ + "14:30", + "78.0" + ], + [ + "14:40", + "54.0" + ], + [ + "14:49", + "96.0" + ], + [ + "15:00", + "78.0" + ], + [ + "15:10", + "66.0" + ], + [ + "15:19", + "150.0" + ], + [ + "15:30", + "150.0" + ], + [ + "15:40", + "90.0" + ], + [ + "15:49", + "126.0" + ], + [ + "16:00", + "102.0" + ], + [ + "16:10", + "198.0" + ], + [ + "16:19", + "138.0" + ], + [ + "16:30", + "144.0" + ], + [ + "16:40", + "192.0" + ], + [ + "16:49", + "186.0" + ], + [ + "17:00", + "234.0" + ], + [ + "17:10", + "300.0" + ], + [ + "17:19", + "168.0" + ], + [ + "17:30", + "168.0" + ], + [ + "17:40", + "330.0" + ], + [ + "17:49", + "330.0" + ], + [ + "18:00", + "372.0" + ], + [ + "18:10", + "324.0" + ], + [ + "18:19", + "378.0" + ], + [ + "18:30", + "372.0" + ], + [ + "18:40", + "474.0" + ], + [ + "18:49", + "480.0" + ], + [ + "19:00", + "498.0" + ], + [ + "19:10", + "372.0" + ], + [ + "19:19", + "498.0" + ], + [ + "19:30", + "474.0" + ], + [ + "19:40", + "504.0" + ], + [ + "19:49", + "534.0" + ], + [ + "20:00", + "426.0" + ], + [ + "20:10", + "474.0" + ], + [ + "20:19", + "444.0" + ], + [ + "20:30", + "360.0" + ], + [ + "20:40", + "432.0" + ], + [ + "20:49", + "534.0" + ], + [ + "21:00", + "444.0" + ], + [ + "21:10", + "384.0" + ], + [ + "21:19", + "468.0" + ], + [ + "21:30", + "420.0" + ], + [ + "21:40", + "378.0" + ], + [ + "21:49", + "300.0" + ], + [ + "22:00", + "264.0" + ], + [ + "22:10", + "312.0" + ], + [ + "22:19", + "330.0" + ], + [ + "22:30", + "294.0" + ], + [ + "22:40", + "252.0" + ], + [ + "22:49", + "174.0" + ], + [ + "23:00", + "162.0" + ], + [ + "23:10", + "198.0" + ], + [ + "23:19", + "228.0" + ], + [ + "23:30", + "240.0" + ], + [ + "23:40", + "186.0" + ], + [ + "23:49", + "156.0" + ], + [ + "00:00", + "156.0" + ], + [ + "00:10", + "108.0" + ], + [ + "00:19", + "108.0" + ], + [ + "00:30", + "84.0" + ], + [ + "00:40", + "66.0" + ], + [ + "00:49", + "66.0" + ], + [ + "01:00", + "48.0" + ], + [ + "01:10", + "54.0" + ], + [ + "01:19", + "42.0" + ], + [ + "01:30", + "54.0" + ], + [ + "01:40", + "48.0" + ], + [ + "01:49", + "12.0" + ], + [ + "02:00", + "42.0" + ], + [ + "02:10", + "48.0" + ], + [ + "02:19", + "48.0" + ], + [ + "02:30", + "36.0" + ], + [ + "02:40", + "36.0" + ], + [ + "02:49", + "30.0" + ], + [ + "03:00", + "30.0" + ], + [ + "03:10", + "12.0" + ], + [ + "03:19", + "6.0" + ], + [ + "03:30", + "6.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "6.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "base", + "mode": "lines", + "name": "base", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 6, + 0, + 12, + 6, + 6, + 30, + 18, + 18, + 18, + 12, + 18, + 30, + 30, + 24, + 48, + 84, + 78, + 54, + 96, + 78, + 66, + 150, + 150, + 90, + 126, + 102, + 198, + 138, + 144, + 192, + 186, + 234, + 300, + 168, + 168, + 330, + 330, + 372, + 324, + 378, + 372, + 474, + 480, + 498, + 372, + 498, + 474, + 504, + 534, + 426, + 474, + 444, + 360, + 432, + 534, + 444, + 384, + 468, + 420, + 378, + 300, + 264, + 312, + 330, + 294, + 252, + 174, + 162, + 198, + 228, + 240, + 186, + 156, + 156, + 108, + 108, + 84, + 66, + 66, + 48, + 54, + 42, + 54, + 48, + 12, + 42, + 48, + 48, + 36, + 36, + 30, + 30, + 12, + 6, + 6, + 0, + 0, + 0, + 6 + ] + }, + { + "customdata": [ + [ + "03:00", + "0.0" + ], + [ + "03:10", + "0.0" + ], + [ + "03:19", + "0.0" + ], + [ + "03:30", + "0.0" + ], + [ + "03:40", + "0.0" + ], + [ + "03:49", + "0.0" + ], + [ + "04:00", + "0.0" + ], + [ + "04:10", + "0.0" + ], + [ + "04:19", + "0.0" + ], + [ + "04:30", + "0.0" + ], + [ + "04:40", + "0.0" + ], + [ + "04:49", + "0.0" + ], + [ + "05:00", + "0.0" + ], + [ + "05:10", + "0.0" + ], + [ + "05:19", + "0.0" + ], + [ + "05:30", + "0.0" + ], + [ + "05:40", + "0.0" + ], + [ + "05:49", + "0.0" + ], + [ + "06:00", + "0.0" + ], + [ + "06:10", + "0.0" + ], + [ + "06:19", + "0.0" + ], + [ + "06:30", + "0.0" + ], + [ + "06:40", + "0.0" + ], + [ + "06:49", + "0.0" + ], + [ + "07:00", + "0.0" + ], + [ + "07:10", + "0.0" + ], + [ + "07:19", + "0.0" + ], + [ + "07:30", + "0.0" + ], + [ + "07:40", + "0.0" + ], + [ + "07:49", + "0.0" + ], + [ + "08:00", + "0.0" + ], + [ + "08:10", + "0.0" + ], + [ + "08:19", + "0.0" + ], + [ + "08:30", + "0.0" + ], + [ + "08:40", + "0.0" + ], + [ + "08:49", + "0.0" + ], + [ + "09:00", + "0.0" + ], + [ + "09:10", + "0.0" + ], + [ + "09:19", + "0.0" + ], + [ + "09:30", + "0.0" + ], + [ + "09:40", + "0.0" + ], + [ + "09:49", + "0.0" + ], + [ + "10:00", + "0.0" + ], + [ + "10:10", + "0.0" + ], + [ + "10:19", + "0.0" + ], + [ + "10:30", + "6.0" + ], + [ + "10:40", + "0.0" + ], + [ + "10:49", + "6.0" + ], + [ + "11:00", + "0.0" + ], + [ + "11:10", + "0.0" + ], + [ + "11:19", + "0.0" + ], + [ + "11:30", + "6.0" + ], + [ + "11:40", + "0.0" + ], + [ + "11:49", + "6.0" + ], + [ + "12:00", + "18.0" + ], + [ + "12:10", + "12.0" + ], + [ + "12:19", + "24.0" + ], + [ + "12:30", + "18.0" + ], + [ + "12:40", + "12.0" + ], + [ + "12:49", + "36.0" + ], + [ + "13:00", + "24.0" + ], + [ + "13:10", + "18.0" + ], + [ + "13:19", + "42.0" + ], + [ + "13:30", + "114.0" + ], + [ + "13:40", + "90.0" + ], + [ + "13:49", + "198.0" + ], + [ + "14:00", + "210.0" + ], + [ + "14:10", + "318.0" + ], + [ + "14:19", + "564.0" + ], + [ + "14:30", + "618.0" + ], + [ + "14:40", + "840.0" + ], + [ + "14:49", + "1026.0" + ], + [ + "15:00", + "1470.0" + ], + [ + "15:10", + "1716.0" + ], + [ + "15:19", + "2370.0" + ], + [ + "15:30", + "2448.0" + ], + [ + "15:40", + "3078.0" + ], + [ + "15:49", + "3696.0" + ], + [ + "16:00", + "4248.0" + ], + [ + "16:10", + "5412.0" + ], + [ + "16:19", + "6264.0" + ], + [ + "16:30", + "7440.0" + ], + [ + "16:40", + "9168.0" + ], + [ + "16:49", + "11256.0" + ], + [ + "17:00", + "12714.0" + ], + [ + "17:10", + "14550.0" + ], + [ + "17:19", + "16650.0" + ], + [ + "17:30", + "19842.0" + ], + [ + "17:40", + "22308.0" + ], + [ + "17:49", + "24894.0" + ], + [ + "18:00", + "27864.0" + ], + [ + "18:10", + "30180.0" + ], + [ + "18:19", + "31392.0" + ], + [ + "18:30", + "32898.0" + ], + [ + "18:40", + "32748.0" + ], + [ + "18:49", + "32766.0" + ], + [ + "19:00", + "30324.0" + ], + [ + "19:10", + "28650.0" + ], + [ + "19:19", + "25680.0" + ], + [ + "19:30", + "24060.0" + ], + [ + "19:40", + "22056.0" + ], + [ + "19:49", + "19842.0" + ], + [ + "20:00", + "18084.0" + ], + [ + "20:10", + "16596.0" + ], + [ + "20:19", + "14304.0" + ], + [ + "20:30", + "12114.0" + ], + [ + "20:40", + "11292.0" + ], + [ + "20:49", + "10410.0" + ], + [ + "21:00", + "9108.0" + ], + [ + "21:10", + "8490.0" + ], + [ + "21:19", + "7800.0" + ], + [ + "21:30", + "7218.0" + ], + [ + "21:40", + "7008.0" + ], + [ + "21:49", + "7332.0" + ], + [ + "22:00", + "7152.0" + ], + [ + "22:10", + "6828.0" + ], + [ + "22:19", + "6828.0" + ], + [ + "22:30", + "7200.0" + ], + [ + "22:40", + "7116.0" + ], + [ + "22:49", + "7308.0" + ], + [ + "23:00", + "6648.0" + ], + [ + "23:10", + "7338.0" + ], + [ + "23:19", + "7278.0" + ], + [ + "23:30", + "7056.0" + ], + [ + "23:40", + "6672.0" + ], + [ + "23:49", + "6708.0" + ], + [ + "00:00", + "6114.0" + ], + [ + "00:10", + "5784.0" + ], + [ + "00:19", + "5028.0" + ], + [ + "00:30", + "4710.0" + ], + [ + "00:40", + "4494.0" + ], + [ + "00:49", + "3822.0" + ], + [ + "01:00", + "3462.0" + ], + [ + "01:10", + "3468.0" + ], + [ + "01:19", + "3282.0" + ], + [ + "01:30", + "2850.0" + ], + [ + "01:40", + "2652.0" + ], + [ + "01:49", + "2304.0" + ], + [ + "02:00", + "1968.0" + ], + [ + "02:10", + "1698.0" + ], + [ + "02:19", + "1302.0" + ], + [ + "02:30", + "1350.0" + ], + [ + "02:40", + "1356.0" + ], + [ + "02:49", + "990.0" + ], + [ + "03:00", + "876.0" + ], + [ + "03:10", + "684.0" + ], + [ + "03:19", + "570.0" + ], + [ + "03:30", + "300.0" + ], + [ + "03:40", + "186.0" + ], + [ + "03:49", + "144.0" + ], + [ + "04:00", + "144.0" + ], + [ + "04:10", + "90.0" + ], + [ + "04:19", + "60.0" + ], + [ + "04:30", + "12.0" + ], + [ + "04:40", + "18.0" + ], + [ + "04:49", + "12.0" + ] + ], + "hovertemplate": "Scenario: %{meta}
Time: %{customdata[0]}
%{customdata[1]}", + "meta": "shift_to_all_shared_tnc", + "mode": "lines", + "name": "shift_to_all_shared_tnc", + "type": "scatter", + "x": [ + 0, + 0.16666666666666666, + 0.3333333333333333, + 0.5, + 0.6666666666666666, + 0.8333333333333334, + 1, + 1.1666666666666667, + 1.3333333333333333, + 1.5, + 1.6666666666666667, + 1.8333333333333333, + 2, + 2.1666666666666665, + 2.3333333333333335, + 2.5, + 2.6666666666666665, + 2.8333333333333335, + 3, + 3.1666666666666665, + 3.3333333333333335, + 3.5, + 3.6666666666666665, + 3.8333333333333335, + 4, + 4.166666666666667, + 4.333333333333333, + 4.5, + 4.666666666666667, + 4.833333333333333, + 5, + 5.166666666666667, + 5.333333333333333, + 5.5, + 5.666666666666667, + 5.833333333333333, + 6, + 6.166666666666667, + 6.333333333333333, + 6.5, + 6.666666666666667, + 6.833333333333333, + 7, + 7.166666666666667, + 7.333333333333333, + 7.5, + 7.666666666666667, + 7.833333333333333, + 8, + 8.166666666666666, + 8.333333333333334, + 8.5, + 8.666666666666666, + 8.833333333333334, + 9, + 9.166666666666666, + 9.333333333333334, + 9.5, + 9.666666666666666, + 9.833333333333334, + 10, + 10.166666666666666, + 10.333333333333334, + 10.5, + 10.666666666666666, + 10.833333333333334, + 11, + 11.166666666666666, + 11.333333333333334, + 11.5, + 11.666666666666666, + 11.833333333333334, + 12, + 12.166666666666666, + 12.333333333333334, + 12.5, + 12.666666666666666, + 12.833333333333334, + 13, + 13.166666666666666, + 13.333333333333334, + 13.5, + 13.666666666666666, + 13.833333333333334, + 14, + 14.166666666666666, + 14.333333333333334, + 14.5, + 14.666666666666666, + 14.833333333333334, + 15, + 15.166666666666666, + 15.333333333333334, + 15.5, + 15.666666666666666, + 15.833333333333334, + 16, + 16.166666666666668, + 16.333333333333332, + 16.5, + 16.666666666666668, + 16.833333333333332, + 17, + 17.166666666666668, + 17.333333333333332, + 17.5, + 17.666666666666668, + 17.833333333333332, + 18, + 18.166666666666668, + 18.333333333333332, + 18.5, + 18.666666666666668, + 18.833333333333332, + 19, + 19.166666666666668, + 19.333333333333332, + 19.5, + 19.666666666666668, + 19.833333333333332, + 20, + 20.166666666666668, + 20.333333333333332, + 20.5, + 20.666666666666668, + 20.833333333333332, + 21, + 21.166666666666668, + 21.333333333333332, + 21.5, + 21.666666666666668, + 21.833333333333332, + 22, + 22.166666666666668, + 22.333333333333332, + 22.5, + 22.666666666666668, + 22.833333333333332, + 23, + 23.166666666666668, + 23.333333333333332, + 23.5, + 23.666666666666668, + 23.833333333333332, + 24, + 24.166666666666668, + 24.333333333333332, + 24.5, + 24.666666666666668, + 24.833333333333332, + 25, + 25.166666666666668, + 25.333333333333332, + 25.5, + 25.666666666666668, + 25.833333333333332 + ], + "y": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 6, + 0, + 6, + 0, + 0, + 0, + 6, + 0, + 6, + 18, + 12, + 24, + 18, + 12, + 36, + 24, + 18, + 42, + 114, + 90, + 198, + 210, + 318, + 564, + 618, + 840, + 1026, + 1470, + 1716, + 2370, + 2448, + 3078, + 3696, + 4248, + 5412, + 6264, + 7440, + 9168, + 11256, + 12714, + 14550, + 16650, + 19842, + 22308, + 24894, + 27864, + 30180, + 31392, + 32898, + 32748, + 32766, + 30324, + 28650, + 25680, + 24060, + 22056, + 19842, + 18084, + 16596, + 14304, + 12114, + 11292, + 10410, + 9108, + 8490, + 7800, + 7218, + 7008, + 7332, + 7152, + 6828, + 6828, + 7200, + 7116, + 7308, + 6648, + 7338, + 7278, + 7056, + 6672, + 6708, + 6114, + 5784, + 5028, + 4710, + 4494, + 3822, + 3462, + 3468, + 3282, + 2850, + 2652, + 2304, + 1968, + 1698, + 1302, + 1350, + 1356, + 990, + 876, + 684, + 570, + 300, + 186, + 144, + 144, + 90, + 60, + 12, + 18, + 12 + ] + } + ], + "layout": { + "hovermode": "x unified", + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Refuel trips (per hour) — tnc_shared_demand" + }, + "xaxis": { + "tickmode": "array", + "ticktext": [ + "03:00", + "04:00", + "05:00", + "06:00", + "07:00", + "08:00", + "09:00", + "10:00", + "11:00", + "12:00", + "13:00", + "14:00", + "15:00", + "16:00", + "17:00", + "18:00", + "19:00", + "20:00", + "21:00", + "22:00", + "23:00", + "00:00", + "01:00", + "02:00", + "03:00", + "04:00", + "05:00" + ], + "tickvals": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26 + ], + "title": { + "text": "Time of day" + } + }, + "yaxis": { + "title": { + "text": "Trips per hour" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def metric_refuel_trips_by_time_bin(new_df, pooled_df, scenario, bin_minutes):\n", + " \"\"\"\n", + " Refuel trips/hour by time of day.\n", + " trip_type == 'refuel'\n", + " \"\"\"\n", + " refuel_mask = new_df[\"trip_type\"].astype(str).str.lower().eq(\"refuel\")\n", + " bins = pd.to_numeric(new_df.loc[refuel_mask, \"depart_bin\"], errors=\"coerce\").dropna().astype(int)\n", + "\n", + " if bins.empty:\n", + " return pd.DataFrame({\"x\": [], \"y\": [], \"hover\": []})\n", + "\n", + " counts = (\n", + " bins.value_counts()\n", + " .sort_index()\n", + " .reindex(pd.RangeIndex(0, bins.max() + 1), fill_value=0)\n", + " )\n", + "\n", + " factor = 60.0 / bin_minutes\n", + " rate = counts * factor\n", + "\n", + " times = start_time + pd.to_timedelta(rate.index * bin_minutes, unit=\"m\")\n", + " vals = rate.values\n", + "\n", + " df = pd.DataFrame({\"x\": times, \"y\": vals})\n", + " df[\"hover\"] = [\n", + " f\"Refuel trips/hour: {v:,.2f} (bin trips: {int(c):,}, bin={bin_minutes} min)\"\n", + " for v, c in zip(vals, counts.values)\n", + " ]\n", + " return df\n", + "\n", + "\n", + "run_timeseries_metric(\n", + " metric_refuel_trips_by_time_bin,\n", + " \"Refuel trips (per hour)\",\n", + " \"Trips per hour\",\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Share of refueling trips — time_bin_size\n", + " refuel_trips all_trips share_trips refuel_vmt all_vmt share_vmt\n", + "scenario \n", + "base 3006 428566 0.7% 5779.081723 1.874488e+06 0.31%\n", + "timebin_5 3586 429146 0.84% 6948.751708 1.905020e+06 0.36%\n", + "timebin_15 2346 427906 0.55% 5349.993074 1.859414e+06 0.29%\n", + "\n", + "Share of refueling trips — max_detour\n", + " refuel_trips all_trips share_trips refuel_vmt all_vmt share_vmt\n", + "scenario \n", + "base 3006 428566 0.7% 5779.081723 1.874488e+06 0.31%\n", + "detour_5 3015 428575 0.7% 6221.878565 1.875645e+06 0.33%\n", + "detour_10 3010 428570 0.7% 5815.520398 1.875214e+06 0.31%\n", + "detour_20 3057 428617 0.71% 6135.046131 1.875890e+06 0.33%\n", + "\n", + "Share of refueling trips — max_occupancy\n", + " refuel_trips all_trips share_trips refuel_vmt all_vmt share_vmt\n", + "scenario \n", + "base 3006 428566 0.7% 5779.081723 1.874488e+06 0.31%\n", + "occ_6 2690 400900 0.67% 5594.973175 1.754936e+06 0.32%\n", + "occ_8 2589 384969 0.67% 5350.687942 1.697862e+06 0.32%\n", + "\n", + "Share of refueling trips — tnc_shared_demand\n", + " refuel_trips all_trips share_trips refuel_vmt all_vmt share_vmt\n", + "scenario \n", + "base 3006 428566 0.7% 5779.081723 1.874488e+06 0.31%\n", + "shift_to_all_shared_tnc 130968 22328970 0.59% 228872.181351 5.502521e+07 0.42%\n" + ] + } + ], + "source": [ + "def metric_refuel_share(new_df, pooled_df):\n", + " tt = new_df[\"trip_type\"].astype(str).str.lower()\n", + " is_refuel = tt.eq(\"refuel\")\n", + "\n", + " dist = pd.to_numeric(new_df[dist_col_new], errors=\"coerce\").fillna(0.0)\n", + "\n", + " n_ref = int(is_refuel.sum())\n", + " n_all = len(new_df)\n", + " share_trips = n_ref / n_all if n_all else np.nan\n", + "\n", + " vmt_ref = dist[is_refuel].sum()\n", + " vmt_all = dist.sum()\n", + " share_vmt = vmt_ref / vmt_all if vmt_all else np.nan\n", + "\n", + " return {\n", + " \"refuel_trips\": n_ref,\n", + " \"all_trips\": n_all,\n", + " \"share_trips\": share_trips,\n", + " \"refuel_vmt\": vmt_ref,\n", + " \"all_vmt\": vmt_all,\n", + " \"share_vmt\": share_vmt,\n", + " }\n", + "\n", + "run_scalar_metric(metric_refuel_share, \"Share of refueling trips\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### QAQC refuel trips" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "plotlyServerURL": "https://plot.ly" + }, + "data": [ + { + "histnorm": "probability", + "hovertemplate": "Scenario: base
Dist since last refuel: %{x:,.1f}
Bin share: %{y:.3f}", + "name": "base", + "nbinsx": 40, + "opacity": 0.5, + "type": "histogram", + "x": [ + 303.05935077369213, + 302.0277832970023, + 328.4583800211549, + 312.3170074522495, + 302.500984326005, + 305.6483811736107, + 300.7809719592333, + 309.0178837329149, + 305.9600202292204, + 314.36535021290183, + 311.3285228610039, + 301.2832396514714, + 300.9688795953989, + 302.5571282431483, + 301.1913935672492, + 304.5419755447656, + 311.95037150382996, + 304.8479542732239, + 310.1887593381107, + 335.043269880116, + 307.87894505262375, + 304.19128730893135, + 319.12602354213595, + 319.61751952022314, + 313.6995066702366, + 308.05375488102436, + 307.96177234500647, + 312.57877600193024, + 300.36383923888206, + 302.4437962025404, + 343.75546382181346, + 310.5111052468419, + 301.97086971998215, + 305.7736021652818, + 311.59876960515976, + 310.2180900722742, + 316.70033866912127, + 309.2534953728318, + 303.6213539689779, + 306.87880551815033, + 308.78246125765145, + 307.36643739044666, + 311.8447312116623, + 308.1272594258189, + 305.66150472685695, + 300.7901064231992, + 326.6785190925002, + 303.49772671610117, + 307.9254451841116, + 312.08853758871555, + 310.9732748121023, + 303.6930218990892, + 306.91004710644484, + 303.9603032693267, + 307.0782024990767, + 305.51488280296326, + 301.1524461582303, + 323.6031653881073, + 305.24971674382687, + 302.15315029397607, + 306.0283553376794, + 301.62222325988114, + 324.9693411812186, + 304.6466093733907, + 302.33178248256445, + 308.4011985063553, + 309.6786765176803, + 303.30243913829327, + 302.7448989972472, + 323.1225180029869, + 304.88270218484104, + 308.9237494599074, + 321.00638941675425, + 302.5698648765683, + 311.05923310667276, + 302.99641375243664, + 314.6590048093349, + 300.2332567870617, + 304.2764569725841, + 351.0890743136406, + 319.6011737212539, + 319.40625468827784, + 303.42675479501486, + 318.0485939010978, + 316.38236552476883, + 304.03108432888985, + 301.6547641605139, + 305.8403547909111, + 302.8016467690468, + 307.55617136508226, + 302.7959830313921, + 315.8652979377657, + 319.0523448884487, + 313.14549069851637, + 309.6547255702317, + 306.47862482070923, + 320.8329273313284, + 310.1553524918854, + 312.21151746064425, + 318.2790237739682, + 309.270659474656, + 312.46332196705043, + 338.43791285157204, + 308.16235522925854, + 301.5627426356077, + 309.61365386098623, + 311.72839760035276, + 304.7653804346919, + 302.7746298983693, + 311.0695480592549, + 302.10578379034996, + 310.13251220434904, + 305.05472461879253, + 300.3834171369672, + 314.6545832082629, + 312.0213568210602, + 301.470994643867, + 305.11174804344773, + 300.47224608436227, + 311.7386389747262, + 303.58863177895546, + 325.31609412282705, + 307.8580992333591, + 304.83571030944586, + 334.95575720630586, + 308.4330621920526, + 307.7646146863699, + 304.22346837073565, + 301.9849043264985, + 308.24136650562286, + 305.22428319603205, + 322.6147562302649, + 329.5096691250801, + 315.8713607415557, + 310.1419327184558, + 324.4522842988372, + 309.819569632411, + 303.18776259571314, + 319.02547485008836, + 318.5547391921282, + 312.26369090378284, + 306.0426619723439, + 313.14772672206163, + 307.0486485436559, + 304.019351311028, + 303.55992729216814, + 306.21284763514996, + 322.0965342670679, + 308.72747288644314, + 305.2456266358495, + 304.13440285623074, + 300.6103611588478, + 301.05425895005465, + 311.75650069117546, + 303.6848474740982, + 310.55475664138794, + 302.1965455748141, + 302.4253742881119, + 312.82555916905403, + 305.8414139561355, + 301.9848632402718, + 308.6080617457628, + 314.51171595416963, + 302.1019004583359, + 302.3027833085507, + 300.8685479387641, + 303.3737695515156, + 315.38831147551537, + 302.559328943491, + 313.5683509558439, + 353.52415975928307, + 300.64745868742466, + 303.3601732701063, + 303.23471523076296, + 317.74146420508623, + 313.20218562707305, + 304.858241610229, + 309.5162803195417, + 302.5020260922611, + 316.07957288622856, + 324.7833179682493, + 313.61081886291504, + 303.5642926543951, + 319.3996091373265, + 316.87243001163006, + 303.2511771917343, + 302.3622083067894, + 304.799329765141, + 306.2370705679059, + 312.86552783846855, + 325.65443319268525, + 303.27021887153387, + 303.99290785193443, + 364.0318616852164, + 310.4132724311203, + 300.82330261170864, + 300.90348318219185, + 301.6341687887907, + 305.0318106971681, + 301.0415097028017, + 302.8542994558811, + 305.382523778826, + 321.01786617934704, + 303.9109229594469, + 305.4837296642363, + 302.94288386404514, + 303.40426011383533, + 313.3314496874809, + 323.40099601075053, + 308.85758674889803, + 311.4984999895096, + 301.1887626051903, + 302.0374231040478, + 302.5204994827509, + 302.72897017002106, + 313.54354601353407, + 310.88004916906357, + 307.54498525336385, + 308.1879484858364, + 313.38196786493063, + 315.0524936262518, + 300.9325694292784, + 350.3046523332596, + 304.0702700763941, + 313.66074392199516, + 302.8382567316294, + 314.7155269086361, + 343.41310543194413, + 327.7112807184458, + 311.4234161116183, + 301.1736772581935, + 304.4975567404181, + 326.94743125513196, + 311.0725500602275, + 300.7089400291443, + 301.8185060247779, + 307.8512169122696, + 319.14377285540104, + 361.1791851744056, + 301.64985270798206, + 314.44221287220716, + 323.9303357973695, + 339.62650415301323, + 317.6018003895879, + 303.5780913978815, + 310.5991051644087, + 303.779848523438, + 300.3905310407281, + 308.0158751010895, + 346.98956637084484, + 313.37977546453476, + 312.24720142781734, + 304.56138587743044, + 301.34345658123493, + 328.78198102116585, + 307.5633948892355, + 304.1249355003238, + 302.7294314876199, + 303.04590753652155, + 313.3384571969509, + 314.5902655683458, + 305.72430909983814, + 301.123735640198, + 361.6096513867378, + 307.04844979941845, + 344.13156416267157, + 323.5225539430976, + 301.63281237334013, + 306.4178882483393, + 301.65455218032, + 304.2593291234225, + 307.5543700866401, + 309.9837406128645, + 302.6390942260623, + 314.13132905960083, + 304.6637527644634, + 308.6856186017394, + 305.93682307749987, + 310.37053382210433, + 304.6368846409023, + 304.50316151976585, + 300.7137396633625, + 304.36634475179017, + 306.4602628201246, + 301.72426629811525, + 313.280293636024, + 321.65547184087336, + 317.20420175790787, + 308.53483635932207, + 304.89269402623177, + 306.30446115881205, + 304.6399410665035, + 300.9154546353966, + 306.1022778302431, + 301.87629088386893, + 302.6929132658988, + 303.3514776006341, + 300.6593281812966, + 304.7414313107729, + 306.29699454829097, + 325.20643223822117, + 306.8776340633631, + 305.68122409284115, + 306.14575599879026, + 303.7830290198326, + 300.48038940131664, + 304.81044202297926, + 308.44190663844347, + 319.09261275082827, + 313.5202496945858, + 305.54037909954786, + 303.79289385676384, + 313.369119156152, + 302.8591178357601, + 305.815437681973, + 320.3531769029796, + 303.47327372059226, + 302.14817257225513, + 311.65909323468804, + 306.6705843899399, + 311.2419026121497, + 326.9374008253217, + 300.64452992752194, + 300.5158621519804, + 339.00467900186777, + 302.7000363692641, + 304.80386413633823, + 337.149787992239, + 311.5595486983657, + 312.5188779979944, + 302.44924483820796, + 301.28871751204133, + 304.9654672443867, + 304.2403876706958, + 308.6535895168781, + 307.81316904723644, + 305.21350575238466, + 316.45804662257433, + 302.4978824406862, + 301.5243395008147, + 308.42291185073555, + 308.5886851102114, + 303.8844919577241, + 305.5082997381687, + 304.53022211045027, + 308.0670230463147, + 368.12055318802595, + 303.64203160628676, + 307.9140286296606, + 301.55349979922175, + 305.8535031825304, + 317.0179797410965, + 306.7610377315432, + 301.1573091596365, + 324.3339904714376, + 303.19633761048317, + 325.8157117366791, + 301.80318553745747, + 305.51391495764256, + 321.23406464606524, + 305.1605892330408, + 309.9105415046215, + 304.9820691868663, + 312.51314198970795, + 300.8588388264179, + 308.6895478963852, + 300.29892510175705, + 302.12421356886625, + 310.9218749627471, + 308.84900736808777, + 305.5338641703129, + 300.59567484259605, + 304.593999966979, + 303.45319944247603, + 300.916278898716, + 300.93448980152607, + 315.22160256654024, + 302.1884065940976, + 304.16329549998045, + 320.6648793518543, + 314.0417132228613, + 319.8622509986162, + 326.0590899400413, + 318.0978051945567, + 300.7528107240796, + 305.82639157027006, + 304.19050092063844, + 312.0535492300987, + 311.2089769244194, + 311.22262201085687, + 310.5009533315897, + 306.2846059985459, + 309.6189572736621, + 305.0872354656458, + 314.6730389147997, + 305.31359376199543, + 315.7647892571986, + 324.22728983312845, + 303.6022804323584, + 317.8224330339581, + 333.6809972524643, + 323.0351615771651, + 302.9893321171403, + 305.10837035626173, + 309.6192399561405, + 307.43271121382713, + 312.70689287781715, + 310.95546574890614, + 303.89759860932827, + 303.26603147387505, + 309.94527108967304, + 302.92584685236216, + 305.25695111602545, + 308.71746188774705, + 312.3177189230919, + 303.8727502524853, + 305.74611408263445, + 302.5065714083612, + 317.6693177521229, + 303.8194375131279, + 304.2209090143442, + 301.37774407304823, + 311.8302362188697, + 309.791634991765, + 301.0376371592283, + 301.1889255717397, + 310.9263251014054, + 308.7937367334962, + 303.7749871984124, + 308.7587036266923, + 309.0108539685607, + 304.44472311623394, + 310.979107901454, + 311.4313468448818, + 303.1052142623812, + 304.48211873322725, + 304.75325498729944, + 305.1886183694005, + 367.58411814272404, + 308.87622633576393, + 302.1932651232928, + 301.9311950728297, + 301.03338795900345, + 331.02259112894535, + 305.49716828018427, + 322.1832425445318, + 301.1117838397622, + 304.03071492910385, + 301.2035632021725, + 303.2082785665989, + 301.64283622801304, + 308.8116062730551, + 311.3149590604007, + 304.1887896731496, + 301.0186753645539, + 303.22611504793167, + 305.9375632442534, + 310.01461028307676, + 301.5931568518281, + 309.6833669990301, + 303.01782873272896, + 304.0169597417116, + 308.1501164585352, + 305.13371773064137, + 302.1315890401602, + 307.06815138459206, + 315.9098388031125, + 328.3397514820099, + 301.62357682548463, + 309.69330184161663, + 305.86357236653566, + 339.52486185729504, + 320.75336830317974, + 315.48134283721447, + 301.46130665391684, + 333.6768909841776, + 301.3160840123892, + 302.7454975694418, + 314.73429387807846, + 305.48094190098345, + 314.51660822331905, + 302.7048512585461, + 311.89381029084325, + 301.61303763091564, + 305.0586597248912, + 301.5932202935219, + 302.52575865387917, + 303.92876655980945, + 302.94047152996063, + 301.41465190052986, + 303.4168940000236, + 308.28199360892177, + 309.2755982801318, + 305.63820569217205, + 309.6780370399356, + 333.6591239646077, + 305.0275115519762, + 304.66713866591454, + 305.306040327996, + 330.0772547312081, + 312.15104008466005, + 306.0667606666684, + 309.1100794672966, + 305.86068607866764, + 301.54124853014946, + 301.5502326115966, + 301.7683228570968, + 309.97727709263563, + 322.84720827639103, + 302.96323473751545, + 305.3819745182991, + 302.854737136513, + 307.4965050444007, + 318.2889935839921, + 306.81314579211175, + 308.64644081890583, + 303.5639638453722, + 309.02913236245513, + 301.26020778156817, + 318.6792843490839, + 305.7177343405783, + 302.4322088882327, + 300.36351707950234, + 301.33667282760143, + 304.2679138481617, + 303.8570327349007, + 302.44632770866156, + 307.0796595662832, + 316.34775848686695, + 316.5507122129202, + 350.0149428397417, + 304.6523360013962, + 308.0663896650076, + 302.62830924987793, + 307.1120621263981, + 302.59100610762835, + 313.23770536109805, + 311.51394541561604, + 325.1251261495054, + 306.2806640267372, + 304.9493908844888, + 305.85043198242784, + 302.79859928041697, + 313.09618621505797, + 300.89870543032885, + 300.7813545316458, + 301.75890174508095, + 326.7339008152485, + 302.4546654894948, + 300.80320558696985, + 303.02751837670803, + 323.8524117320776, + 307.31519662588835, + 301.52453898638487, + 321.9728167504072, + 325.7739123478532, + 322.28119517862797, + 365.2596457377076, + 307.3802812099457, + 304.32800617814064, + 313.3101145848632, + 309.2315970361233, + 307.26197185739875, + 309.65889060497284, + 321.32821560651064, + 340.8619062900543, + 307.5574792176485, + 304.3800691962242, + 302.85177110880613, + 324.3459995985031, + 314.0375318080187, + 318.16530337929726, + 302.5340092089027, + 313.8953899629414, + 310.89630917459726, + 307.78624553978443, + 313.0837125852704, + 311.15786289796233, + 316.49844790250063, + 306.4535994902253, + 300.9231566786766, + 302.4948533568531, + 301.44382488168776, + 307.52409689873457, + 310.2925183624029, + 303.20455603301525, + 302.62292637676, + 309.4509262815118, + 306.9402848780155, + 302.09874987974763, + 307.90301401913166, + 310.02807925641537, + 303.2893670909107, + 302.1366039477289, + 301.51607562974095, + 306.003452911973, + 309.95483274012804, + 303.1744133979082, + 308.417264662683, + 308.41268426924944, + 324.2990426495671, + 302.8921535909176, + 305.4011514931917, + 322.1167204603553, + 302.10818411409855, + 302.4593282416463, + 306.48667860776186, + 305.5888133812696, + 302.8786298632622, + 351.3478811532259, + 301.4868436306715, + 330.9269219711423, + 312.58714666217566, + 302.80031507462263, + 310.44015357643366, + 301.20191537961364, + 303.9860670119524, + 303.5677570849657, + 307.02355770021677, + 317.72128952667117, + 312.2112650722265, + 309.53594349324703, + 308.20837192982435, + 321.9923782721162, + 312.1833504214883, + 301.5955509990454, + 309.7816281579435, + 301.62718196213245, + 308.9799487441778, + 325.0306099280715, + 309.71460161730647, + 328.94924961030483, + 302.11107644438744, + 312.18251375854015, + 305.74933858960867, + 301.46173890680075, + 302.5465731918812, + 326.0223877131939, + 302.09866232424974, + 310.5196674950421, + 315.9220798127353, + 300.46981159597635, + 306.4569214731455, + 317.67015977203846, + 305.99039256572723, + 301.27405074983835, + 301.59098798409104, + 303.802366964519, + 302.78717087209225, + 333.99844006448984, + 302.63059703074396, + 305.42089304327965, + 307.2805146127939, + 319.90703025460243, + 329.4490562006831, + 311.5240097269416, + 307.8867827709764, + 303.19341680407524, + 338.5686809569597, + 308.2382209971547, + 309.8169636428356, + 315.1679041944444, + 317.02409505844116, + 321.0253547206521, + 303.7198351584375, + 301.89565248787403, + 303.2948269098997, + 308.3608982935548, + 304.2859699167311, + 305.54158648103476, + 305.37851671501994, + 302.43432219326496, + 303.0630951076746, + 316.8214093744755, + 311.06381469778717, + 319.7989133223891, + 315.70018772780895, + 321.4893788397312, + 301.4755376800895, + 313.20534285344183, + 301.6593679487705, + 300.3777375295758, + 313.81962034106255, + 306.2141845282167, + 301.00967767089605, + 306.4636991098523, + 314.1331076398492, + 324.43989384919405, + 315.362716563046, + 306.49094343930483, + 304.3139332383871, + 306.0767945423722, + 307.61839410848916, + 307.7601996064186, + 329.4329764097929, + 316.4092822149396, + 326.1675454862416, + 313.9942143894732, + 310.3924823626876, + 303.1565811634064, + 307.9640837162733, + 307.3645620793104, + 303.1919396594167, + 306.0804755408317, + 311.6934756860137, + 301.8153341412544, + 301.4486770108342, + 313.80055267736316, + 323.2138752788305, + 307.5942720025778, + 303.7275437787175, + 339.0762415230274, + 307.59737346321344, + 301.08688946813345, + 302.9721023738384, + 307.36096773296595, + 329.46138595044613, + 301.42665876448154, + 314.544711753726, + 313.42030892521143, + 311.2251798734069, + 322.23336593806744, + 313.9016944169998, + 301.06797018647194, + 361.8487813696265, + 305.252677410841, + 300.6267145052552, + 302.0119873508811, + 300.54121628403664, + 307.24237833172083, + 306.57270312309265, + 306.87564580887556, + 306.2622981071472, + 316.6492492184043, + 302.1921287998557, + 304.26397124677896, + 302.6946150958538, + 305.5958093069494, + 304.1163820028305, + 304.1869967877865, + 304.49746488034725, + 302.0104611515999, + 305.4714135862887, + 303.20658065006137, + 304.6542682349682, + 309.74038287997246, + 304.54357704892755, + 314.1216376237571, + 310.22221767902374, + 312.7932930737734, + 304.3538213968277, + 304.8186970539391, + 311.0105442106724, + 324.71143666654825, + 307.1190021112561, + 309.8720204010606, + 313.92452047020197, + 311.29730567894876, + 301.96073089540005, + 306.8793219476938, + 305.8206690400839, + 309.4142152220011, + 303.6294138804078, + 300.79137175530195, + 303.58108308166265, + 307.3116775751114, + 303.88229101896286, + 307.3924115821719, + 301.2490521967411, + 302.08301996439695, + 305.45533245801926, + 310.35894668102264, + 311.5144855324179, + 301.37019281089306, + 306.03432742506266, + 308.9408590309322, + 302.8851176574826, + 308.1730433553457, + 304.51977175474167, + 301.05309188365936, + 304.4002259373665, + 303.63880304805934, + 314.490521915257, + 302.29496578872204, + 308.0586333498359, + 305.8886557519436, + 310.0567803606391, + 314.44556693546474, + 304.7984720170498, + 301.5903087556362, + 320.7846977747977, + 303.30583130940795, + 300.5740794464946, + 310.94973466545343, + 304.7451131939888, + 305.463300563395, + 303.9556446671486, + 305.01009991019964, + 301.693236425519, + 303.72400166094303, + 300.9397060573101, + 305.12806260585785, + 310.11063093319535, + 329.24493626505136, + 310.9585796967149, + 305.6924711763859, + 302.3978827409446, + 306.24287198483944, + 307.9920205771923, + 306.59721606224775, + 317.36330449581146, + 308.33659118413925, + 310.35995772480965, + 304.7767466660589, + 302.1398792825639, + 301.15778141096234, + 305.17700123786926, + 304.1887920089066, + 320.020301386714, + 326.4366592466831, + 304.66940942406654, + 311.26594918221235, + 300.93059941381216, + 331.3915504962206, + 303.4591506291181, + 301.9795444905758, + 303.4274310618639, + 314.24462300539017, + 301.69329925626516, + 304.58451132290065, + 308.33607252687216, + 303.1216837987304, + 302.43522630631924, + 302.83321461826563, + 301.9015920907259, + 312.58984128013253, + 329.41295152902603, + 303.7368832603097, + 303.5797980129719, + 319.54441675543785, + 315.2830762844533, + 301.92864812910557, + 306.12577022612095, + 303.8041648566723, + 314.0512157678604, + 315.92380183935165, + 347.0796128362417, + 301.7467767447233, + 304.5983079858124, + 301.01870370283723, + 307.9838101565838, + 301.5937547236681, + 301.6798574104905, + 302.80737805366516, + 305.32740157470107, + 307.51106083393097, + 306.2399645522237, + 308.0692430101335, + 307.2489248737693, + 307.4074510112405, + 303.56639993190765, + 311.3859347552061, + 304.80552799999714, + 316.46853629499674, + 315.4333622548729, + 304.18323174491525, + 301.17614047415555, + 309.0086632221937, + 301.54457599669695, + 308.97051960229874, + 314.8736403360963, + 300.2998760640621, + 305.71316681057215, + 316.92086263000965, + 301.41544680297375, + 305.4518686570227, + 303.1812968403101, + 305.61035662703216, + 312.261826524511, + 310.079233571887, + 307.8740791436285, + 304.35413064062595, + 304.88051281124353, + 304.94027335196733, + 315.6650934368372, + 302.0108522698283, + 315.14844278246164, + 303.10371796786785, + 307.8859871532768, + 332.05465142428875, + 311.29355794750154, + 314.2699292898178, + 301.57419092953205, + 318.9079586863518, + 322.0435811728239, + 301.6710683181882, + 309.4614132344723, + 301.63799461722374, + 303.15202429518104, + 302.929664850235, + 310.3303339071572, + 311.83468225598335, + 313.6166155934334, + 304.9255526214838, + 310.63667199760675, + 307.87796676903963, + 309.8784531056881, + 302.06441773474216, + 312.2064738459885, + 333.4655105341226, + 306.1125112324953, + 303.7119631189853, + 300.9967786297202, + 309.60839176364243, + 331.328827066347, + 302.1045407727361, + 308.9366780668497, + 304.7138926833868, + 311.5704955458641, + 305.2498303949833, + 321.28311816602945, + 304.0949927046895, + 305.1884592548013, + 314.6367562264204, + 344.8535831272602, + 311.644866079092, + 314.02907609939575, + 308.5517600774765, + 302.34857366234064, + 303.20426032692194, + 311.2520308084786, + 304.80608016997576, + 327.46338026225567, + 306.28586681187153, + 364.4701738655567, + 307.54983735084534, + 302.83728041499853, + 313.1436867788434, + 306.1288618594408, + 301.52881506830454, + 314.4642710722983, + 310.4544987156987, + 302.36206133663654, + 302.9565177336335, + 317.746598623693, + 302.22288478165865, + 304.4102264530957, + 301.9381352290511, + 313.74411795288324, + 301.53095508366823, + 339.2882057055831, + 307.77290365844965, + 303.1091097891331, + 308.0440583880991, + 301.89238081872463, + 312.5612943805754, + 313.2416712194681, + 322.15335250645876, + 305.20809319615364, + 320.16620747745037, + 310.0878194645047, + 304.7903878521174, + 335.4429065436125, + 304.22172071784735, + 300.9783055484295, + 319.01435190439224, + 313.298799354583, + 319.76489689946175, + 352.92646707594395, + 320.03090661019087, + 300.4754358381033, + 303.48441588133574, + 305.1087667271495, + 303.56682854890823, + 300.5229952558875, + 316.74337796121836, + 305.88408306986094, + 329.7830640487373, + 310.3610748760402, + 312.2324337437749, + 302.29636585712433, + 313.4123653843999, + 305.02410883829, + 305.10130701959133, + 308.69727712869644, + 359.44816052913666, + 308.2675048559904, + 310.4412025138736, + 314.1004318445921, + 301.24273040145636, + 305.4942214936018, + 303.2248316258192, + 301.0287575721741, + 303.67102386802435, + 310.1443803012371, + 343.4707837626338, + 309.2516732811928, + 308.33791988343, + 302.0704319626093, + 310.0365254022181, + 303.3789193816483, + 307.44387006014585, + 311.1431686729193, + 304.22778341919184, + 329.8196378201246, + 304.20776081830263, + 310.7801279146224, + 303.94828825443983, + 306.96146159619093, + 305.51232220977545, + 304.2091942317784, + 310.53613640740514, + 311.4252375513315, + 305.52201778814197, + 342.0600756779313, + 305.7882998883724, + 302.1818530969322, + 306.8602861184627, + 302.61211950331926, + 301.376795463264, + 310.5170283615589, + 304.6781157627702, + 313.6716280281544, + 307.2490106523037, + 305.3693317472935, + 308.146233830601, + 314.9731426797807, + 308.9434025939554, + 307.3841607607901, + 364.96422965824604, + 304.1041366904974, + 302.8834086507559, + 307.0675763487816, + 356.2786010764539, + 322.63041929900646, + 304.9154870659113, + 312.278480887413, + 330.515834916383, + 367.13765128701925, + 303.2218512445688, + 306.8056754209101, + 305.27714942395687, + 303.14016699790955, + 300.6309834420681, + 301.5619219839573, + 308.05179864168167, + 310.63764283806086, + 303.0145359709859, + 309.84925179183483, + 309.6541614830494, + 314.6859191507101, + 322.84272629767656, + 328.62462133169174, + 301.3101035170257, + 304.6456905603409, + 301.5069991648197, + 300.52050767093897, + 331.41255075484514, + 333.30702725052834, + 341.8453113846481, + 312.2839056625962, + 300.41083396971226, + 315.37411256320775, + 312.47322089225054, + 305.4710648730397, + 302.64141783490777, + 302.9362802952528, + 305.27037866413593, + 304.2490750178695, + 307.09168316051364, + 358.4822908490896, + 311.1666688993573, + 304.2102560698986, + 302.5915804877877, + 381.1551387254149, + 322.35213066264987, + 330.4059078656137, + 304.8481403402984, + 303.9492008648813, + 320.49785290658474, + 305.04401180148125, + 367.7705344930291, + 303.5018324367702, + 328.63411658257246, + 305.18567352741957, + 304.2346335723996, + 303.01508608460426, + 312.95609624683857, + 307.9536724742502, + 303.7133989408612, + 301.008959621191, + 304.66184344887733, + 384.90426011383533, + 301.74844375252724, + 314.05921383574605, + 339.91899264603853, + 300.98505130410194, + 302.96635438501835, + 302.14383551478386, + 302.69991889595985, + 305.46872583404183, + 300.7961363233626, + 305.10707572102547, + 303.96800500154495, + 306.9785723350942, + 307.58418344706297, + 304.89581164717674, + 304.7986173518002, + 364.5559302903712, + 305.5787981748581, + 328.8963644057512, + 305.46172150969505, + 302.49743281304836, + 300.74935860186815, + 302.6406224220991, + 321.52066876366735, + 301.8605128750205, + 306.3382166326046, + 302.3799777328968, + 311.14249423518777, + 301.93968664109707, + 311.44094717502594, + 309.04055741243064, + 304.8934363760054, + 305.24910593032837, + 370.0352419987321, + 334.58929091505706, + 313.8216400742531, + 302.7630339972675, + 304.1640191450715, + 312.4194559454918, + 310.0894523784518, + 305.9013965576887, + 303.74438259005547, + 309.312300093472, + 316.689929112792, + 305.3405205719173, + 305.499167278409, + 301.6511349529028, + 304.6675712391734, + 319.509220674634, + 322.7335572093725, + 318.9881608337164, + 300.5964840725064, + 303.2109457589686, + 307.1165948845446, + 312.8515947908163, + 304.7383938729763, + 303.16785398870707, + 302.9578877687454, + 313.08237463980913, + 303.65041971579194, + 311.0123017579317, + 314.09590299613774, + 302.29029136151075, + 302.33553775958717, + 313.37397722527385, + 305.1885837428272, + 306.1509875319898, + 324.9002990424633, + 303.0040639284998, + 301.890173073858, + 303.55358662456274, + 303.49932819604874, + 309.6813327614218, + 300.53482765704393, + 304.86472970992327, + 316.7652690038085, + 309.8881036490202, + 304.20929896086454, + 318.1875386312604, + 328.995164681226, + 301.23077541589737, + 304.95151218771935, + 308.65081233531237, + 305.4777181558311, + 306.0699672922492, + 300.5816023387015, + 306.1698761507869, + 307.37784038484097, + 305.98889968544245, + 301.49924190342426, + 305.04839141853154, + 313.74923218786716, + 345.7375178039074, + 317.04104755818844, + 309.9297976307571, + 300.67400641925633, + 304.53096954524517, + 300.43755772709846, + 320.2899943217635, + 305.7453814893961, + 301.40949000418186, + 309.5150822661817, + 304.37000446766615, + 311.08623813837767, + 313.590813703835, + 308.4602317549288, + 303.8275277093053, + 304.96976760588586, + 304.30495254695415, + 303.56531700491905, + 301.2871139459312, + 302.91538194566965, + 310.63053277879953, + 308.1757777258754, + 305.08773607574403, + 322.14638401195407, + 302.6972572952509, + 305.3950717113912, + 301.6549288276583, + 314.08019652962685, + 309.8647929057479, + 314.8648149445653, + 315.4887049533427, + 303.5149546414614, + 304.39744620770216, + 310.83917312324047, + 306.97198912501335, + 308.28057458251715, + 302.2296952512115, + 301.2285970672965, + 302.12651228904724, + 313.4045026898384, + 307.0490252748132, + 309.4923234824091, + 323.23536515422165, + 311.311135802418, + 345.8127315938473, + 304.31711902469397, + 303.20159658789635, + 307.62829245626926, + 303.2875824831426, + 311.8300316631794, + 314.46518309414387, + 380.44697999954224, + 301.0799572058022, + 306.23592937737703, + 308.07662987709045, + 304.4440327882767, + 313.75984942913055, + 300.9725761860609, + 309.8100030273199, + 310.69199572503567, + 302.8322867527604, + 305.4483730047941, + 314.5315066128969, + 304.6205532029271, + 303.69028589874506, + 312.7600840572268, + 314.11091559380293, + 302.85983107984066, + 304.61940640956163, + 316.34054885804653, + 302.03190246224403, + 303.2539746388793, + 303.6987125389278, + 303.61232862994075, + 307.0573357902467, + 304.80188155174255, + 307.6866783350706, + 313.50927598029375, + 302.607290700078, + 310.96804190054536, + 327.26697540283203, + 303.2692765221, + 302.22620256245136, + 310.28100292384624, + 314.61274281330407, + 311.80835311487317, + 303.18819658458233, + 306.76433454826474, + 302.61512934975326, + 302.96837592311203, + 309.30962163954973, + 300.6989971138537, + 304.83917025104165, + 301.1516717635095, + 309.704179674387, + 308.556990981102, + 321.92059391736984, + 301.3392286784947, + 301.6441782042384, + 333.8863871693611, + 310.4641307108104, + 309.060127183795, + 304.3002411723137, + 305.37086982280016, + 301.769061177969, + 333.2598794847727, + 362.95118901878595, + 302.67649801820517, + 300.7041023746133, + 302.10747013427317, + 300.24890292808414, + 304.4319409132004, + 311.8892135322094, + 325.8965906351805, + 302.8832120075822, + 306.30458407104015, + 309.02783531695604, + 307.68877974152565, + 302.67985935136676, + 345.9116207957268, + 309.08296363055706, + 302.9928424656391, + 313.19056318700314, + 317.96800306998193, + 313.7246911749244, + 304.72012642398477, + 311.319212436676, + 325.855926156044, + 308.540533952415, + 317.4295966401696, + 309.2271316871047, + 302.3875446729362, + 315.14393608644605, + 302.4419170022011, + 306.1198914051056, + 301.6504400409758, + 321.8491648212075, + 310.66850177943707, + 304.5172809101641, + 301.49231696128845, + 305.76169260405004, + 315.9818366467953, + 301.3049231618643, + 304.48658400774, + 302.8317494690418, + 314.9164013490081, + 319.7906412035227, + 302.7894261777401, + 316.2893355116248, + 305.2380993589759, + 307.0065959431231, + 311.42048827558756, + 312.9727383852005, + 304.44141629338264, + 315.0866126790643, + 301.601801417768, + 328.3146339505911, + 302.6919857338071, + 307.5509105324745, + 303.16681978292763, + 303.0500014424324, + 328.1421328485012, + 302.88450636714697, + 304.8707088083029, + 305.0486140884459, + 300.9167197421193, + 305.7896354049444, + 314.33886724710464, + 302.4463737234473, + 302.4983743019402, + 304.7171312570572, + 304.7239869683981, + 306.31278762221336, + 308.15456291660666, + 304.5535044502467, + 307.7456778474152, + 327.45367710106075, + 303.1847587376833, + 307.3626740425825, + 301.48787454515696, + 309.6625984162092, + 302.4025100544095, + 308.6158360540867, + 309.9260560646653, + 311.09382282570004, + 307.30791698396206, + 327.2735057733953, + 319.10498182475567, + 302.0625552982092, + 304.49559124559164, + 304.8465978652239, + 300.4389399792999, + 303.55438663065434, + 308.55329117178917, + 308.08815909177065, + 306.4449860304594, + 301.6812011897564, + 305.79101579636335, + 324.48262701928616, + 303.58088878542185, + 302.2000432163477, + 302.2628626450896, + 304.7663800418377, + 304.114139970392, + 304.3989152312279, + 301.33263067901134, + 302.76781296916306, + 306.96989884227514, + 308.8073088824749, + 309.57820458710194, + 304.1046134121716, + 301.043085873127, + 303.39819955825806, + 332.03718116134405, + 301.5849022269249, + 304.31986802071333, + 300.9218352586031, + 307.4497577100992, + 304.79509399831295, + 303.2506413757801, + 303.63740272819996, + 305.4383760690689, + 323.0053456649184, + 308.16422060877085, + 305.3774112164974, + 310.1323313973844, + 311.3566163480282, + 303.9681664817035, + 304.2024905383587, + 303.1883701235056, + 311.71979904174805, + 305.96255715191364, + 302.20627112686634, + 304.6431068405509, + 303.1778177469969, + 304.7344357147813, + 303.7412983812392, + 303.0866835769266, + 303.9696259498596, + 302.91820815205574, + 302.268897280097, + 303.19841301068664, + 301.52517656981945, + 318.3750019222498, + 314.6148101389408, + 323.5017674379051, + 302.01682913303375, + 377.29089906811714, + 307.118282167241, + 307.1631728671491, + 303.2165178358555, + 300.874353794381, + 301.6919913813472, + 314.54041171073914, + 314.02734848856926, + 320.3146916255355, + 314.125765606761, + 307.0479853339493, + 306.4060687869787, + 310.23652575723827, + 315.9648989960551, + 399.9794036448002, + 303.25896717607975, + 327.12375515699387, + 303.86649535037577, + 320.9643602967262, + 358.7457107305527, + 332.3697212487459, + 300.9159571826458, + 303.4176079109311, + 305.4440139643848, + 302.0499808806926, + 303.3459393531084, + 303.1275321729481, + 300.90803959965706, + 303.483314037323, + 300.61349407583475, + 305.8875271715224, + 305.2053425386548, + 304.59920388646424, + 304.5574158281088, + 305.16054931282997, + 304.2055994570255, + 302.7120390124619, + 312.9497370608151, + 301.8927700817585, + 318.5120520424098, + 308.1074741985649, + 308.66745080053806, + 302.98905289173126, + 309.8183339089155, + 307.95743621885777, + 304.2192176617682, + 308.97907615453005, + 307.07226103171706, + 351.1217365041375, + 305.8010656274855, + 304.8341627717018, + 305.53938510268927, + 312.3103174865246, + 307.3939663618803, + 315.5470474548638, + 304.38826863467693, + 301.005611397326, + 303.6272678524256, + 317.17615877091885, + 302.65269408375025, + 303.97911719977856, + 302.14451889693737, + 302.5393681898713, + 309.88776022195816, + 316.8007758911699, + 301.95328086055815, + 326.53101566433907, + 311.6153608560562, + 317.01155713386834, + 307.0129415206611, + 306.8442041743547, + 369.22236830741167, + 322.78240513801575, + 301.88387826643884, + 302.80223486572504, + 313.9278541430831, + 315.2970326244831, + 301.29725210368633, + 329.87898701429367, + 301.8907338902354, + 307.1596405804157, + 302.9039510395378, + 302.23960806429386, + 309.5316803306341, + 301.7777248173952, + 323.0753921121359, + 303.52124685794115, + 313.5956540107727, + 315.0203542485833, + 317.68906162679195, + 310.7227234467864, + 308.9665172211826, + 303.0459874756634, + 308.4348424524069, + 315.14861702919006, + 304.50824520364404, + 309.1594973951578, + 335.0233848169446, + 315.13867746293545, + 302.3139502108097, + 300.9621217250824, + 303.3991121724248, + 320.471889808774, + 322.10579843074083, + 312.3369500786066, + 317.2282725572586, + 304.49954681657255, + 309.57444055378437, + 307.30854158848524, + 309.335498418659, + 312.0830901861191, + 303.9317440316081, + 303.34008696489036, + 340.91838635876775, + 302.6356541290879, + 307.9670849367976, + 346.1554331108928, + 304.4625002294779, + 310.64375972002745, + 302.2796090692282, + 315.2448088377714, + 303.01291754096746, + 322.4228566735983, + 312.2639865539968, + 313.4130019135773, + 305.39472345262766, + 306.7323497980833, + 302.1896633859724, + 302.0379854366183, + 307.1580410953611, + 309.43962704762816, + 320.3508848492056, + 308.92805468291044, + 304.04693353548646, + 308.17067435383797, + 339.76785980165005, + 306.27767403423786, + 343.7605008929968, + 305.1850061714649, + 308.3902816325426, + 331.0869243219495, + 317.50767267495394, + 304.43142411857843, + 302.184946667403, + 304.95693247020245, + 316.3763310685754, + 309.3836962785572, + 304.2103288769722, + 302.8033078685403, + 304.16989919543266, + 305.8138383626938, + 303.4507056530565, + 307.0135293006897, + 311.8237083218992, + 331.5245272219181, + 360.08227983117104, + 306.0644129496068, + 328.4927734658122, + 302.7187648396939, + 315.74017041921616, + 307.1908412128687, + 304.2189573571086, + 309.4289473183453, + 308.31568652391434, + 304.15340718999505, + 317.7337819188833, + 302.6779075935483, + 308.4716599583626, + 307.22384829074144, + 341.7542639374733, + 320.99383910000324, + 304.9721439704299, + 301.6868716478348, + 309.4183586537838, + 302.9258105829358, + 305.7105395793915, + 304.1673382371664, + 308.3001284599304, + 304.2583088018, + 309.60336485505104, + 305.9064978659153, + 310.87086962908506, + 302.77823278307915, + 306.8294441625476, + 317.4649229552597, + 302.1024968698621, + 309.88597080111504, + 305.6254580914974, + 305.6317399702966, + 302.2321076616645, + 319.03706657886505, + 313.53626155108213, + 311.31637622602284, + 320.54780085384846, + 305.6659243106842, + 306.5500505566597, + 314.1785897836089, + 301.3880215212703, + 302.71842769533396, + 313.099317073822, + 301.94252364337444, + 317.51410735026, + 303.0897506326437, + 305.5870239287615, + 304.52822675183415, + 305.53320311009884, + 301.25649855285883, + 312.9445781856775, + 308.5032142922282, + 308.36492807790637, + 312.00830360129476, + 330.17377385497093, + 302.37096229940653, + 307.17525067180395, + 300.9917612466961, + 307.61924185603857, + 302.9122327081859, + 310.6072776019573, + 302.16520657762885, + 301.15929713845253, + 330.35259418189526, + 303.75519121438265, + 300.8591423481703, + 314.71720457077026, + 305.18931689858437, + 303.12042181380093, + 308.6519345343113, + 303.3237192593515, + 304.06862008571625, + 330.5038336291909, + 308.25534227862954, + 326.5389874279499, + 308.19999120756984, + 316.52895916998386, + 303.5820761024952, + 302.9278328344226, + 302.3370190206915, + 306.9986295700073, + 328.06524347513914, + 317.4977290853858, + 300.8708493337035, + 302.0321440771222, + 378.58815512806177, + 306.75933519005775, + 341.76379292458296, + 323.33767725527287, + 316.33946480229497, + 301.87998158857226, + 300.94696157984436, + 301.77729474008083, + 311.23824915103614, + 319.01269875466824, + 325.34620060026646, + 323.1824647244066, + 304.5232585966587, + 308.52702556177974, + 301.25259949080646, + 312.387616366148, + 305.913126623258, + 304.1088727489114, + 302.90976222604513, + 303.04975926317275, + 308.79820693284273, + 304.40640611201525, + 313.1842635422945, + 314.03201233781874, + 309.3292340859771, + 309.0797558054328, + 309.1204374358058, + 320.08456689864397, + 303.2689637206495, + 308.39925841614604, + 306.5054923482239, + 313.7283558379859, + 305.1585729494691, + 302.49304059147835, + 302.5944823101163, + 301.36436512321234, + 302.5568432509899, + 311.1952177360654, + 310.6690302491188, + 314.2082608770579, + 304.3471612855792, + 308.6621835678816, + 306.23565243184566, + 312.2100947201252, + 309.58291724696755, + 305.7152502927929, + 306.5832863152027, + 310.9170688316226, + 308.15224920399487, + 312.6622135192156, + 313.4117963425815, + 306.0614335387945, + 307.84179248288274, + 322.367907717824, + 313.9649983420968, + 309.1668638885021, + 313.18685660511255, + 312.6519751511514, + 305.08749234490097, + 315.1827608924359, + 303.47964030504227, + 322.59685276448727, + 311.02865855395794, + 307.60430958494544, + 307.3620763402432, + 303.57649636268616, + 301.2545139044523, + 307.15888257324696, + 301.0990225896239, + 300.6920734010637, + 319.3188392147422, + 303.4257702343166, + 301.35923755168915, + 301.10455486923456, + 305.37224198691547, + 302.72785652056336, + 306.8123085126281, + 332.0257559455931, + 311.2987677715719, + 304.097560800612, + 303.8845285028219, + 302.44714304059744, + 300.6740035265684, + 342.4550674036145, + 302.0201671048999, + 301.1673773676157, + 311.15060694515705, + 312.07625410705805, + 301.57468888536096, + 307.42343655228615, + 306.55095767974854, + 308.26036666333675, + 308.87154606357217, + 319.41397666186094, + 317.87883853912354, + 304.32275004684925, + 308.1049850657582, + 304.12133729457855, + 311.87843925878406, + 301.49794009141624, + 311.6931681185961, + 309.23527780734, + 322.8385427594185, + 316.2688863873482, + 306.2146433368325, + 311.7301471196115, + 327.0305105596781, + 336.6115408837795, + 313.4080862849951, + 305.7035667896271, + 302.98574716597795, + 321.7209101691842, + 301.0959176979959, + 388.8277653492987, + 309.72061635553837, + 308.57687935233116, + 301.3590775486082, + 304.1777658164501, + 301.21078332699835, + 302.2243401799351, + 300.57034074887633, + 307.8868543431163, + 303.43474458530545, + 312.76389203965664, + 302.1040465272963, + 301.260877026245, + 304.45881893485785, + 301.88774617016315, + 303.9068257585168, + 329.63930813223124, + 304.98694898188114, + 302.87025152146816, + 304.7301557920873, + 300.714516736567, + 303.97516702488065, + 300.76313208043575, + 303.40114307403564, + 304.83183067291975, + 311.4337053671479, + 311.17744790017605, + 302.7684772014618, + 305.751458004117, + 310.7938692420721, + 306.8568130284548, + 320.3901561051607, + 308.01784725673497, + 302.8626073040068, + 305.25322791934013, + 308.2048449218273, + 301.0458589717746, + 306.01689705997705, + 300.9110474139452, + 308.77079337090254, + 363.2633922174573, + 312.7547261416912, + 306.39413671940565, + 301.0780231002718, + 303.4747374076396, + 305.5727122463286, + 303.65283615887165, + 302.1038670949638, + 310.90598797798157, + 302.88477797061205, + 328.41112305969, + 300.86047099903226, + 310.6237518824637, + 312.95034912228584, + 311.47232186049223, + 308.94855469465256, + 309.73488872498274, + 305.56036934256554, + 331.8832144141197, + 332.8573058769107, + 303.25764774903655, + 302.97489578835666, + 301.9709981381893, + 303.92301720380783, + 305.2345905881375, + 314.03227580338717, + 301.6786540299654, + 305.5313202366233, + 313.7945281267166, + 307.2292007766664, + 310.57112453877926, + 310.73860412836075, + 300.91394893825054, + 307.4091914370656, + 304.1661786362529, + 300.9880875945091, + 316.2517461255193, + 304.53569078445435, + 302.4453411027789, + 306.61178482323885, + 303.65713074058294, + 301.11216051131487, + 306.2699419334531, + 306.0890018492937, + 301.95132341980934, + 309.83940329402685, + 300.680918879807, + 305.66557584144175, + 303.6574743837118, + 300.88774295151234, + 308.4350672364235, + 312.9973969757557, + 302.0732094049454, + 301.3929114881903, + 304.41261771321297, + 304.3104585856199, + 308.7753881774843, + 302.79260156676173, + 308.8846882209182, + 309.85070042312145, + 332.42244416475296, + 314.4822103828192, + 320.17173805832863, + 303.622640684247, + 325.0228008404374, + 308.7727524191141, + 301.7748984694481, + 303.3902520351112, + 311.59785245358944, + 303.9980172943324, + 310.01884293556213, + 300.7417471855879, + 314.1306379288435, + 311.90588523447514, + 307.09328474104404, + 302.1145630441606, + 304.3469859957695, + 301.5404860675335, + 302.14663807302713, + 318.77657406032085, + 305.50502792187035, + 346.2365429736674, + 302.17621527053416, + 305.0660866498947, + 306.7322774641216, + 316.86402666568756, + 301.380025729537, + 316.5275456905365, + 305.0843161046505, + 304.04946298897266, + 309.03155025839806, + 303.9669124931097, + 318.45585995167494, + 303.962069645524, + 312.83230851590633, + 309.7857083249837, + 308.2954200040549, + 308.40846111625433, + 300.97724637389183, + 301.81147204339504, + 308.84025026857853, + 311.65392684191465, + 308.223615180701, + 313.3244410902262, + 314.2547607719898, + 304.81275545060635, + 301.2569476608187, + 311.6992294881493, + 303.45059890300035, + 320.1536803022027, + 344.1059215888381, + 358.9659701734781, + 304.86065346747637, + 311.70150538533926, + 305.55445720255375, + 306.0504770707339, + 314.3990335315466, + 310.6852714419365, + 305.6566614434123, + 309.159031547606, + 305.01578556001186, + 322.814274802804, + 303.8414657115936, + 308.73417995125055, + 309.69832345098257, + 313.46328780055046, + 307.277779892087, + 310.7412001937628, + 300.77725147269666, + 303.7062088623643, + 314.2960046455264, + 302.3537227138877, + 303.2174222506583, + 303.2224945798516, + 301.6180089227855, + 338.4800622165203, + 302.4789864923805, + 307.06824392080307, + 315.7408471405506, + 328.15431816130877, + 305.2188957966864, + 303.81091310828924, + 302.7283724695444, + 325.1312930099666, + 306.55016768723726, + 311.78455987013876, + 318.4224913343787, + 318.4207096248865, + 306.0992268398404, + 300.2921863179654, + 311.77686120569706, + 304.3379567936063, + 311.7882649451494, + 301.9072018414736, + 301.91458405554295, + 302.8775910139084, + 301.00486385822296, + 316.4728499054909, + 308.6823462545872, + 304.72517690062523, + 309.2073538079858, + 308.07365956902504, + 334.61317320354283, + 303.93023771606386, + 302.3070387169719, + 305.52497736364603, + 303.2888727709651, + 305.39623284339905, + 310.8555293343961, + 310.3483230136335, + 332.7002026811242, + 301.1053522415459, + 312.90356130898, + 310.8707281127572, + 306.0712857693434, + 320.2589534446597, + 332.02720679342747, + 302.05357480049133, + 316.83721543848515, + 313.999183870852, + 308.0559459477663, + 303.1945349611342, + 302.6408873666078, + 363.4888179600239, + 302.9381649270654, + 301.1947075687349, + 315.30739959329367, + 307.6321040838957, + 315.1319732815027, + 334.59587406367064, + 317.6641866415739, + 300.9281614627689, + 317.8672016635537, + 337.7845874596387, + 322.4196628332138, + 306.8117136284709, + 302.71769446879625, + 303.7946993485093, + 300.77561839669943, + 306.07794788107276, + 326.07478964701295, + 319.2079245224595, + 302.2521877735853, + 302.4793832600117, + 305.5885965526104, + 302.8370883539319, + 312.4880138672888, + 302.8576583582908, + 310.6963013932109, + 307.6473384052515, + 303.74310429766774, + 302.9122231155634, + 312.05244878679514, + 302.9384036511183, + 303.5878855101764, + 352.97442702949047, + 313.2356289345771, + 306.96987714245915, + 306.6884030327201, + 314.61350859701633, + 305.49129247665405, + 302.25450698286295, + 304.349388319999, + 308.55316912569106, + 305.1022791136056, + 303.9498119968921, + 303.35586582124233, + 327.71098620444536, + 322.6556877344847, + 312.968315243721, + 304.0749894231558, + 314.9602561071515, + 312.0038251131773, + 309.0343146622181, + 317.0151378195733, + 319.25253719091415, + 325.13510942459106, + 302.4105020686984, + 314.2985747009516, + 308.85949525795877, + 324.1124502643943, + 347.76147946342826, + 312.13293451070786, + 303.9694103449583, + 315.1628524437547, + 303.3564134705812, + 303.1186454575509, + 315.91231889277697, + 302.07365035638213, + 372.29762173071504, + 301.77094784379005, + 319.10407086648047, + 318.6666158810258, + 321.1429849639535, + 305.7897591087967, + 303.32897864095867, + 302.6619760580361, + 311.5460385456681, + 306.5313405394554, + 310.07678166776896, + 306.6758090816438, + 326.0911462008953, + 313.6381706148386, + 301.3162831515074, + 314.06989992409945, + 321.1659035682678, + 335.5800383500755, + 304.5999693721533, + 304.6723946109414, + 307.8023713398725, + 316.7145047560334, + 308.04466907680035, + 305.25866800919175, + 316.9138352572918, + 304.6296367943287, + 315.72525821626186, + 317.9753761328757, + 308.0628555752337, + 311.3478359878063, + 328.0385211482644, + 309.3264968749136, + 301.3730975538492, + 307.84397526830435, + 312.3615383543074, + 300.8606087323278, + 307.22119951061904, + 318.7586234193295, + 304.2183722034097, + 311.52402215451, + 303.0968837440014, + 313.2801285684109, + 303.7826645374298, + 301.579092271626, + 306.3576010465622, + 301.24427530542016, + 302.4881066791713, + 305.2911839708686, + 311.25239180773497, + 306.32666500657797, + 311.1328648030758, + 306.68482960760593, + 305.7823842279613, + 304.30878456123173, + 302.43020491860807, + 302.91756926476955, + 306.64489787071943, + 315.0122665092349, + 307.7215169519186, + 300.437702415511, + 306.91284907609224, + 303.6595917120576, + 307.9563444107771, + 303.981973875314, + 302.2696348205209, + 312.7919851318002, + 302.8578509837389, + 300.86212116479874, + 301.59875763207674, + 321.4936233535409, + 307.9841411560774, + 310.66804693453014, + 315.24919560551643, + 303.7152963578701, + 322.1268712170422, + 306.4866449534893, + 308.0473746806383, + 317.93403857573867, + 307.88156086206436, + 308.74375239014626, + 308.16369416564703, + 308.7001981921494, + 315.2698013931513, + 303.5062547624111, + 308.1686750948429, + 317.7866174355149, + 306.5228653997183, + 319.3334817420691, + 312.28272829577327, + 302.44711297750473, + 302.18163473159075, + 327.0124957039952, + 313.664838898927, + 301.9401410855353, + 313.11346170865, + 303.8535981308669, + 305.0697312168777, + 305.65960025042295, + 311.2644262909889, + 317.47847443446517, + 311.87959346175194, + 301.1359696909785, + 313.35083693265915, + 329.5752055719495, + 303.1016015969217, + 300.79303283430636, + 361.11886064708233, + 302.8540885448456, + 301.3890465721488, + 301.38914988189936, + 319.5225523598492, + 303.8617455791682, + 308.63327679783106, + 302.1841267198324, + 300.49202398210764, + 315.6001385450363, + 301.24825885146856, + 302.22143056988716, + 304.89931643754244, + 302.7106431424618, + 304.84846322238445, + 323.65032832324505, + 304.36364053189754, + 302.37284031137824, + 321.48204382508993, + 314.33715054392815, + 317.26750952750444, + 303.9361551646143, + 308.81416203826666, + 301.09260538965464, + 308.37036015838385, + 309.9783872552216, + 302.17720935307443, + 309.44209592044353, + 305.59314131736755, + 300.52916656062007, + 310.63979042880237, + 334.73843473754823, + 311.0097631253302, + 300.83872869610786, + 303.54191713035107, + 303.60761568695307, + 308.60244143381715, + 310.5276001505554, + 307.4819828905165, + 372.8536601420492, + 312.7968117967248, + 304.3818208165467, + 301.4727239795029, + 302.30943651497364, + 313.39740377664566, + 301.9720492064953, + 311.5301300343126, + 311.01312518678606, + 303.95497810840607, + 337.53234972059727, + 320.5145365521312, + 306.2479088306427, + 306.7692592423409, + 357.96673502773046, + 304.5888853855431, + 320.70368394628167, + 314.88902372308075, + 315.2983752787113, + 314.352461643517, + 313.99913024902344, + 321.25935459136963, + 303.6815261244774, + 301.3397617191076, + 316.4090907871723, + 338.4057550281286, + 322.1436112001538, + 300.79239711910486, + 305.9848810136318, + 304.24246989935637, + 304.6515705808997, + 303.82778672873974, + 306.8487294986844, + 304.62307262420654, + 302.8718797452748, + 342.9911318421364, + 309.475238725543, + 305.6001195795834, + 305.67357628792524, + 306.3496343754232, + 301.43642531335354, + 301.98563681170344, + 305.5050470121205, + 311.30971998535097, + 305.64131812751293, + 308.2527398876846, + 305.1638715788722, + 302.598290592432, + 306.02479687333107, + 305.029502408579, + 301.317256860435, + 303.95474683493376, + 319.2793967016041, + 309.641317255795, + 300.9337515756488, + 304.7525058314204, + 305.18533670157194, + 307.4254022166133, + 308.25798328220844, + 302.75397592782974, + 322.6740240380168, + 303.7030507028103, + 305.583070397377, + 302.78885336220264, + 309.16942093521357, + 303.2766422331333, + 320.7509660869837, + 302.29845781996846, + 304.6553818769753, + 309.08879002183676, + 304.6326883584261, + 318.30064810067415, + 317.1134598441422, + 302.32994432747364, + 301.65366039052606, + 302.12602193653584, + 304.3570315986872, + 306.1236618049443, + 312.7957355976105, + 303.85869533382356, + 307.14686892181635, + 313.3586907200515, + 304.1523343473673, + 302.2234262749553, + 301.774102402851, + 301.8348097167909, + 304.34208235889673, + 316.661145105958, + 307.51428082585335, + 302.5070437192917, + 305.35534630715847, + 303.7673754170537, + 304.55301490426064, + 308.05346788465977, + 311.0642244890332, + 308.1121131256223, + 366.2693178281188, + 304.0731433033943, + 300.49532083421946, + 301.95051051676273, + 311.6055647749454, + 302.65323850512505, + 305.1203320194036, + 301.9150975290686, + 304.6703851521015, + 305.97817884385586, + 323.3998862653971, + 303.3358813524246, + 300.6702058799565, + 309.6307462900877, + 301.2929973490536, + 302.51290652155876, + 420.3319882452488, + 307.3220351859927, + 314.2397764772177, + 308.4160500690341, + 314.7586539685726, + 304.1775641813874, + 300.412666708231, + 304.5111431777477, + 304.2217085957527, + 304.6919882670045, + 323.200932726264, + 305.5064518228173, + 302.25520120188594, + 325.43569404631853, + 334.9760314784944, + 303.47362507134676, + 306.9546519815922, + 324.9563781376928, + 306.8202798627317, + 304.4773855805397, + 313.22639359533787, + 302.7446556016803, + 304.78162731975317, + 305.0975013449788, + 304.2693304270506, + 304.26122910529375, + 307.7285271137953, + 305.7017005085945, + 314.9278332814574, + 302.9774820320308, + 310.7087091729045, + 300.8926304280758, + 307.04365425929427, + 303.6188121289015, + 301.9763856045902, + 308.2299401219934, + 330.62359277904034, + 307.2061792910099, + 301.62047532759607, + 305.07645385339856, + 320.1082736887038, + 305.58623829483986, + 301.3903532400727, + 308.75189588963985, + 333.5036058090627, + 313.473591953516, + 305.4995941966772, + 303.3491268828511, + 304.6699434109032, + 307.7582517564297, + 316.2946222089231, + 301.3829720392823, + 307.3587862588465, + 302.5435432419181, + 305.7560299411416, + 316.97712360322475, + 308.20963709801435, + 305.4588570911437, + 307.32267390191555, + 313.53511943668127, + 349.2674700766802, + 304.9522887542844, + 303.2768438309431, + 314.9857619330287, + 306.34201814979315, + 317.4904917962849, + 305.3285268768668, + 316.6223022118211, + 335.86742352694273, + 303.3201305344701, + 311.7800586298108, + 332.78271529078484, + 316.6919765472412, + 305.2462203875184, + 300.6706524696201, + 316.95994874089956, + 300.6123608555645, + 315.34878372401, + 302.6267256774008, + 310.90499290823936, + 301.30140291154385, + 307.5272104628384, + 302.17943996191025, + 304.3453583829105, + 302.93516425043344, + 306.029564589262, + 306.3487543016672, + 304.3048220053315, + 316.6171704828739, + 301.0055235736072, + 319.694511950016, + 300.7086825389415, + 338.950931891799, + 312.1857518032193, + 306.41136033833027, + 302.54856496304274, + 308.5006052479148, + 319.3858762383461, + 302.97825038433075, + 316.61680270172656, + 344.96546687185764, + 300.71056798659265, + 306.1901232153177, + 318.5960752815008, + 319.03938445821404, + 300.7033937871456, + 300.7989448606968, + 324.1084912121296, + 309.5316059179604, + 318.86371710151434, + 318.43736218102276, + 314.6638808734715, + 311.9047649279237, + 310.8258125334978, + 301.13688698783517, + 307.2508303672075, + 311.59949337504804, + 301.5389384366572, + 315.0855021700263, + 310.73405946046114, + 306.9437145218253, + 332.58355413377285, + 306.7551572099328, + 316.9836469963193, + 300.9067645519972, + 312.86262194253504, + 310.8470797240734, + 323.9268192499876, + 301.5035253036767, + 326.58596071600914, + 342.2796204313636, + 305.2285311371088, + 301.1155485510826, + 325.68399648182094, + 301.2263341564685, + 306.88890413194895, + 301.07625978812575, + 305.3453339524567, + 304.80671817809343, + 316.9388548210263, + 302.01110737770796, + 340.0130006223917, + 311.20703275874257, + 311.3566516637802, + 310.3226861320436, + 303.7031971924007, + 300.8198463320732, + 306.1627501100302, + 304.7846630811691, + 326.67840099334717, + 303.01049800775945, + 353.70021449774504, + 304.1681315675378, + 303.3263559937477, + 301.21224101632833, + 305.47435750067234, + 306.8189257606864, + 303.1208858639002, + 315.15173959359527, + 305.7499078065157, + 319.10340511240065, + 386.9128204714507, + 306.1012347564101, + 317.4386457875371, + 304.59233164042234, + 309.9679405167699, + 301.07446360215545, + 307.45335512049496, + 304.73919048160315, + 346.1148366332054, + 317.14988694526255, + 304.1599347218871, + 300.9554372802377, + 322.3342516720295, + 311.59406173601747, + 312.97924868017435, + 309.10350028797984, + 307.79068445414305, + 302.1977754533291, + 303.249444976449, + 319.0289933383465, + 307.2297259271145, + 305.24929962679744, + 317.75890194810927, + 301.8239714279771, + 301.62958428263664, + 362.79525639116764, + 300.6905263662338, + 310.5174822025001, + 301.95520809292793, + 308.60776080936193, + 319.54872991889715, + 319.933634147048, + 315.15799228847027, + 316.47920902073383, + 303.89488836564124, + 300.8039242401719, + 302.6320460960269, + 306.1523092389107, + 308.0507620126009, + 305.8537625670433, + 305.6407945752144, + 327.1221135780215, + 303.55194229632616, + 337.5022287964821, + 301.9542180541903, + 306.3551562447101, + 315.41758893430233, + 303.12338215857744, + 316.4167190641165, + 300.64055873453617, + 301.79262037575245, + 344.5496544986963, + 302.4195504114032, + 302.88494706712663, + 307.171985572204, + 301.5541592463851, + 327.2093682214618, + 303.24739261716604, + 304.2404471486807, + 302.8269353657961, + 304.95843440294266, + 358.1814075522125, + 303.2002412918955, + 304.120270870626, + 304.0619165673852, + 302.14154798164964, + 303.9668826572597, + 301.290276106447, + 306.63911620527506, + 326.733840636909, + 308.1053845882416, + 301.1747029200196, + 307.189500907436, + 302.2941526994109, + 304.43220875039697, + 304.2632612064481, + 302.9778022766113, + 303.18160328269005, + 302.2737883925438, + 318.0730027332902, + 304.5791262164712, + 309.3049678504467, + 309.5032134875655, + 305.46341252326965, + 308.7650857940316, + 324.7483865171671, + 301.5545999780297, + 324.25268111377954, + 314.4820646457374, + 313.3634463045746, + 308.0851709023118, + 306.8595206364989, + 307.7754977568984, + 305.9037724882364, + 323.145753480494, + 320.60439766198397, + 311.5614101961255, + 303.62791677191854, + 301.8452697061002, + 302.3538071811199, + 378.0535394176841, + 304.017451742664, + 305.91109493747354, + 305.4091096110642, + 314.96900050342083, + 306.1856670603156, + 302.5082323104143, + 303.3573182411492, + 300.58945406228304, + 316.6219897791743, + 303.4192846864462, + 311.1059964299202, + 301.06625275313854, + 302.1741452515125, + 300.92122399806976, + 315.496355291456, + 304.54722318053246, + 302.98921905457973, + 300.73332437872887, + 301.34050830826163, + 303.38343760184944, + 320.89599837362766, + 318.8935726247728, + 314.88760659843683, + 305.0951504036784, + 306.131061270833, + 310.670859945938, + 300.98943081125617, + 310.69418285787106, + 301.79748448729515, + 334.27753638476133, + 306.6880679130554, + 306.1394087895751, + 304.3503425270319, + 302.56563905254006, + 305.88267705589533, + 308.28719809278846, + 302.64751381985843, + 302.2602718099952, + 304.2057200372219, + 306.6104081645608, + 303.68775644898415, + 303.6417629607022, + 302.2854539230466, + 304.9329224526882, + 317.26542264968157, + 302.5788238439709, + 300.6737349256873, + 308.9239857234061, + 319.2812616676092, + 372.6976101323962, + 306.4228826183826, + 302.35486351698637, + 313.4350238945335, + 301.12357204407454, + 322.7463537529111, + 311.99443117529154, + 322.73951847851276, + 301.38249679654837, + 308.86016051471233, + 302.22667115554214, + 307.04745358228683, + 303.79177701100707, + 309.34309116750956, + 323.0973701290786, + 317.0645125936717, + 303.87434712052345, + 312.2505974173546, + 327.936885189265, + 334.245079793036, + 302.16253524273634, + 315.5266843046993, + 305.5160521566868, + 303.0070730857551, + 331.0163143388927, + 311.32421788945794, + 303.3005830347538, + 316.3529485464096, + 327.5298475269228, + 304.5871715787798, + 327.44522919878364, + 356.49343592487276, + 311.34159515053034, + 320.4401945397258, + 314.026356369257, + 304.89126409962773, + 315.5447567217052, + 304.0585914924741, + 306.94292080029845, + 306.6668408848345, + 309.9147393479943, + 304.4977133870125, + 316.76999547705054, + 304.8732684664428, + 302.7437940388918, + 301.97744883969426, + 304.8344645034522, + 312.34040377289057, + 302.58365374058485, + 313.526050940156, + 305.8393840305507, + 300.95681741833687, + 343.232628762722, + 301.24297016859055, + 307.1777140945196, + 303.66401951014996, + 301.3552467226982, + 302.3573550134897, + 302.5700287669897, + 308.58060785382986, + 310.8039717525244, + 341.8462703973055, + 302.80670882947743, + 302.86695688962936, + 302.3192619085312, + 316.42245058342814, + 314.43270096182823, + 307.26743157953024, + 300.62788137048483, + 307.36756575107574, + 301.46585873886943, + 309.51697355508804, + 301.53666605986655, + 308.74235256016254, + 340.6890164613724, + 301.6489418335259, + 303.7978448420763, + 305.6283271834254, + 308.37840110994875, + 323.0480755828321, + 342.18053787201643, + 304.22695522010326, + 301.81695035099983, + 306.76750312000513, + 309.1115186866373, + 301.4907686933875, + 302.24557250365615, + 308.95620569586754, + 318.569511808455, + 339.13334234058857, + 330.6793864555657, + 305.8929503932595, + 300.9758057463914, + 310.45291266590357, + 322.60470930859447, + 302.5293348133564, + 315.5975738763809, + 301.18659675866365, + 346.9382384698838, + 312.79406149685383, + 300.7376931216568, + 306.2715504541993, + 302.9663667231798, + 302.71387842297554, + 301.4341167733073, + 326.4992334470153, + 330.7815053835511, + 306.5787719413638, + 308.0207559838891, + 316.26680336892605, + 303.4937193840742, + 321.326144086197, + 305.57482262700796, + 328.202129855752, + 308.49608654528856, + 307.7318023145199, + 306.31015264987946, + 300.9154926612973, + 308.16323705017567, + 371.0833904966712, + 301.2762476056814, + 309.1914957500994, + 301.0446511153132, + 318.78397131711245, + 305.8140798062086, + 326.41052132472396, + 302.63659900426865, + 381.2750435471535, + 322.7139546331018, + 316.3612522780895, + 305.97792802006006, + 310.1494213156402, + 301.6775914747268, + 311.56523541361094, + 303.8959475979209, + 307.58231081813574, + 300.92343621701, + 304.24605083838105, + 339.8308702800423, + 302.19123297929764, + 304.36553202569485, + 306.93489852547646, + 303.7242655456066, + 305.6876952536404, + 305.78880348801613, + 309.581686809659, + 339.5061931684613, + 308.0489772222936, + 325.8693782314658, + 307.4442571438849, + 303.88230789639056, + 314.1440512910485, + 304.3213055431843, + 389.6238819286227, + 311.1880556419492, + 308.7339503262192, + 307.17868948727846, + 305.3141019642353, + 310.2723091430962, + 304.8533263709396, + 305.19923485442996, + 303.05069053918123, + 314.2765567302704, + 385.3760734088719, + 330.9410612285137, + 320.95779125764966, + 312.8744622915983, + 371.6894768178463, + 389.88401548564434, + 308.2964632604271, + 314.0220127440989, + 343.9906912520528, + 305.23198737204075, + 312.4598709791899, + 306.13548268936574, + 301.29339577257633, + 304.1148041635752, + 311.6783564016223, + 303.8922751918435, + 338.1171436160803, + 314.38240008056164, + 307.015831053257, + 307.19796085357666, + 319.35430129244924, + 303.5967704690993, + 307.12691557593644, + 331.0780139453709, + 310.1396043598652, + 303.79533533006907, + 303.19801403582096, + 301.1967178341001, + 306.29413209855556, + 300.54001327976584, + 305.63573434203863, + 303.18917119689286, + 308.8893260732293, + 306.45174292102456, + 315.21605555713177, + 305.1166305691004, + 300.9193715304136, + 304.36452944017947, + 307.45917777717113, + 300.26708302646875, + 314.47960582003, + 304.3895345926285, + 306.164194598794, + 301.657582834363, + 319.5729929804802, + 310.1530368551612, + 310.7289866656065, + 305.1618853267282, + 302.8228745497763, + 308.1974602267146, + 302.37078142911196, + 310.686572290957, + 302.4739623814821, + 311.55355140566826, + 301.9107395634055, + 309.44487304612994, + 384.31047621555626, + 305.99745504558086, + 300.65022867918015, + 302.9741157963872, + 331.13850401341915, + 306.0913289785385, + 311.03687455132604, + 309.8760197516531, + 303.0343357101083, + 304.30490435287356, + 307.9511157646775, + 336.2869989722967, + 302.6548907458782, + 301.75458445213735, + 308.4124752879143, + 302.87851941399276, + 301.2974871471524, + 316.5736793130636, + 304.8030745126307, + 310.2399298027158, + 301.7136107981205, + 300.44691260904074, + 330.44271875172853, + 312.4919992648065, + 344.82543601095676, + 301.6860302835703, + 302.10954108834267, + 302.33866734057665, + 322.7822447605431, + 309.0472654104233, + 301.37255039066076, + 312.7259999252856, + 315.5978887453675, + 305.9564233869314, + 309.81384686380625, + 301.6899910122156, + 309.43888825178146, + 349.4902488812804, + 308.86562637239695, + 303.83693683706224, + 302.0096210949123, + 303.27853824943304, + 305.78837263584137, + 308.41876949183643, + 341.9712400585413, + 314.7147686108947, + 306.6784717515111, + 323.78656708821654, + 327.23276192881167, + 302.9735716022551, + 308.8943914473057, + 303.86831303685904, + 303.0928430855274, + 304.54045790433884, + 314.2853285185993, + 301.7597065754235, + 304.98614996671677, + 304.32775750011206, + 304.00019109994173, + 301.1695023216307, + 308.3501686230302, + 307.26596278883517, + 369.8243027180433, + 302.5466282647103, + 301.57988672703505, + 302.5717533007264, + 304.6445565223694, + 306.79005436599255, + 301.7560479976237, + 306.78960582986474, + 324.82773846387863, + 323.57853155583143, + 307.62728175893426, + 308.0544365718961, + 307.2052645236254, + 303.8052637428045, + 305.1525091379881, + 383.35247828811407, + 363.60446705669165, + 302.16734316945076, + 303.0804096907377, + 301.33460480719805, + 304.30479577183723, + 302.5137368440628, + 309.894204756245, + 320.961107686162, + 313.741441398859, + 354.3436285927892, + 356.0106251835823, + 313.53226900473237, + 301.20797787234187, + 301.28616827726364, + 316.711062874645, + 304.1808569356799, + 302.26785058528185, + 303.7488432303071, + 300.7319760825485, + 304.17214927077293, + 309.2925903238356, + 303.5064492970705, + 303.46766036748886, + 319.7258700504899, + 302.8176936041564, + 318.65320845879614, + 393.2685694247484, + 328.36128707416356, + 309.33408553898335, + 311.1736368238926, + 307.9637203104794, + 314.13315127789974, + 310.4956673644483, + 307.17370314896107, + 318.4569051004946, + 301.9363325461745, + 333.0725086517632, + 381.2897524610162, + 308.8022413291037, + 303.44016318768263, + 302.2350464146584, + 301.9656039252877, + 301.90277947485447, + 306.8666114490479, + 309.8742772638798, + 308.32695695757866, + 306.4035062119365, + 301.7371689900756, + 309.3382036462426, + 376.6503342837095, + 301.8576541990042, + 335.27005798742175, + 303.0381054058671, + 300.9844983480871, + 301.4705962948501, + 350.5405826047063, + 305.418057622388, + 300.3834645077586, + 323.9497864842415, + 310.24774853885174, + 302.02948870509863, + 305.71757465973496, + 306.7180261313915, + 347.1262271590531, + 361.56673711538315, + 320.0247782096267 + ] + }, + { + "histnorm": "probability", + "hovertemplate": "Scenario: timebin_5
Dist since last refuel: %{x:,.1f}
Bin share: %{y:.3f}", + "name": "timebin_5", + "nbinsx": 40, + "opacity": 0.5, + "type": "histogram", + "x": [ + 316.7660145238042, + 307.6004516482353, + 306.2834424674511, + 310.3656107317656, + 302.69422256201506, + 309.80675803497434, + 334.2463342025876, + 325.71548557281494, + 310.43006642349064, + 307.05573858320713, + 321.76685313135386, + 300.7771765962243, + 304.3298754170537, + 303.05852396786213, + 303.11737292446196, + 300.81958233751357, + 305.70594995841384, + 357.5500718578696, + 349.07552333176136, + 300.87003744393587, + 309.38854609429836, + 317.2068584635854, + 316.90763150155544, + 304.2048480659723, + 371.54291739314795, + 301.76063016057014, + 300.8409025669098, + 300.6715645119548, + 302.3561992198229, + 307.61754938587546, + 309.27522088959813, + 302.4744134992361, + 309.41932997852564, + 379.0264274328947, + 305.8226368278265, + 306.57412995398045, + 304.0897112637758, + 306.1512080654502, + 316.26203821599483, + 302.02747440338135, + 320.8538354188204, + 346.71380058676004, + 304.91343300789595, + 301.97171527147293, + 300.2083471044898, + 324.3917339593172, + 301.1541807502508, + 301.9407445937395, + 304.2777802348137, + 311.4493640623987, + 313.00494612008333, + 319.1910460591316, + 301.7739512771368, + 303.6146834269166, + 306.8268260359764, + 317.5913856327534, + 310.51838132739067, + 305.27732771635056, + 304.1433966308832, + 333.36688559502363, + 302.4618721399456, + 309.0505621880293, + 301.6175590008497, + 305.91671811789274, + 305.68722227215767, + 300.4976351708174, + 302.3957139700651, + 304.84989712014794, + 303.89255199581385, + 332.0708780363202, + 305.94904444366693, + 312.3764371275902, + 312.0807600095868, + 307.12260070443153, + 303.6290652230382, + 319.0764776356518, + 320.25124229490757, + 310.95333582162857, + 307.5055437460542, + 302.76022827625275, + 316.96891424804926, + 355.4085265994072, + 357.3627615571022, + 313.88277662731707, + 309.0553957596421, + 305.17485189437866, + 312.99628289043903, + 314.3567025959492, + 325.8126579001546, + 328.9806780964136, + 301.954364746809, + 301.0293167978525, + 320.4344247728586, + 312.747051179409, + 301.6884656995535, + 302.0997263044119, + 321.2043120265007, + 305.3797722160816, + 323.4214373528958, + 309.9417571723461, + 308.1357677578926, + 301.98820182681084, + 314.47080697119236, + 312.40328162908554, + 309.1452978178859, + 306.1026621386409, + 337.59202617406845, + 306.00073712319136, + 304.15525545179844, + 318.87966525554657, + 301.49355190992355, + 301.42718440294266, + 303.3648858368397, + 303.3497583474964, + 313.3610387481749, + 350.373292632401, + 304.95286163687706, + 311.05463203787804, + 314.37723195552826, + 302.91512486338615, + 314.45267690718174, + 307.08866012841463, + 304.8276710808277, + 418.2078422307968, + 304.0181463137269, + 313.4226032719016, + 303.308284714818, + 306.6257066950202, + 316.82398445159197, + 320.4203051254153, + 305.35451217368245, + 301.9715847298503, + 301.0873360745609, + 316.06720673292875, + 301.7297966182232, + 306.9183397144079, + 327.65782238543034, + 303.0459187552333, + 302.3422683775425, + 301.3729654699564, + 307.02799128741026, + 318.843755684793, + 316.51399125158787, + 304.9402453675866, + 310.55248703435063, + 317.7567701637745, + 310.51988220214844, + 312.5940418988466, + 308.52951291948557, + 301.12500128149986, + 314.10439819842577, + 311.47292520850897, + 302.033530049026, + 312.2403703555465, + 319.93728648871183, + 314.4012121632695, + 305.4706992059946, + 308.3276566118002, + 314.9155302345753, + 309.58191876113415, + 312.1081694662571, + 310.19468066841364, + 301.3207786232233, + 310.13538260757923, + 301.1609506011009, + 303.6254172846675, + 329.18989654257894, + 302.0941290706396, + 303.44990012794733, + 303.57859380170703, + 308.7440820708871, + 306.2712635733187, + 302.1398316025734, + 300.582343660295, + 303.86625139415264, + 308.1940414234996, + 319.08043656498194, + 305.11952351406217, + 319.0380565524101, + 318.6784375309944, + 311.80555298924446, + 305.73188679665327, + 301.7042781561613, + 304.37434682250023, + 304.204134196043, + 312.0602548122406, + 304.2475467454642, + 311.0974965188652, + 301.31472186744213, + 308.27202751487494, + 334.5402092002332, + 314.8165312483907, + 315.9656935632229, + 308.1075454801321, + 312.01424065232277, + 325.5257959663868, + 321.73930524662137, + 315.73058773204684, + 307.41941487044096, + 306.8712809085846, + 306.7894047498703, + 306.54827728495, + 311.1431105900556, + 302.9499493986368, + 304.2545941621065, + 303.1015516128391, + 325.000343978405, + 309.704160399735, + 308.7305088862777, + 310.0120444819331, + 373.22493171691895, + 315.7289839088917, + 304.16186322271824, + 319.547490388155, + 303.5969932973385, + 320.59350145608187, + 309.064861766994, + 312.7201647311449, + 306.4684661179781, + 303.235738247633, + 312.6640054285526, + 302.1492920741439, + 315.83827170729637, + 304.4259860087186, + 301.7410456240177, + 305.7782518044114, + 310.183398231864, + 304.3116286545992, + 303.0637845825404, + 307.7598427385092, + 306.8638809863478, + 304.4446505382657, + 306.30197113752365, + 318.6947541683912, + 338.4899881593883, + 303.12701508775353, + 304.86005293019116, + 313.3225413784385, + 302.7582117319107, + 300.7701462954283, + 302.0947435721755, + 304.57714558392763, + 310.8566986322403, + 307.1091790944338, + 342.0783921033144, + 311.1848239004612, + 301.34273307211697, + 301.4232178479433, + 307.7159038335085, + 300.58990988880396, + 307.6927076280117, + 309.3212923705578, + 318.56285483017564, + 304.47254395484924, + 338.5259442497045, + 307.64409613609314, + 320.1135638281703, + 304.9710751324892, + 309.2074449509382, + 307.42420567944646, + 305.6011647284031, + 305.33160123229027, + 318.2821561843157, + 312.0395401120186, + 363.7810558229685, + 357.75899600982666, + 311.230074390769, + 301.44536994583905, + 302.6521498784423, + 375.5478569865227, + 315.36070814728737, + 306.96788427233696, + 319.3846434354782, + 317.67216219753027, + 308.8359597399831, + 320.8353940695524, + 302.3281366676092, + 307.681907877326, + 302.55234321951866, + 306.0616107136011, + 306.240495339036, + 301.2695084810257, + 301.37374533712864, + 310.1107080206275, + 303.07405223697424, + 306.9701132029295, + 339.80831180512905, + 303.1197609901428, + 309.96810103952885, + 300.97998228669167, + 304.54544289410114, + 310.33783162385225, + 313.36239117383957, + 310.18028877675533, + 309.8524502776563, + 303.2283914461732, + 306.6614045724273, + 307.0150046311319, + 304.9106381088495, + 303.79911597818136, + 327.346602961421, + 302.436611995101, + 301.00187949836254, + 303.1696597188711, + 308.13608664274216, + 322.0339961312711, + 303.5828273072839, + 308.89470214396715, + 303.556584443897, + 308.30226527154446, + 303.1398147046566, + 307.13624081760645, + 303.18725856393576, + 303.31914276629686, + 314.75063354708254, + 305.52544289827347, + 305.5070578753948, + 377.85993869416416, + 311.53462179005146, + 312.6647724211216, + 341.02641936019063, + 303.34378845244646, + 303.72172159701586, + 301.5384567603469, + 302.230882326141, + 303.8168180882931, + 301.21486611664295, + 302.43057192116976, + 300.80079796910286, + 310.7847804352641, + 306.54227962344885, + 323.74581567943096, + 301.0025002360344, + 316.03138630092144, + 302.54305006563663, + 302.84918969497085, + 303.9436824917793, + 306.97879921644926, + 300.443962931633, + 323.17987989634275, + 403.32982229441404, + 306.8669753149152, + 323.0624230802059, + 306.0951086357236, + 309.86337165534496, + 306.919650003314, + 339.56465741991997, + 313.06491665542126, + 313.78710977733135, + 314.32228146493435, + 307.43747986480594, + 310.60537883639336, + 302.3627524897456, + 305.3862217031419, + 300.62839060276747, + 344.0855491012335, + 311.74845466017723, + 303.2038462460041, + 301.1622745618224, + 307.65486592799425, + 305.69584080576897, + 302.7071791626513, + 330.37807044386864, + 308.7911952473223, + 313.22214460372925, + 302.81191019155085, + 304.76174503564835, + 304.4772444553673, + 300.64177699387074, + 304.78746880218387, + 312.45140329003334, + 303.39255071245134, + 338.05387488007545, + 348.7508352249861, + 303.0261446163058, + 300.24626310914755, + 303.35862531512976, + 305.7823445647955, + 359.47754165157676, + 309.2078800275922, + 311.9288108497858, + 306.7877896465361, + 334.63998552784324, + 304.085867613554, + 304.14560355991125, + 302.92013081908226, + 302.5897508263588, + 301.36778722703457, + 313.12481197714806, + 337.58799619972706, + 356.19430815801024, + 304.82319681346416, + 302.69454910606146, + 311.5065014027059, + 306.72728065401316, + 310.33836794644594, + 317.09291599690914, + 308.9098111689091, + 308.2625665515661, + 306.5024400651455, + 318.033034697175, + 303.9004834443331, + 323.8672678023577, + 306.59182085096836, + 359.7019952684641, + 304.14074516296387, + 310.0335685610771, + 310.91559512913227, + 315.3165447153151, + 301.7766904104501, + 319.0734649002552, + 310.940251044929, + 307.5674555078149, + 311.6288644298911, + 303.97566966712475, + 300.41082967072725, + 307.69078478962183, + 305.33912943303585, + 311.9230778813362, + 303.50126621872187, + 309.90581031888723, + 305.09791050851345, + 304.7923327535391, + 309.2472935691476, + 301.63457657396793, + 309.1344193611294, + 304.6927997767925, + 303.6575712468475, + 307.1032827347517, + 303.05998073518276, + 300.99487636983395, + 306.437757268548, + 351.8020156957209, + 304.674389988184, + 304.0626782402396, + 312.7728371247649, + 303.52052729576826, + 308.0263068471104, + 308.0204799696803, + 307.8499890640378, + 306.354853361845, + 303.85168543085456, + 313.66464452818036, + 304.15393573231995, + 301.6647827923298, + 309.33762803673744, + 313.8728272765875, + 308.87369011342525, + 326.7905943840742, + 317.7206455543637, + 311.741426743567, + 308.826426230371, + 313.7799191623926, + 305.0177268628031, + 301.4605391845107, + 322.12590439990163, + 306.1023353934288, + 306.5807826668024, + 302.7897451519966, + 331.84519305825233, + 304.6271567605436, + 309.8445663973689, + 301.95330503210425, + 315.4242115318775, + 304.0535554140806, + 301.85961435735226, + 301.5627488344908, + 315.6460221558809, + 306.7854493930936, + 309.1061322391033, + 303.8345054835081, + 312.4238227158785, + 305.0654614344239, + 302.74933642335236, + 304.3026901036501, + 302.16813430935144, + 308.1207495126873, + 304.4164808727801, + 300.6772599592805, + 309.4698234796524, + 301.8877017572522, + 331.9417256936431, + 313.24892261996865, + 315.83152167499065, + 303.73502004146576, + 304.3553541302681, + 310.54793736338615, + 301.66708167642355, + 300.7727748528123, + 311.92516681551933, + 305.77323069423437, + 345.122123003006, + 319.0083760395646, + 324.50917226821184, + 308.22185523808, + 305.88394790142775, + 301.8799178414047, + 313.93093702197075, + 309.75548619776964, + 317.13166357576847, + 305.1663925498724, + 312.8720249682665, + 310.19510061107576, + 310.04476422071457, + 301.5575703829527, + 309.5888594388962, + 305.0115722864866, + 304.3484204597771, + 300.6016462408006, + 301.6885926425457, + 302.8587987869978, + 301.76243175566196, + 303.26254810392857, + 311.61424600332975, + 310.3059762492776, + 302.8856605887413, + 305.65557204186916, + 325.0154892131686, + 347.99423006922007, + 304.63470035791397, + 307.7289504110813, + 306.24055997654796, + 311.5128950700164, + 314.40105563402176, + 309.1666049733758, + 307.93893359974027, + 306.7219287157059, + 311.2792243883014, + 305.4177394658327, + 304.5340960919857, + 302.6999380737543, + 301.58187107369304, + 307.49320378527045, + 306.9323288910091, + 307.073274679482, + 301.27124988660216, + 301.3625046312809, + 303.2943754866719, + 305.47821817547083, + 394.3081710189581, + 319.9660501256585, + 303.69028670340776, + 314.62042624503374, + 328.6099530532956, + 302.3468530103564, + 306.52784983068705, + 302.55395501479506, + 320.79047775268555, + 324.0881902165711, + 328.9372208863497, + 319.86561659164727, + 304.8404664173722, + 302.80502955429256, + 318.4374005123973, + 310.95452906936407, + 302.5050379782915, + 309.95501767098904, + 303.56958720833063, + 300.79676131159067, + 300.43078707158566, + 301.7622159868479, + 316.0052177384496, + 306.31862473115325, + 301.9361075460911, + 323.77530751377344, + 303.844816416502, + 304.283378995955, + 308.307135745883, + 306.1476201787591, + 305.4888255447149, + 304.7141389902681, + 303.5546892285347, + 310.92546119727194, + 312.8997376784682, + 302.30862917006016, + 318.32745948806405, + 320.60628489404917, + 303.6365756466985, + 316.3388713300228, + 321.2027426250279, + 306.1689927354455, + 302.6159927621484, + 303.2306940853596, + 303.1041199788451, + 315.38721614331007, + 324.63238233327866, + 304.81327157467604, + 302.8093322813511, + 321.44131392240524, + 304.85930056497455, + 310.41319847106934, + 303.7040672171861, + 318.84543393552303, + 322.1189191788435, + 308.5137463733554, + 311.9992470815778, + 301.1950253918767, + 313.41916482150555, + 307.91270524822176, + 303.47395757585764, + 305.35861802101135, + 308.66430465132, + 302.0524307843298, + 303.77603593096137, + 304.42212472856045, + 301.051048707217, + 305.56059042178094, + 305.13097047805786, + 307.39113042503595, + 301.52664973400533, + 304.5323787480593, + 318.4340122938156, + 304.0795559734106, + 302.2399139329791, + 302.42944764345884, + 313.34928642213345, + 304.60008576512337, + 305.69225796312094, + 302.0560521427542, + 302.00184243917465, + 311.4982020109892, + 315.0358866080642, + 301.9079089164734, + 309.4744875729084, + 309.274310991168, + 303.1291667856276, + 302.3478204011917, + 306.01877687871456, + 309.0119261741638, + 333.8651823922992, + 313.384533777833, + 322.97892551869154, + 305.95935286581516, + 301.49211667478085, + 308.0729496590793, + 303.43611025065184, + 303.06012399867177, + 302.3982874080539, + 301.97271452844143, + 300.969434812665, + 311.004748608917, + 303.156504355371, + 303.18033319711685, + 313.8759497925639, + 303.9494991749525, + 306.29053538292646, + 302.22526286169887, + 319.2154204789549, + 303.0551530569792, + 321.99434347450733, + 309.4882374275476, + 304.70724506676197, + 317.8142026513815, + 310.8772392272949, + 307.5770675148815, + 301.5232051201165, + 329.9682536292821, + 305.9257740005851, + 319.95706625282764, + 311.76418790221214, + 306.7539248261601, + 321.7107451632619, + 304.85685582458973, + 310.4428901001811, + 301.99633763357997, + 300.6374957226217, + 307.3280272334814, + 301.78294180333614, + 300.7350559681654, + 305.526366956532, + 300.37847796082497, + 300.4285492002964, + 301.7338856421411, + 307.14030729979277, + 302.63682655245066, + 300.7523670941591, + 300.58615086972713, + 319.5991261303425, + 315.68133890628815, + 302.3201703429222, + 304.34630043804646, + 308.03821124881506, + 309.154373370111, + 308.52297838032246, + 301.7205881550908, + 302.60137938708067, + 305.718726683408, + 308.8466323316097, + 306.0190655067563, + 302.61635772138834, + 300.2488703876734, + 310.5877050757408, + 307.8380212858319, + 302.5803012922406, + 310.86165088415146, + 306.02300089225173, + 305.72442854195833, + 312.3907017111778, + 302.0090452134609, + 304.9804181009531, + 300.656103387475, + 305.87957620993257, + 303.5191167294979, + 345.8327758722007, + 301.73613507300615, + 307.4185171574354, + 301.42531906068325, + 301.8630644083023, + 304.1705794483423, + 308.79452756792307, + 301.57289209216833, + 314.0065190345049, + 303.08875063061714, + 307.32013107836246, + 309.39828814566135, + 303.3881766870618, + 325.62795566767454, + 312.4460650384426, + 306.7440432012081, + 331.25735284388065, + 306.0597800761461, + 302.25905479863286, + 304.6920786052942, + 327.59395042061806, + 306.1355842910707, + 334.38491832464933, + 307.3792537525296, + 311.5166800171137, + 310.53048922121525, + 304.59155417233706, + 314.44509786367416, + 301.5775272101164, + 303.0725117623806, + 312.0536254942417, + 312.2574187293649, + 304.6479791942984, + 305.8183773010969, + 304.38532488048077, + 318.5715978294611, + 304.7339979708195, + 324.6162198856473, + 309.3231765925884, + 306.6957603767514, + 304.6048494055867, + 303.75340723991394, + 301.558370500803, + 306.8752936720848, + 303.9316943511367, + 301.83065496757627, + 305.5359924584627, + 312.74043916910887, + 306.3416130039841, + 301.80598752200603, + 301.4731895327568, + 301.88931991904974, + 304.14717247337103, + 301.15287847444415, + 305.08669725060463, + 303.0998235568404, + 309.99349051713943, + 301.8619170039892, + 304.51974323391914, + 387.5805930644274, + 301.8049181997776, + 304.81463124603033, + 311.90580873191357, + 305.2012448720634, + 303.26527246274054, + 301.4753588363528, + 313.77401669323444, + 308.12876871973276, + 303.07205202430487, + 328.4798564836383, + 313.51802230626345, + 308.9964637309313, + 310.47093849629164, + 301.3768517691642, + 318.96315379440784, + 306.14003129303455, + 340.9420302659273, + 346.6742020100355, + 314.3861672654748, + 307.39401541650295, + 305.9299832880497, + 318.34798665344715, + 302.61598364263773, + 303.0194118320942, + 309.5094850510359, + 300.74667758494616, + 304.11385133862495, + 303.0418728925288, + 305.9653105661273, + 308.69997772946954, + 304.94514071941376, + 301.4920662045479, + 302.5287198200822, + 312.22501527518034, + 306.2142075970769, + 314.15163112431765, + 316.5984330326319, + 303.4711141511798, + 314.57252626121044, + 318.4992524124682, + 312.8852182626724, + 313.033934827894, + 304.00573986396194, + 311.1928275823593, + 304.5828785970807, + 300.993126437068, + 310.06647223234177, + 308.13819485902786, + 349.8969603255391, + 304.83339282125235, + 334.2861088067293, + 302.3560741841793, + 314.71146158501506, + 322.991505458951, + 301.58933575451374, + 310.41739719361067, + 301.8894840925932, + 302.87571492791176, + 303.1266493871808, + 308.6286905705929, + 303.8706060349941, + 301.9864717628807, + 311.2723760083318, + 300.95932710170746, + 316.4916201233864, + 302.25481478869915, + 303.3105667978525, + 316.350290954113, + 340.33031526207924, + 306.16379119455814, + 310.5560295507312, + 311.1550377458334, + 303.3642098158598, + 313.7699143588543, + 301.26531948149204, + 302.081057369709, + 301.87965605407953, + 378.0057831183076, + 302.6098465397954, + 307.5082870423794, + 302.8197278585285, + 311.5929714143276, + 311.25762563198805, + 301.35580327548087, + 310.36911035329103, + 303.13801704347134, + 303.48304327763617, + 302.81276612728834, + 300.44433742016554, + 304.23157373070717, + 309.615811413154, + 304.30916909873486, + 305.00299802422523, + 300.5989206433296, + 309.8149980008602, + 345.92480217665434, + 301.1195013523102, + 301.0280176028609, + 306.35187163203955, + 307.86736761033535, + 321.91849617660046, + 307.0998844951391, + 306.7867816463113, + 308.3879969790578, + 316.44594602286816, + 343.8585064262152, + 301.42503022402525, + 300.9540013372898, + 304.9627622961998, + 308.3479383587837, + 303.76201704889536, + 313.32375560700893, + 332.45213414542377, + 319.79815933667123, + 305.4503422603011, + 310.46658715233207, + 306.3906796500087, + 308.0925768651068, + 308.90431344509125, + 321.417050736025, + 306.87302316725254, + 312.7271330393851, + 323.0044175609946, + 310.77644392848015, + 301.86169689148664, + 306.09227826818824, + 328.7787397801876, + 311.14226174354553, + 306.6610340476036, + 303.5105180963874, + 318.81746907532215, + 310.9619707092643, + 301.75412322580814, + 309.7244118601084, + 303.0369252860546, + 312.59237717837095, + 302.5554770603776, + 305.3244752064347, + 317.44049605727196, + 304.0513763129711, + 329.137357853353, + 303.1367248892784, + 305.4837932884693, + 304.7356834374368, + 309.02222611010075, + 301.93906620144844, + 318.3069742023945, + 317.36685831844807, + 310.81524201482534, + 313.8626172840595, + 303.92518728226423, + 302.9238784760237, + 309.36713403463364, + 304.1914939433336, + 316.4554358050227, + 302.67420810461044, + 328.4234677925706, + 303.79793190956116, + 356.40141297876835, + 301.2808419317007, + 304.75805063173175, + 385.6368549019098, + 300.9907705485821, + 311.3609322346747, + 321.7174991890788, + 307.4848760589957, + 315.74309645593166, + 303.98608465492725, + 313.6868596635759, + 313.6283461600542, + 304.9714917242527, + 330.4368861466646, + 323.8818774074316, + 313.3254326507449, + 324.0116143077612, + 301.0313629806042, + 300.8748850002885, + 302.33840990811586, + 303.6418220102787, + 307.9302578121424, + 307.8377812355757, + 300.88615800626576, + 306.2066811621189, + 303.536954022944, + 311.20064320228994, + 310.4295338988304, + 313.4237181060016, + 313.54191971570253, + 301.53340873867273, + 302.93188861757517, + 311.81267221830785, + 336.27716402709484, + 301.42364524304867, + 356.38627448678017, + 303.4651247635484, + 322.87414610385895, + 356.65974256396294, + 309.7101764678955, + 310.08423126488924, + 301.08221489936113, + 310.4497760590166, + 304.9475895576179, + 301.10923001915216, + 319.3691678792238, + 304.49743542820215, + 322.427879024297, + 309.14312690496445, + 302.98486649245024, + 315.983753092587, + 307.4034491479397, + 317.6102310717106, + 301.03630355745554, + 317.98617574572563, + 303.53846737742424, + 304.6846788972616, + 301.59058951586485, + 314.2701108157635, + 312.6110567599535, + 312.6948411986232, + 315.4946878403425, + 302.7304846793413, + 312.50685872137547, + 308.02604412287474, + 309.32934319227934, + 317.7289959862828, + 350.73086587153375, + 310.012108489871, + 306.33996146917343, + 311.2571585904807, + 304.382202193141, + 311.87054535001516, + 316.3380961753428, + 302.8700880277902, + 336.6876145154238, + 302.29855518974364, + 311.8769036382437, + 302.9518266990781, + 302.2702427431941, + 303.5533684641123, + 300.84790021926165, + 306.5722948536277, + 301.5434013456106, + 307.608354896307, + 307.4694624580443, + 305.84049385786057, + 306.60508711636066, + 304.90969559922814, + 300.4697675406933, + 301.79476629570127, + 300.5281894188374, + 336.48435889184475, + 303.4514489173889, + 309.3649313598871, + 307.1220569163561, + 306.7408154308796, + 306.3186286240816, + 301.8366924840957, + 313.29269041121006, + 333.29945734143257, + 335.0335611179471, + 305.9629935324192, + 312.57474288344383, + 307.2355060726404, + 303.58003156632185, + 303.4543378353119, + 311.04583471268415, + 301.08282431960106, + 301.8505832590163, + 312.8005380257964, + 306.4407100081444, + 307.43828500807285, + 304.6795522272587, + 308.7191895172, + 312.91833524405956, + 304.6910424903035, + 306.174347769469, + 313.7038004435599, + 308.32420624792576, + 301.39663022756577, + 310.3612283077091, + 309.01172314956784, + 308.0410816036165, + 321.8866276964545, + 322.1650658994913, + 316.5356656014919, + 326.9443223029375, + 310.0779855251312, + 304.251731980592, + 301.7996651157737, + 301.20815283060074, + 305.2015831694007, + 308.0460794530809, + 302.5281275510788, + 307.2869423609227, + 318.44056183844805, + 301.8565634936094, + 333.3212886340916, + 317.02285531908274, + 306.0564371421933, + 316.21774250268936, + 307.6649445332587, + 317.15014646202326, + 306.2620981410146, + 308.4409275576472, + 343.58995857834816, + 306.559254527092, + 321.6428223773837, + 302.01668015122414, + 302.5337888151407, + 303.05297903716564, + 307.5788054689765, + 303.207707606256, + 303.49031542241573, + 302.58883038908243, + 308.7087995707989, + 303.6995891481638, + 311.66846903786063, + 314.3495101556182, + 305.119851693511, + 311.287884645164, + 309.5335079655051, + 312.1911980807781, + 303.2590351253748, + 345.9996098577976, + 303.6494621299207, + 301.4467751979828, + 310.76397490501404, + 305.2586919888854, + 309.7168856114149, + 316.7225593328476, + 311.09197437763214, + 302.7610512673855, + 307.3629707843065, + 324.87619902193546, + 306.25420179218054, + 304.0009604692459, + 305.6047920510173, + 301.80293041467667, + 301.1507236510515, + 305.7138876244426, + 319.98279294371605, + 315.8989097364247, + 323.73821926116943, + 313.7961251065135, + 302.513330578804, + 317.90480637550354, + 309.4024380296469, + 305.32401183247566, + 305.0191507264972, + 306.95337910950184, + 301.782501809299, + 306.35682278871536, + 305.8273798674345, + 306.81153754889965, + 300.9704293012619, + 304.71963772177696, + 308.9249815940857, + 301.22398901730776, + 306.92807427607477, + 309.686992585659, + 304.2103045992553, + 302.83545809984207, + 310.00556698441505, + 307.5399892181158, + 310.4846024364233, + 310.0568221323192, + 306.7971193343401, + 309.3629991002381, + 307.92135395109653, + 301.79983726143837, + 324.534432426095, + 301.9160646274686, + 310.31771202385426, + 302.1394529491663, + 320.1788532435894, + 307.9615247696638, + 304.50043923407793, + 396.79250836744905, + 303.2848686873913, + 309.38480653613806, + 304.2834405452013, + 306.4954122528434, + 310.86069225519896, + 311.63886147737503, + 303.863894328475, + 306.23542331904173, + 320.3478603512049, + 304.19111230410635, + 316.17235968634486, + 308.5623576082289, + 308.87335312366486, + 303.8152997530997, + 303.85626745969057, + 314.46353006362915, + 303.61092249304056, + 302.9228288978338, + 301.79783856123686, + 304.07031101733446, + 325.716486915946, + 312.7004381418228, + 336.77995785325766, + 320.28300437144935, + 305.22152242064476, + 340.3739929199219, + 310.82473186403513, + 312.4348585009575, + 334.3085149079561, + 303.6149370148778, + 308.37462539225817, + 303.80364182405174, + 304.24664383754134, + 305.2880827486515, + 313.3471027314663, + 304.53133418411016, + 308.1781327985227, + 303.9308643490076, + 312.97287974506617, + 321.7690767198801, + 309.60710902512074, + 308.22117498517036, + 301.9550921395421, + 304.1442262083292, + 308.7032279111445, + 312.1817825958133, + 312.8472861945629, + 302.52257388830185, + 302.9016106277704, + 301.0601403489709, + 303.08796451985836, + 302.0588604975492, + 320.6846947930753, + 313.1201856955886, + 315.75462633371353, + 306.6615122258663, + 314.9379582181573, + 331.46861608326435, + 306.0586729198694, + 305.6211660131812, + 318.94401644170284, + 303.36671010404825, + 307.84171529486775, + 307.54553689807653, + 318.80862187966704, + 306.02586936205626, + 303.56308817863464, + 302.7162991538644, + 302.1924297735095, + 308.7729394547641, + 313.1461196616292, + 301.2280187010765, + 309.1562999114394, + 303.75355864316225, + 306.868042178452, + 306.80732207000256, + 305.0785531103611, + 306.98138216882944, + 302.75364308059216, + 309.4325538352132, + 302.8961743377149, + 301.0143579095602, + 303.7494884431362, + 309.67853546887636, + 309.24797451496124, + 306.29884704202414, + 311.38388024643064, + 308.4615423679352, + 313.7818587496877, + 313.58017188310623, + 310.9542255848646, + 315.7246028482914, + 309.20133520662785, + 311.94401271268725, + 313.7904617190361, + 312.95263151824474, + 315.9473897591233, + 308.08300590515137, + 301.95683876238763, + 304.21166241168976, + 302.2100526243448, + 319.9155853167176, + 305.00332371145487, + 303.3256288729608, + 316.9274627491832, + 310.88146719150245, + 310.1164289228618, + 306.02723717689514, + 308.0626276731491, + 310.71964817494154, + 304.13688388466835, + 313.994876742363, + 308.12214897572994, + 305.3772269189358, + 345.4944060910493, + 304.2508965060115, + 307.10437590256333, + 311.9813995361328, + 304.66023583710194, + 315.87394531443715, + 318.00284093618393, + 302.16069427132607, + 301.1139675527811, + 306.3078454360366, + 346.1838433891535, + 302.44021997600794, + 338.7761685103178, + 302.4745773524046, + 301.1980266198516, + 310.14167737960815, + 306.6175226867199, + 302.4549618586898, + 311.8796521946788, + 311.78864879347384, + 304.7712293341756, + 302.1272806376219, + 301.18951200693846, + 312.04450852423906, + 301.89961468428373, + 317.3836220577359, + 306.8035358041525, + 302.1770180910826, + 301.79970978200436, + 310.2644992917776, + 310.7752745896578, + 300.5822667144239, + 313.207306727767, + 323.08254250884056, + 305.26797031611204, + 301.71314989589155, + 311.28939278423786, + 322.2249175310135, + 311.6763626411557, + 304.787543553859, + 302.58581651747227, + 307.6556247547269, + 301.3098353892565, + 312.66397857666016, + 309.18293768912554, + 311.3919150605798, + 304.93527076393366, + 317.0533761456609, + 306.1403321623802, + 302.703261628747, + 303.1514391452074, + 315.302499987185, + 312.4842846542597, + 308.9197848290205, + 303.6957389637828, + 314.2191483452916, + 314.7150936424732, + 311.0176304727793, + 303.34967370145023, + 308.57257928699255, + 309.5880531296134, + 302.35330525040627, + 301.51088769733906, + 323.8885632008314, + 309.0852548405528, + 304.68001895584166, + 302.5376718491316, + 302.72750263661146, + 314.70554441958666, + 300.58234006911516, + 301.4126506522298, + 303.75535430014133, + 306.6437532380223, + 308.846556648612, + 305.23439541086555, + 316.219647988677, + 301.2000195980072, + 306.59872505813837, + 303.4483655542135, + 305.7223662212491, + 303.49941300973296, + 304.2445761412382, + 305.09926790744066, + 314.433837287128, + 304.0149288009852, + 330.93921653553843, + 320.68451765179634, + 304.7085720188916, + 323.70160757377744, + 302.1099243443459, + 304.64351342618465, + 303.5163979679346, + 305.08888487517834, + 308.3957169428468, + 305.81978023797274, + 313.040515512228, + 305.75042182952166, + 309.51427764445543, + 317.1398370563984, + 321.1374712139368, + 307.3858580291271, + 306.5305768866092, + 316.1292619109154, + 304.88464172929525, + 302.85480126179755, + 306.7182881012559, + 312.86826518923044, + 303.5042924582958, + 300.1941365301609, + 302.23479114472866, + 302.2735741212964, + 305.13653983175755, + 307.4660334289074, + 336.64195505715907, + 306.9582702592015, + 308.2024480048567, + 308.2610350884497, + 303.33598510175943, + 313.3636790663004, + 301.4328661337495, + 339.11574275791645, + 303.9022965244949, + 305.9217796623707, + 303.8743591532111, + 302.50729554891586, + 304.8041717335582, + 401.06882782280445, + 317.34303352981806, + 307.7829269915819, + 313.45659840106964, + 311.06853883713484, + 310.09677934646606, + 316.4217844810337, + 305.2910995185375, + 304.4027859121561, + 304.2638630568981, + 307.2823805436492, + 304.2966276407242, + 304.6669781431556, + 303.5178098529577, + 303.71225709468126, + 300.7533129416406, + 306.4867419451475, + 301.9981443360448, + 303.0984405465424, + 340.3398381397128, + 318.8569599688053, + 307.6924646794796, + 311.5340628065169, + 312.8370440993458, + 309.29323691129684, + 309.32907877862453, + 304.1981149688363, + 309.3819173127413, + 338.45092456042767, + 319.8190900683403, + 310.1628343462944, + 305.51557959616184, + 310.2542772889137, + 308.6467745602131, + 329.35848328098655, + 312.5311471298337, + 303.2480120807886, + 384.4854485206306, + 312.0172129794955, + 308.26037749648094, + 330.870952764526, + 307.0538735166192, + 300.73447750508785, + 317.5313220769167, + 321.7633351497352, + 302.9939032047987, + 301.238626383245, + 304.0556839853525, + 304.2426385395229, + 314.01431362330914, + 314.6493880003691, + 316.98070253804326, + 300.87160444259644, + 306.0886431187391, + 327.91109316796064, + 303.98512479290366, + 304.7170142233372, + 308.3070092834532, + 303.64339086413383, + 304.5542027913034, + 313.4290754273534, + 312.9364513233304, + 306.30071640759706, + 319.74398708343506, + 303.2841157987714, + 304.1748616024852, + 302.0622006058693, + 312.33075419813395, + 329.465808339417, + 327.98625552654266, + 335.03221456706524, + 303.9340384975076, + 311.33725721389055, + 319.6639705747366, + 313.74636732786894, + 309.07366351783276, + 322.4413540363312, + 308.8012252599001, + 315.1670065075159, + 305.54985673725605, + 307.88929755985737, + 301.9411006271839, + 317.31950944662094, + 318.16270235180855, + 309.8547382056713, + 306.69975442253053, + 303.61138035357, + 305.5544786453247, + 310.9228515997529, + 304.3750849291682, + 300.90987119078636, + 305.0987059660256, + 302.3006394430995, + 313.95956702530384, + 323.78793589025736, + 305.411508589983, + 343.2834556847811, + 300.5084098391235, + 331.83136849850416, + 339.91265146806836, + 345.3615923970938, + 303.039590138942, + 305.78114533796906, + 306.9711747020483, + 305.24137756228447, + 303.544449493289, + 316.9166684895754, + 315.88711005449295, + 312.68093218654394, + 301.5318797826767, + 319.72890566289425, + 319.2369144782424, + 303.02750135958195, + 316.2923201061785, + 304.26546704396605, + 314.7365305162966, + 301.5272440761328, + 301.7192527651787, + 305.361551720649, + 318.16397588700056, + 303.0163643658161, + 317.09242210537195, + 308.76476721838117, + 313.4388741403818, + 300.93545761704445, + 312.85466987639666, + 328.4925737455487, + 304.8273031376302, + 306.34455312788486, + 311.2183825764805, + 309.94872891902924, + 312.5889230929315, + 305.7675058618188, + 316.06808249652386, + 320.2888114005327, + 309.2274674382061, + 308.76387463510036, + 317.2862457931042, + 305.85767513141036, + 346.9480971544981, + 300.4721645787358, + 300.34026739001274, + 310.5778836682439, + 307.5836846604943, + 307.66842360794544, + 308.1758845150471, + 302.9202149063349, + 303.4630645364523, + 305.4933644235134, + 308.39080433547497, + 309.29341566748917, + 318.77452144026756, + 306.30183240398765, + 302.79897597432137, + 305.4883691743016, + 303.1449493467808, + 305.3541045933962, + 304.0069487914443, + 306.71508310735226, + 311.23030668497086, + 307.1555020734668, + 305.48607540130615, + 302.56834650039673, + 301.07506950199604, + 304.7940003424883, + 300.40069384127855, + 303.8763438761234, + 307.65592401474714, + 306.9835291001946, + 300.64463802427053, + 304.2690003141761, + 314.14428221434355, + 313.17699699662626, + 303.6604873538017, + 305.4710621610284, + 310.7937735244632, + 304.94232635200024, + 327.60291474312544, + 328.2077470421791, + 307.8667853344232, + 338.18952905386686, + 302.73623018711805, + 312.50623728334904, + 301.8318835608661, + 305.22113017737865, + 300.82934875041246, + 301.8750954158604, + 310.48420433700085, + 315.9699742794037, + 309.13213834166527, + 315.862429022789, + 300.7089876830578, + 309.91679652780294, + 309.0585897564888, + 312.2899636439979, + 307.7066385149956, + 309.6808993704617, + 301.1380062699318, + 310.5237337760627, + 301.20618753694, + 307.39549960941076, + 315.0077182203531, + 302.12878239154816, + 302.6582300812006, + 308.45102668739855, + 323.24402140825987, + 303.6919346228242, + 304.5304071083665, + 304.68250089883804, + 312.73679457604885, + 307.5862630903721, + 300.26982371136546, + 312.73062608391047, + 302.3417748734355, + 311.1318643949926, + 300.87780603021383, + 326.1745633110404, + 304.62091758847237, + 304.6567334905267, + 306.474965531379, + 316.35564963519573, + 314.9580618850887, + 302.70948158204556, + 302.96487779170275, + 328.35870783776045, + 307.60023483261466, + 303.97978433966637, + 307.88142129033804, + 342.5467133689672, + 304.0905951708555, + 316.21776054799557, + 308.8850179500878, + 302.0652360878885, + 301.21098716929555, + 309.76924831420183, + 329.885852009058, + 311.60723074525595, + 301.7973333746195, + 307.07299652695656, + 312.6094234511256, + 301.5483038574457, + 306.27812534570694, + 334.30995912849903, + 304.3250970393419, + 304.4390624910593, + 311.4514694958925, + 303.5188213288784, + 308.49723736569285, + 308.0807638540864, + 319.0888800919056, + 310.898318760097, + 305.3397327866405, + 305.52919989824295, + 309.75596533715725, + 304.12999441847205, + 321.20945449732244, + 301.071779564023, + 307.2607180252671, + 305.98292218893766, + 307.45210912823677, + 314.0605644248426, + 305.01555222272873, + 309.75735825300217, + 319.6074768677354, + 306.625504411757, + 304.34057941287756, + 324.19649466872215, + 307.964761428535, + 312.90776897221804, + 306.4094206430018, + 303.63400707393885, + 302.4874537587166, + 304.91752195358276, + 307.12995903752744, + 307.07630532979965, + 303.3072781264782, + 309.4330599755049, + 313.453883189708, + 304.2125022560358, + 305.4437604621053, + 300.5950629711151, + 311.0540649816394, + 305.8448890373111, + 307.58561689034104, + 308.94775246828794, + 311.1988082230091, + 323.8764725867659, + 304.8320538699627, + 300.7356820255518, + 302.7524498999119, + 310.7653528302908, + 304.80290469527245, + 304.4985054284334, + 307.06071649491787, + 302.0583017542958, + 300.74026825279, + 306.8744833469391, + 304.80019072815776, + 303.61936934664845, + 315.6817831322551, + 316.61797428131104, + 309.52718921005726, + 301.46419863402843, + 305.3060469701886, + 300.7135121487081, + 301.6430397182703, + 317.3851285241544, + 306.55473455041647, + 363.9615413993597, + 310.1359448879957, + 311.1636070087552, + 310.2543765306473, + 338.4388803243637, + 311.58678321540356, + 307.0812324360013, + 303.08464550226927, + 301.8516679927707, + 303.1595066636801, + 309.1265839487314, + 306.55636513233185, + 304.32702136039734, + 301.85989986360073, + 307.1116476356983, + 315.42173866927624, + 303.4689678866416, + 305.99842346459627, + 305.50488243997097, + 302.827654607594, + 306.41802079975605, + 318.96268282830715, + 313.01606576144695, + 319.89229841530323, + 305.2868709564209, + 300.9730666577816, + 305.40270940214396, + 307.5870000422001, + 306.2661126628518, + 305.4031700864434, + 313.8363372609019, + 304.78143937140703, + 303.9006860591471, + 303.715163461864, + 305.1052415892482, + 305.31438244879246, + 303.29968224838376, + 301.93116227537394, + 303.35873731970787, + 305.7804597020149, + 305.99360229074955, + 305.7741624414921, + 302.1773720923811, + 328.7458832077682, + 303.84334387630224, + 308.2802267819643, + 301.63556760549545, + 301.27631210535765, + 346.42315462976694, + 305.0173718072474, + 326.98716671951115, + 315.1498116850853, + 301.4075410813093, + 320.19539953023195, + 311.0104623194784, + 309.3073474429548, + 327.13480224460363, + 305.97754104435444, + 306.03984137251973, + 307.4130977168679, + 302.8394752666354, + 302.11635325849056, + 327.25311877578497, + 316.55455519258976, + 325.89584554731846, + 306.08196226507425, + 326.33543859422207, + 302.74254555627704, + 300.97490129619837, + 313.1174084097147, + 306.3420277312398, + 308.49634696915746, + 303.6422215588391, + 301.02723905816674, + 303.3638081513345, + 306.6306995525956, + 323.17985359579325, + 306.5924952439964, + 307.1509288698435, + 307.8078141286969, + 316.66428764909506, + 329.7537614777684, + 303.18337770178914, + 314.79085912555456, + 302.90778870135546, + 302.2704091127962, + 313.20647075772285, + 305.05497436225414, + 309.5324325039983, + 300.396191239357, + 306.0101376324892, + 304.1291917562485, + 309.3718437999487, + 304.985210955143, + 305.5890204310417, + 312.8254923224449, + 324.25293503701687, + 302.28979229182005, + 303.0274516791105, + 302.6727037355304, + 368.6740471608937, + 309.67066526412964, + 310.4204117283225, + 302.4736553430557, + 305.22678416222334, + 308.4608486481011, + 303.9721538424492, + 301.0446063838899, + 304.21873497217894, + 305.91327998042107, + 316.53860878944397, + 303.3201322928071, + 302.3462369441986, + 300.74770457297564, + 326.8715980499983, + 324.1796484030783, + 355.80043479055166, + 305.05840292572975, + 303.8428261131048, + 302.060388116166, + 317.62849137187004, + 321.7047117650509, + 301.7189256325364, + 301.56694693118334, + 307.9847244769335, + 301.10217021405697, + 308.6363477706909, + 306.54606483876705, + 302.9364673346281, + 314.87806111574173, + 302.9576720818877, + 310.39002392068505, + 302.55337139219046, + 323.4577555805445, + 302.3604170233011, + 301.823188200593, + 300.9415360093117, + 300.7039441615343, + 308.77942268550396, + 303.4303394407034, + 307.53156696259975, + 301.07484133541584, + 301.10586926341057, + 307.8338553160429, + 327.07165674865246, + 305.89528968930244, + 302.35148990154266, + 303.5736770108342, + 340.5831007640809, + 303.3751086741686, + 301.80309718102217, + 301.8358323946595, + 307.68257158622146, + 300.7337675318122, + 308.512657918036, + 321.84555138647556, + 370.02652752771974, + 309.36754268221557, + 317.5458298623562, + 311.75896241888404, + 309.0618697553873, + 309.48647896945477, + 309.9286267198622, + 308.39091439545155, + 304.2760826982558, + 306.46823236346245, + 313.75260512530804, + 314.02348782122135, + 302.03165777027607, + 311.91490537300706, + 303.61929509043694, + 333.1927315145731, + 303.9664089381695, + 302.85925375670195, + 307.2511135414243, + 312.47955845296383, + 306.1282205916941, + 304.48108361661434, + 309.8015540242195, + 302.6065649315715, + 302.5870514959097, + 323.2947468906641, + 306.2968934774399, + 312.76820908486843, + 306.3576267436147, + 310.707114931196, + 307.9137586057186, + 301.8561171647161, + 302.66546600311995, + 321.2014006227255, + 301.49332439899445, + 304.9257511943579, + 301.0099757127464, + 301.28085623681545, + 302.210535004735, + 307.34200954437256, + 308.4336723536253, + 303.08927144668996, + 307.72234001755714, + 300.9886228889227, + 305.90212266147137, + 308.28744637966156, + 301.9355596974492, + 307.9514597989619, + 314.573957785964, + 302.83810802549124, + 317.2418464049697, + 310.46616116538644, + 302.37779125384986, + 303.913715980947, + 303.74348606169224, + 301.8683134317398, + 301.6001742184162, + 306.4633065853268, + 302.5447977334261, + 308.31820415891707, + 310.89963049441576, + 323.39418321847916, + 302.03161396086216, + 324.5964703410864, + 301.44349336624146, + 306.3843828290701, + 315.14740749821067, + 302.67952942848206, + 307.1649696826935, + 303.94725573807955, + 312.4935895204544, + 308.00007132440805, + 304.14799328148365, + 309.1716391593218, + 301.3571230918169, + 306.24197360128164, + 307.2502010948956, + 302.6090174615383, + 304.358757160604, + 323.5412840247154, + 303.3136991262436, + 304.5356862396002, + 302.5070853140205, + 309.0154083073139, + 312.2982620447874, + 301.00488410145044, + 302.3723155707121, + 301.4654733091593, + 330.6141009628773, + 300.4612224921584, + 320.7098229881376, + 327.8329824730754, + 303.7183190062642, + 303.04349809885025, + 304.57083846628666, + 300.4154512062669, + 306.18918128311634, + 301.14784225076437, + 322.61904115229845, + 307.7984331920743, + 305.8572051897645, + 300.9537511318922, + 309.16399478912354, + 306.63513019680977, + 390.42264460772276, + 303.89495284855366, + 310.60258093103766, + 307.60640162974596, + 304.9585528448224, + 302.87433609366417, + 304.15460707992315, + 302.3444174490869, + 301.0439973138273, + 305.406921133399, + 307.0423280224204, + 318.1531775444746, + 307.11657823622227, + 300.8769796974957, + 301.1663519516587, + 313.6903201341629, + 303.29581743106246, + 308.09515514969826, + 302.76286064088345, + 305.99412151426077, + 386.2261217162013, + 315.7491255104542, + 311.65732427686453, + 329.6743949428201, + 321.00912518054247, + 318.7818668335676, + 308.768777590245, + 302.6791039407253, + 307.2852216772735, + 304.41947074234486, + 305.90382966026664, + 309.7715249694884, + 302.0302657485008, + 305.69298435747623, + 304.70600071549416, + 316.8685695081949, + 300.7455117031932, + 329.3947750851512, + 307.0089636147022, + 306.81066109240055, + 305.72955183684826, + 312.08013010397553, + 302.98670152015984, + 302.6480435729027, + 308.7863450795412, + 302.3388228844851, + 305.361973926425, + 312.18220157921314, + 304.941029176116, + 312.6118339896202, + 309.6434079837054, + 302.2249376401305, + 315.2685210183263, + 304.5598947480321, + 322.5284920129925, + 311.039980776608, + 307.36617678403854, + 301.0959759391844, + 306.65186685323715, + 300.3955841809511, + 301.2752664834261, + 319.1230724975467, + 316.24669878184795, + 315.5688640009612, + 304.0676415115595, + 334.15398766845465, + 304.56327429413795, + 301.4455182030797, + 306.3684457987547, + 309.57025357335806, + 323.04079116135836, + 314.39293821528554, + 303.3740914314985, + 307.955211635679, + 303.212369594723, + 308.04965491592884, + 300.94519278407097, + 320.1101879104972, + 307.30430134385824, + 318.3989151120186, + 301.3022821396589, + 326.93364118784666, + 301.6193569265306, + 308.3260301426053, + 302.9390524290502, + 313.9789659976959, + 302.6128911525011, + 305.8585841059685, + 306.82897709310055, + 314.1636579632759, + 302.2165154181421, + 304.67912797629833, + 310.8428757712245, + 301.23811730742455, + 312.1784426830709, + 302.13247443921864, + 300.83607506752014, + 302.9770949408412, + 308.34425580501556, + 308.5437694787979, + 311.90109372138977, + 315.4067892432213, + 307.9072656594217, + 305.23349916934967, + 306.02536368370056, + 305.5057045444846, + 311.3177732694894, + 305.6086577773094, + 307.0076570250094, + 302.74083883315325, + 337.1543748527765, + 316.2102428525686, + 302.8077806830406, + 306.8514118641615, + 303.56792216189206, + 309.1553970128298, + 319.0576904118061, + 304.92617754638195, + 377.4687402397394, + 316.4928127154708, + 302.1167809739709, + 333.9619807600975, + 303.08976316452026, + 301.897847533226, + 315.808838641271, + 315.1484027057886, + 314.9919910430908, + 300.47262981534004, + 303.4967271462083, + 305.9345471896231, + 321.8409278355539, + 302.9940343052149, + 303.1259665116668, + 300.77320613339543, + 307.0996874123812, + 307.11664163693786, + 335.74446449428797, + 303.6702860221267, + 313.04037023335695, + 309.21058239787817, + 308.8369244784117, + 304.030413672328, + 305.73038697242737, + 302.39968490600586, + 306.2367812395096, + 317.51463244110346, + 316.65661642327905, + 312.50293327122927, + 303.51749289035797, + 340.388291567564, + 300.7524104639888, + 318.39108837395906, + 312.3695218041539, + 308.5282972455025, + 306.4002430662513, + 304.6110353283584, + 313.28387388587, + 300.99618261680007, + 310.36040218919516, + 306.66857685148716, + 304.96736168302596, + 308.03722809255123, + 306.8438627868891, + 301.5795469582081, + 310.26678681373596, + 305.6633152514696, + 315.4217044040561, + 308.7368942499161, + 307.7661217600107, + 318.4056820124388, + 314.52850414067507, + 304.40335796773434, + 302.075579829514, + 311.17160991206765, + 303.20118353515863, + 306.3162615150213, + 306.31701804697514, + 302.5855111926794, + 311.65542839467525, + 302.3923661187291, + 309.0372557993978, + 306.3002924397588, + 301.35248417034745, + 305.20805272832513, + 313.1300560347736, + 324.89733320474625, + 325.5018313676119, + 303.2748560681939, + 304.57555071264505, + 308.8153494745493, + 372.1011131554842, + 305.0041010081768, + 306.77794847637415, + 301.794466689229, + 301.19780062511563, + 301.96308585628867, + 306.8294670544565, + 307.48438737913966, + 304.84937573969364, + 300.9616697356105, + 303.7966057360172, + 303.25996489822865, + 304.6784522458911, + 306.3158697336912, + 308.4458302408457, + 301.94219810143113, + 382.7168925255537, + 309.6189790815115, + 305.13015796244144, + 308.3896294385195, + 300.9019546508789, + 310.38338390365243, + 303.13911904767156, + 303.55345533043146, + 307.00657698884606, + 304.6066991239786, + 304.3744693249464, + 303.8606555387378, + 305.83140663802624, + 302.6780304312706, + 301.55011811107397, + 304.78673492372036, + 323.324757643044, + 308.4022333174944, + 301.58782237768173, + 301.82373698428273, + 301.3603678382933, + 315.02898282557726, + 307.21870582923293, + 301.9429404474795, + 301.23750369250774, + 309.10024128481746, + 332.1066564768553, + 307.7159663364291, + 303.64999717473984, + 300.9969964325428, + 304.90752866119146, + 325.6194051206112, + 309.70468631386757, + 302.0811198465526, + 301.92975380271673, + 308.7101516276598, + 307.88736460357904, + 323.7995719984174, + 346.4149025157094, + 316.5290503427386, + 300.6018628105521, + 332.7101990059018, + 307.13265251740813, + 312.814910877496, + 305.90784143283963, + 315.39969778060913, + 307.19478023052216, + 304.1856911107898, + 301.5315172765404, + 302.53129189834, + 310.396307118237, + 304.28014101088047, + 303.2272779010236, + 304.9000346623361, + 312.99909745156765, + 304.73923095315695, + 306.31254241615534, + 301.8797785192728, + 307.69840186834335, + 305.7383463084698, + 305.83189487457275, + 301.60589524172246, + 307.2547632753849, + 300.86185701191425, + 306.20611510798335, + 304.0077364221215, + 302.22189988195896, + 371.68104957044125, + 304.323909111321, + 306.0670812893659, + 312.4191209971905, + 300.89121636003256, + 306.92111034318805, + 302.13944663852453, + 306.03153635561466, + 328.5601599365473, + 303.5327598005533, + 304.81967751681805, + 309.12888257205486, + 314.1831556558609, + 302.44701550900936, + 305.723495349288, + 301.93430917710066, + 333.33159378916025, + 309.0279892683029, + 306.56669194996357, + 300.5176677554846, + 314.93444249778986, + 302.24055587500334, + 304.0390919111669, + 317.52691558003426, + 312.9595919698477, + 306.25508961081505, + 308.94080951064825, + 311.0296876579523, + 303.4263368099928, + 301.2701930999756, + 347.0575881265104, + 318.35587882995605, + 312.0946393609047, + 306.73391352035105, + 305.4674715064466, + 306.1064164787531, + 325.71836045756936, + 309.1701722256839, + 306.1738948151469, + 313.69511741027236, + 308.3689454719424, + 302.4934695586562, + 307.4664578437805, + 326.5174139738083, + 317.9233179241419, + 301.4567811116576, + 302.2501599378884, + 303.1428438127041, + 304.90094493329525, + 301.78634156286716, + 308.4457304775715, + 306.6779181063175, + 312.7446625381708, + 305.6780329942703, + 300.9189454242587, + 312.7554627843201, + 302.8775804787874, + 307.25401685386896, + 301.51523865014315, + 305.5294031575322, + 320.79166904091835, + 308.9212627578527, + 324.439087331295, + 303.1882475987077, + 305.95965963602066, + 307.54831006750464, + 303.2360982373357, + 303.96111012250185, + 320.0742860287428, + 306.5534134656191, + 308.6019262075424, + 312.1951226890087, + 306.9486451782286, + 301.51661502197385, + 317.1534370742738, + 301.81569028645754, + 307.8376979678869, + 339.1380999535322, + 312.38622553646564, + 307.83898078650236, + 308.0534465312958, + 319.1884568929672, + 323.1942051500082, + 302.05714217573404, + 302.9742667861283, + 308.3083347529173, + 322.7389754205942, + 308.0857234224677, + 310.7089175581932, + 303.1433578617871, + 301.79142815619707, + 307.20260515064, + 329.0437508150935, + 301.82211297750473, + 303.8190317824483, + 321.20297422260046, + 306.01032353937626, + 304.88058955967426, + 301.3049358204007, + 304.43753914162517, + 304.08710004389286, + 364.85476268827915, + 308.45149103552103, + 302.9213736206293, + 309.23347077704966, + 303.5359014943242, + 310.8130558207631, + 300.8816674873233, + 300.43470551259816, + 334.54014237970114, + 305.8354629725218, + 302.818372707814, + 303.8809272944927, + 322.22416203841567, + 306.1929524689913, + 300.7331209331751, + 300.9725872669369, + 314.115994207561, + 306.1932307779789, + 307.66856325790286, + 312.09457878023386, + 300.80548346042633, + 308.8799495100975, + 324.14960112422705, + 308.2264576032758, + 301.9822439700365, + 317.48872692883015, + 301.85602889582515, + 302.0005536004901, + 317.0245053470135, + 309.25273582339287, + 307.52540485560894, + 301.3609685525298, + 303.3487363010645, + 302.86950865387917, + 301.38317397236824, + 301.22536475770175, + 302.12227523326874, + 302.7220124732703, + 309.7179391235113, + 303.97252321988344, + 338.2131891697645, + 301.51011888310313, + 308.0435454696417, + 302.20802165567875, + 315.5576593782753, + 309.6029911544174, + 304.0862557031214, + 333.5635378956795, + 355.54248072206974, + 313.7632626388222, + 378.3633461892605, + 301.80969639122486, + 309.31165197491646, + 301.20801162719727, + 307.68038238584995, + 311.84014793485403, + 310.74519019573927, + 303.28121353313327, + 303.23623998090625, + 304.40229243785143, + 302.7616905719042, + 303.6299144625664, + 302.94022300839424, + 305.74800020456314, + 307.9718183130026, + 311.75822841376066, + 311.749570004642, + 308.67921037971973, + 300.9750553444028, + 322.90763311833143, + 304.7138540148735, + 311.64582592248917, + 314.91256752610207, + 307.0355245620012, + 314.08084635436535, + 307.96849593520164, + 306.3855186570436, + 302.8717501387, + 300.86599584668875, + 312.06537429243326, + 305.721293784678, + 301.867666721344, + 304.78808457404375, + 315.45667009055614, + 306.3776350952685, + 301.0778730362654, + 302.8228237219155, + 306.53098353743553, + 305.3206312954426, + 304.5237855762243, + 314.8969930782914, + 314.2112059406936, + 318.49493834376335, + 312.3457152247429, + 305.72463454306126, + 303.37614459358156, + 300.8679114729166, + 303.4574050307274, + 310.3319405540824, + 309.62216894328594, + 309.09487757086754, + 307.35175807774067, + 301.598940551281, + 325.17899153381586, + 303.4082556962967, + 308.77505891397595, + 306.63070891425014, + 313.37159114331007, + 300.69353114813566, + 300.66681556403637, + 300.859059125185, + 302.6271438151598, + 323.6259123161435, + 305.8678754642606, + 301.3839372731745, + 312.1893984377384, + 304.5997568666935, + 333.96781534701586, + 305.7484077513218, + 302.95287162810564, + 303.7178414911032, + 309.4767670929432, + 303.1442150697112, + 312.0699721723795, + 310.9274402335286, + 309.21444922685623, + 302.16662469506264, + 312.1916009783745, + 314.0992684587836, + 305.13122542575, + 308.00323471426964, + 307.04841908067465, + 306.22607681155205, + 303.67178776301444, + 310.32181110978127, + 302.6991778165102, + 305.31243435293436, + 301.21543926373124, + 303.6561962515116, + 304.28117671608925, + 301.2481402717531, + 300.7287360727787, + 307.41083035618067, + 308.8124677091837, + 316.7328977957368, + 305.80355174839497, + 303.5296052992344, + 302.20190705545247, + 305.6667077355087, + 313.17091219872236, + 305.0641104541719, + 302.51976684480906, + 316.5442049726844, + 310.4732868373394, + 313.5088918507099, + 307.7861150056124, + 301.9833128377795, + 304.5958387106657, + 305.18913746625185, + 304.0625876635313, + 306.65750539675355, + 318.05711551196873, + 309.92921826057136, + 318.5143242441118, + 306.43307664245367, + 306.3993567228317, + 300.61761923134327, + 308.219530582428, + 301.2775491774082, + 328.5478779375553, + 306.687523573637, + 305.04386430606246, + 311.33790500834584, + 305.5128058195114, + 306.8813223093748, + 307.27783511579037, + 312.4142979159951, + 304.3817966617644, + 303.1246142499149, + 301.2036204636097, + 326.2058792114258, + 305.63221172988415, + 303.38588321581483, + 317.3315177410841, + 307.04971945285797, + 332.8649989813566, + 307.20659954845905, + 302.95184779912233, + 329.65517603233457, + 303.0288744866848, + 303.49915546551347, + 306.2571194488555, + 308.9529639258981, + 303.1943546421826, + 302.66221832484007, + 322.08685908839107, + 313.8205115497112, + 310.12663584947586, + 307.475150488317, + 305.67553310096264, + 300.68538277596235, + 304.2396109253168, + 302.63353031873703, + 304.10303078591824, + 302.8346285223961, + 317.10493321716785, + 304.88222993165255, + 302.18937262892723, + 316.89699893444777, + 304.37139289826155, + 301.11469729430974, + 311.909139983356, + 303.8654483407736, + 300.5160071477294, + 328.4009803235531, + 305.60960997641087, + 305.56112498790026, + 310.55551486834884, + 308.8442037515342, + 310.99192517995834, + 303.0763939656317, + 306.31960780359805, + 302.11553875543177, + 301.50053075701, + 320.95274832099676, + 305.37246405892074, + 312.98869620263577, + 301.38265697285533, + 310.16225784644485, + 310.1660414636135, + 310.47995475679636, + 315.96817295998335, + 309.1877599209547, + 316.9438316375017, + 348.7203481197357, + 312.31083777174354, + 304.2828721664846, + 302.53320310264826, + 304.41090469807386, + 301.445695489645, + 302.9577275682241, + 305.64275742322206, + 317.32110871374607, + 372.89929362386465, + 310.7708093691617, + 343.98677408881485, + 316.20007490739226, + 305.05859702825546, + 311.51766215637326, + 313.2390592843294, + 306.67603043466806, + 305.9484346881509, + 302.5014810487628, + 319.1468371748924, + 321.44229701161385, + 303.70634544827044, + 301.745233733207, + 311.33711168169975, + 301.14586770907044, + 300.41126726567745, + 314.2733101695776, + 324.25206741690636, + 301.4915241524577, + 315.5435993075371, + 306.156626611948, + 310.7615935653448, + 302.2829238027334, + 301.21236020326614, + 344.8146548271179, + 310.7993917055428, + 307.28207090497017, + 305.51445158571005, + 330.2801840156317, + 326.2970898523927, + 306.5485259741545, + 301.45526045560837, + 306.49017183482647, + 308.4187636449933, + 310.9190103877336, + 300.1574507057667, + 300.43562264740467, + 304.3086013291031, + 306.65603271871805, + 308.88772167265415, + 310.31128488481045, + 302.5821664892137, + 301.9471508152783, + 327.0003987252712, + 363.40677216649055, + 317.82449131459, + 308.7466286942363, + 310.10897881910205, + 308.9514836035669, + 321.8386970758438, + 310.44344909489155, + 302.3883312046528, + 303.6106186211109, + 308.17059537768364, + 356.7445265054703, + 303.5911869034171, + 300.59935543872416, + 312.7133607417345, + 311.4025739133358, + 317.4246556907892, + 310.12879490479827, + 321.5190863907337, + 300.6279033124447, + 316.53098721802235, + 310.7942612618208, + 306.60871222242713, + 311.55148254334927, + 322.69983926415443, + 306.6705199088901, + 356.35688062757254, + 316.51887583732605, + 302.3571827560663, + 321.6083949804306, + 301.8311072513461, + 314.85896169394255, + 303.38669015467167, + 303.7824518531561, + 302.022852152586, + 301.20793497003615, + 307.66288935393095, + 302.63016325980425, + 318.96193002536893, + 310.6048757880926, + 310.5373354367912, + 344.3201212286949, + 301.92495400458574, + 300.9316249974072, + 329.17781323194504, + 305.23471251130104, + 302.3879020512104, + 324.18780878558755, + 309.4531458988786, + 303.7150162346661, + 313.79779876209795, + 301.679332010448, + 302.204596940428, + 301.69701776467264, + 330.2138944789767, + 305.821647785604, + 306.480262465775, + 301.8959604501724, + 309.522608820349, + 305.0279196500778, + 310.4127714037895, + 304.2290247231722, + 310.93367125838995, + 307.8561032116413, + 329.11193700507283, + 301.99601408839226, + 306.8066284507513, + 312.07099632918835, + 306.4951368421316, + 305.13067930936813, + 311.86816519498825, + 303.45618506520987, + 301.68363101780415, + 307.04288103058934, + 301.428060926497, + 306.11090500466526, + 308.84774373471737, + 307.268551915884, + 304.1488448753953, + 308.5547456741333, + 309.62614878080785, + 311.1181204393506, + 310.6477976590395, + 301.5456059426069, + 303.66793193668127, + 303.88458935171366, + 307.9897948205471, + 307.1312054283917, + 303.358731623739, + 303.2840214818716, + 307.5846636146307, + 330.29110619053245, + 301.5378146842122, + 301.81050811707973, + 302.4964707940817, + 308.4979086816311, + 302.2458455860615, + 308.1767373122275, + 307.50968382693827, + 302.7509505674243, + 316.6562230363488, + 316.3928167000413, + 304.023845218122, + 318.86373814195395, + 300.33627343177795, + 320.3666396141052, + 308.4770833104849, + 302.7726911306381, + 303.5242251250893, + 304.75009072571993, + 310.9109401702881, + 316.5513100326061, + 308.07915572077036, + 311.79950031638145, + 302.58635572344065, + 306.0946309790015, + 302.6783283725381, + 335.42470595799387, + 320.4631393775344, + 302.09732748009264, + 302.7232630196959, + 313.83459804207087, + 323.2437053285539, + 301.6690703034401, + 301.51359897851944, + 308.34325052797794, + 316.0835858974606, + 341.5265869051218, + 328.82868976704776, + 301.1171418502927, + 306.6253290101886, + 304.3078538775444, + 302.72107549756765, + 311.65945556759834, + 307.07121636532247, + 303.39374466240406, + 310.180995170027, + 304.59208835847676, + 316.5374254733324, + 317.52693954110146, + 305.491911791265, + 312.0847585052252, + 323.1811346113682, + 307.6599756106734, + 312.4586041048169, + 303.4319518953562, + 304.63008347153664, + 317.0695069208741, + 303.7599560022354, + 305.67759212851524, + 302.65542413294315, + 308.8629762157798, + 302.160896807909, + 315.08943074196577, + 301.54277580976486, + 304.3492419272661, + 307.2015034891665, + 308.44913908839226, + 364.5613085925579, + 324.1079083904624, + 305.77173554338515, + 315.61680134385824, + 307.7833977788687, + 307.58654426038265, + 306.3103651329875, + 303.97895174100995, + 331.37231930717826, + 302.1907422244549, + 306.23543068021536, + 302.1561292819679, + 304.64007603377104, + 307.12110222131014, + 312.3623737357557, + 310.03853772580624, + 308.29743088781834, + 301.85149542987347, + 313.8100929632783, + 309.6346568092704, + 301.73929051309824, + 304.7310772687197, + 304.4121221899986, + 319.7473457828164, + 306.7948559001088, + 308.2422635406256, + 309.9793807566166, + 309.1452734917402, + 310.2031655665487, + 307.4796634763479, + 302.29969630390406, + 305.4871023334563, + 303.7911406457424, + 335.0980690717697, + 342.1154540255666, + 310.6340107470751, + 302.8198762945831, + 306.16712817549706, + 306.8788531422615, + 328.68429512158036, + 304.74501398950815, + 301.38911293819547, + 308.7814608067274, + 301.30243756249547, + 316.98437452316284, + 307.39007987082005, + 300.54707698524, + 306.67441092804074, + 306.01436337828636, + 321.5740974023938, + 300.6059639900923, + 307.4240235090256, + 302.19124576449394, + 302.7043156847358, + 333.2795081809163, + 306.41801995784044, + 329.4335888288915, + 304.27631562948227, + 301.74276670254767, + 302.65257051587105, + 309.1176870763302, + 305.45986813120544, + 303.2687944099307, + 311.22213839553297, + 416.82044753432274, + 301.6200428903103, + 301.2922334372997, + 307.35984851419926, + 314.2325631454587, + 302.9514333046973, + 312.19876973330975, + 305.44771986454725, + 302.86768015287817, + 304.9549379646778, + 303.5066426284611, + 308.7748593837023, + 302.39568949490786, + 309.2159056738019, + 304.0808234140277, + 304.28521251678467, + 311.0962460730225, + 304.3542172089219, + 314.2765524685383, + 301.7005084455013, + 303.8653028588742, + 318.11216765269637, + 307.80816769599915, + 302.2114487066865, + 309.39550100266933, + 309.6361206397414, + 306.3317455947399, + 304.36510115116835, + 304.64069474488497, + 300.95413768291473, + 304.4793861322105, + 301.82991111278534, + 309.95430617779493, + 305.66767344623804, + 325.24783723056316, + 303.78478426486254, + 328.2723254561424, + 304.91716565191746, + 306.22507205605507, + 302.4829363580793, + 304.51797492802143, + 304.0025024712086, + 300.5417879745364, + 312.4347739443183, + 300.74912282824516, + 303.0146790891886, + 314.47613117843866, + 308.8714428022504, + 314.5471199899912, + 303.9485434331, + 309.1876583993435, + 303.6083176098764, + 306.1695419624448, + 310.43574047088623, + 391.9544968903065, + 304.7923315986991, + 304.10613687336445, + 301.5493629425764, + 300.64288752526045, + 307.51532891765237, + 343.08517879992723, + 306.81507437862456, + 314.1844725012779, + 301.10936499387026, + 300.38170160353184, + 310.5226054266095, + 305.17706153541803, + 311.1820936501026, + 304.1821208149195, + 300.4854075908661, + 305.5181114822626, + 315.9686829224229, + 312.34799091517925, + 304.67174265161157, + 309.95038805156946, + 329.5505417212844, + 302.9617203846574, + 309.8653458952904, + 303.0721364021301, + 321.0982597991824, + 309.2220148816705, + 304.92150067538023, + 305.32523822039366, + 305.960252776742, + 301.19267002493143, + 300.6616346016526, + 306.195201439783, + 357.65035970695317, + 301.531973650679, + 304.15562393143773, + 301.898175008595, + 320.05267878621817, + 301.68491323292255, + 304.5881449729204, + 302.74684373289347, + 338.06448144465685, + 304.3909378051758, + 300.8765900656581, + 309.00363596715033, + 310.39006216078997, + 314.52364283427596, + 310.4884849861264, + 312.75039303675294, + 315.2286881059408, + 307.00861122459173, + 374.50006069242954, + 302.82735482417047, + 308.17937035113573, + 314.48133369907737, + 309.2812649086118, + 303.5920427814126, + 302.130679063499, + 301.3567379526794, + 312.5898841805756, + 302.23566964268684, + 307.4594117552042, + 344.2182421684265, + 300.79339318722486, + 314.9381695035845, + 306.02912848442793, + 308.7643918246031, + 362.0111813992262, + 305.21754509210587, + 302.71294286847115, + 305.28139877319336, + 306.64860549755394, + 300.9546636044979, + 318.79996952041984, + 301.74322579987347, + 321.77443290129304, + 304.7439801953733, + 311.69046957045794, + 306.7164596244693, + 304.0377137027681, + 305.4332427382469, + 317.9384236186743, + 335.24812316149473, + 324.0213030129671, + 307.5821422636509, + 301.56507451087236, + 309.0109963193536, + 306.41584737598896, + 321.87709829211235, + 300.5887427199632, + 305.31303253024817, + 301.7131329551339, + 305.7511709537357, + 304.1652670316398, + 308.23845655471087, + 315.4550927877426, + 305.7273925766349, + 302.9175050109625, + 310.4542678594589, + 303.7436899803579, + 310.1834310926497, + 308.45150508359075, + 306.7327788230032, + 303.3443568497896, + 306.3548944592476, + 308.5988522525877, + 307.65838196128607, + 309.1782162040472, + 306.9325448721647, + 312.48649321496487, + 303.2926546931267, + 332.0198952332139, + 322.1592749506235, + 306.4947208687663, + 307.55637446045876, + 306.3170207180083, + 303.3546756505966, + 367.93103075027466, + 303.13710648566484, + 316.47817124426365, + 335.60799382440746, + 311.6860771328211, + 308.61841171234846, + 300.3456696718931, + 307.0661213696003, + 310.930451516062, + 301.54968727752566, + 309.0024662017822, + 302.4202868565917, + 303.3590146228671, + 308.10787411779165, + 303.439955919981, + 310.06230679154396, + 316.7943961918354, + 300.959772657603, + 302.7136592194438, + 303.668026201427, + 301.64237523823977, + 304.2352792471647, + 301.0551715269685, + 310.79739924147725, + 306.5440179556608, + 315.08809687942266, + 310.0647002607584, + 303.5105185378343, + 308.58275674283504, + 304.2175093367696, + 314.66983027383685, + 303.55144879221916, + 399.4579226374626, + 311.6224920451641, + 307.6227342709899, + 303.0319874584675, + 303.40354999899864, + 308.83148214221, + 316.05691453814507, + 302.1669016890228, + 303.8284029699862, + 355.7931281030178, + 302.16956415586174, + 313.4295183867216, + 315.0145988613367, + 305.9281915053725, + 313.79158218950033, + 302.90764693170786, + 314.14039915800095, + 317.00655806064606, + 310.72756760567427, + 308.2847945988178, + 301.5775331221521, + 307.6268916390836, + 303.9481726512313, + 319.7326930165291, + 304.30284240841866, + 304.52117566764355, + 306.88499335572124, + 310.24946815520525, + 329.2968925014138, + 315.4333475083113, + 302.2385151833296, + 304.0402657352388, + 330.64544090628624, + 302.658523414284, + 310.26695477962494, + 318.529646769166, + 301.7228495515883, + 313.4823678508401, + 303.86924044787884, + 311.6707894317806, + 304.4567382186651, + 300.88400607183576, + 307.6292063444853, + 303.1597723662853, + 301.52418445050716, + 305.3710070475936, + 315.2097835242748, + 309.65636210888624, + 313.31703604757786, + 306.30991733819246, + 320.2311890721321, + 304.01540346443653, + 305.0545330680907, + 307.1137736495584, + 395.3211914524436, + 314.6703867353499, + 301.70110377669334, + 319.2415189370513, + 303.8534288406372, + 303.92264061421156, + 321.5929098278284, + 305.98167299479246, + 310.6541989669204, + 306.7168850302696, + 303.3649907335639, + 304.13745111227036, + 323.40118588507175, + 300.5182897299528, + 303.0697602778673, + 309.2241516634822, + 304.0053559318185, + 300.94461864233017, + 308.79559959471226, + 304.15431283414364, + 307.004829749465, + 310.1420737244189, + 303.7176459506154, + 310.7476985901594, + 343.8860621601343, + 302.4985236749053, + 305.003504473716, + 304.13223231583834, + 305.5436536446214, + 300.5909035168588, + 303.05559904128313, + 306.6380413621664, + 310.255565315485, + 310.5348589159548, + 300.8216338008642, + 303.87786211818457, + 306.5753938257694, + 308.73555383086205, + 303.58505533635616, + 303.0651247650385, + 301.9923425465822, + 303.2536040209234, + 307.99435042589903, + 301.4253768287599, + 304.97345662117004, + 312.2998630069196, + 300.39801063388586, + 307.8698311187327, + 306.51887691766024, + 303.59526646882296, + 303.0467093884945, + 302.7585905492306, + 300.9845659583807, + 305.5503516755998, + 305.20626682043076, + 302.78563606739044, + 376.7346553951502, + 302.2926977649331, + 326.47912207245827, + 306.38414881005883, + 310.67380817234516, + 302.40635278075933, + 316.99041946977377, + 308.1647428572178, + 302.3320001512766, + 319.91758993268013, + 312.73799577355385, + 309.22835905849934, + 306.00085255503654, + 300.3356461748481, + 312.17326056957245, + 326.2825090661645, + 300.78065820783377, + 300.2963879778981, + 316.9373020455241, + 304.2916994057596, + 300.59651781618595, + 304.2348938956857, + 305.0064167380333, + 311.83438216149807, + 302.5825424268842, + 309.2835951335728, + 304.8437476605177, + 349.2171830162406, + 309.2551583200693, + 310.2688575554639, + 307.39415687322617, + 313.543385386467, + 327.29151912778616, + 301.93948221951723, + 307.50280844792724, + 303.7180578261614, + 308.3463310841471, + 303.7881338689476, + 310.47090319544077, + 309.3996502235532, + 306.0465895012021, + 310.46796933561563, + 319.1519105732441, + 308.0241387411952, + 309.1374143473804, + 303.77713438123465, + 311.22317691892385, + 301.3994680196047, + 305.4784608632326, + 305.67226973176, + 306.103464409709, + 317.38553878478706, + 305.4966553673148, + 304.6161012351513, + 304.24632278084755, + 323.7789228968322, + 301.9509630911052, + 311.7324143387377, + 304.2820866778493, + 300.56606724113226, + 300.97979997098446, + 310.01350251585245, + 304.25495737046003, + 302.2086296286434, + 306.7856211066246, + 307.86978751420975, + 306.75784535706043, + 312.646711923182, + 300.73208376020193, + 307.9627994596958, + 333.88007571548223, + 312.85197008401155, + 378.0619837269187, + 315.34077821299434, + 305.7352943792939, + 309.61407316476107, + 303.7329331673682, + 386.37285351008177, + 301.39230327121913, + 301.8309765830636, + 312.941692173481, + 304.2411061450839, + 327.34909755550325, + 312.16976859793067, + 302.3882667645812, + 306.77433081157506, + 341.42430003732443, + 301.09369875490665, + 301.76899264752865, + 325.9489027298987, + 303.00098659284413, + 307.55569164454937, + 307.7065726965666, + 301.43845246732235, + 304.25512028858066, + 305.24416609853506, + 305.30680099129677, + 306.25237245857716, + 301.4827401712537, + 302.7669405788183, + 303.08196802809834, + 303.9369617290795, + 301.9830661043525, + 301.746634632349, + 307.91603077948093, + 302.43126490712166, + 307.75929356366396, + 307.0497248619795, + 330.0628276076168, + 306.5131752155721, + 301.311010081321, + 308.5202541537583, + 302.61796271800995, + 319.4751095175743, + 302.2562645971775, + 307.3518746942282, + 317.09066511690617, + 307.4856946617365, + 365.65165987610817, + 302.9166493564844, + 301.82894691079855, + 307.2666062861681, + 304.62152975052595, + 302.39644312113523, + 303.00495433062315, + 340.3367389217019, + 319.3033963665366, + 302.0310657210648, + 312.2120970338583, + 305.88152101635933, + 317.57720898091793, + 302.6354679837823, + 303.7582477480173, + 307.6256429105997, + 303.38007067888975, + 301.76726876944304, + 302.524381775409, + 319.82653972506523, + 350.24694557487965, + 311.4808273091912, + 302.5532476529479, + 305.0216153115034, + 307.1480409130454, + 308.34213177859783, + 304.20534352585673, + 303.0358456224203, + 315.684188708663, + 345.20830518193543, + 310.21835684776306, + 306.8424470424652, + 307.4392704218626, + 307.22500444948673, + 315.54388186335564, + 310.01511892676353, + 312.49984880536795, + 311.38562689349055, + 316.5261323787272, + 302.0857106298208, + 342.11483922600746, + 308.6545449439436, + 320.810591340065, + 306.57110273838043, + 301.3465375043452, + 306.3758201599121, + 302.54384859651327, + 304.3074850216508, + 304.471977122128, + 303.40869407355785, + 380.2180563118309, + 303.1555345579982, + 310.91944871097803, + 319.7524440065026, + 318.2037727832794, + 305.4040424153209, + 304.10886712372303, + 309.664521291852, + 301.87392216175795, + 338.3995760679245, + 300.7961592376232, + 318.5655442830175, + 304.16267489641905, + 307.0703662112355, + 312.45957747101784, + 307.72524724528193, + 305.88985064066947, + 317.2904211804271, + 314.3781725242734, + 306.0840499550104, + 304.18717203475535, + 300.6116738393903, + 379.9813602603972, + 311.6361245661974, + 315.41395538300276, + 302.3186864554882, + 301.64878034591675, + 309.6594426892698, + 305.97290176153183, + 301.8353341035545, + 306.723392624408, + 309.9512020498514, + 303.0786857455969, + 314.0717552304268, + 306.6992979645729, + 318.67450596392155, + 309.1275431960821, + 302.2097802609205, + 321.59404833614826, + 305.86140403337777, + 302.0193884894252, + 315.508419200778, + 305.96656635403633, + 340.4029039181769, + 301.96962421387434, + 303.81527983397245, + 301.0648333542049, + 300.55451625585556, + 314.6922609154135, + 309.1730336137116, + 326.9225962422788, + 308.44335229322314, + 305.0466589182615, + 314.6456539481878, + 322.54439701139927, + 302.4855172857642, + 303.11453679203987, + 307.81943978369236, + 304.961193818599, + 319.89167384058237, + 307.89317028597, + 314.2161708548665, + 302.87863958999515, + 301.66661085933447, + 307.34651274234056, + 311.9949834048748, + 316.49513341486454, + 346.46002262085676, + 315.5100534632802, + 304.52639743871987, + 336.4220956489444, + 305.0136582329869, + 307.3377013653517, + 310.21872371435165, + 301.3476750254631, + 303.5672729462385, + 316.0607912838459, + 304.0019204095006, + 307.5840624421835, + 302.18867602571845, + 301.5352426916361, + 308.59497871622443, + 309.54025289416313, + 383.4141858369112, + 313.6161131989211, + 303.3323939796537, + 304.140910461545, + 303.20343083143234, + 305.6057410463691, + 320.2711511347443, + 313.18107791244984, + 301.4606238864362, + 301.4564084932208, + 304.83769878558815, + 313.9832816403359, + 353.2365904562175, + 313.7692151516676, + 309.8289328068495, + 305.862393707037, + 305.1804407425225, + 317.72849291935563, + 306.72550489008427, + 302.8092676177621, + 306.4110401645303, + 312.1188718751073, + 362.7273985147476, + 317.9168858230114, + 301.77394001558423, + 305.03996632248163, + 328.3006071001291, + 302.96481505967677, + 358.9187282770872, + 340.48634894937277, + 312.8884740807116, + 320.8161339983344, + 307.4104171618819, + 307.0365815460682, + 311.5006188713014, + 308.9893600344658, + 308.20471503958106, + 308.04335648193955, + 305.6012024730444, + 307.3787270784378, + 311.57647612690926, + 308.9312228783965, + 301.2076271921396, + 322.9530526548624, + 309.24546724930406, + 301.5614732503891, + 312.76797065883875, + 309.2778063863516, + 302.5637070611119, + 308.29945109412074, + 315.2914752960205, + 305.09974686801434, + 317.6121992394328, + 308.98901703208685, + 338.33057140931487, + 302.0522666051984, + 303.68452225625515, + 310.97885339707136, + 318.26357846707106, + 300.9114904142916, + 329.7943529188633, + 312.03377056121826, + 306.2725482098758, + 305.3492953553796, + 317.32079035043716, + 303.20747247338295, + 308.29731092229486, + 307.9181041829288, + 304.54835257679224, + 324.4079425036907, + 306.24200108088553, + 300.65853126347065, + 304.2509483192116, + 302.8772924914956, + 300.89625557139516, + 302.6689771860838, + 391.9473808258772, + 334.9496844485402, + 302.75849348306656, + 306.028928168118, + 304.2924796678126, + 307.98969984054565, + 309.1131554841995, + 308.1403100043535, + 313.1822231952101, + 306.46754467487335, + 301.89772509783506, + 308.1035316064954, + 306.7843502499163, + 302.2081850320101, + 332.9841753542423, + 314.8231116272509, + 303.0586135927588, + 336.252635974437, + 305.1808427795768, + 321.3540218472481, + 305.43340353854, + 300.6233523860574, + 308.2786120772362, + 309.03126241639256, + 312.4426132440567, + 308.1761762946844, + 308.24175544828176, + 304.8906434997916, + 306.60156823694706, + 306.9404873549938, + 304.51684875041246, + 357.69929099082947, + 358.9486414641142, + 304.8242894336581, + 302.8356246985495, + 317.6860573217273, + 399.82464607059956, + 316.0868339277804, + 307.53598020784557, + 308.22646176069975, + 323.4186094030738, + 301.42822763323784, + 303.02495528012514, + 313.42270952649415, + 311.54310511797667, + 390.9345150757581, + 302.54985205829144, + 309.52428824827075, + 301.95824552327394, + 300.9731022492051, + 304.56906984746456, + 322.8679246008396, + 326.2078197821975, + 321.2846377044916, + 333.11418214440346, + 305.20225162804127, + 309.0887602865696, + 319.0709435865283, + 310.838869381696, + 301.23190255463123, + 306.2919792868197, + 302.739996522665, + 348.3676441386342, + 303.47383108735085, + 326.02600886300206, + 348.10810193791986, + 312.6929789800197, + 303.7830352932215, + 302.28184547275305, + 310.599996317178, + 315.5636248886585, + 321.30469534546137, + 308.902185767889, + 303.45940586179495, + 309.6694117411971, + 300.75393068417907, + 304.6446271389723, + 304.7449014186859, + 301.9761216789484, + 302.6829492300749, + 300.4357543513179, + 381.60877077281475, + 301.07548336684704, + 311.2776542454958, + 331.0760400444269, + 302.6143119111657, + 301.06872196495533, + 306.0887282192707, + 306.36824740469456, + 338.53837563842535, + 312.8054626137018, + 318.61705269291997, + 310.13486017659307, + 304.28922582790256, + 305.2307872772217, + 312.89065919816494, + 306.41037832573056, + 308.77710288763046, + 302.69357120990753, + 302.24736822396517, + 316.1984846815467, + 307.0725309252739, + 301.9051226824522, + 334.166741296649, + 311.39826571941376, + 307.0690799802542, + 301.50193649716675, + 353.74076600559056, + 301.6986852735281, + 307.5404232367873, + 317.01313573122025, + 336.6142027974129, + 305.5760070383549, + 373.3376475870609 + ] + }, + { + "histnorm": "probability", + "hovertemplate": "Scenario: timebin_15
Dist since last refuel: %{x:,.1f}
Bin share: %{y:.3f}", + "name": "timebin_15", + "nbinsx": 40, + "opacity": 0.5, + "type": "histogram", + "x": [ + 307.8761378079653, + 310.2477586567402, + 301.6352349743247, + 304.35729967057705, + 300.7325431033969, + 320.85970444977283, + 312.8358040340245, + 326.2026565670967, + 308.12572054564953, + 333.53297314047813, + 305.8357461541891, + 302.46885880827904, + 300.83202120661736, + 305.5972102470696, + 303.0892198458314, + 312.5222806110978, + 304.0579238720238, + 305.3317773286253, + 315.28393918275833, + 304.4220207929611, + 305.7127846777439, + 308.94129935465753, + 309.0655120834708, + 311.0246589034796, + 311.0830531604588, + 303.57526481337845, + 316.3642346560955, + 304.55109921842813, + 303.9577593654394, + 307.78884817287326, + 302.2270769029856, + 301.26999431848526, + 301.31782702356577, + 302.14467050135136, + 306.15606050752103, + 302.58216051384807, + 302.0888505503535, + 301.7784555926919, + 301.2498452011496, + 310.30756399966776, + 305.5428588800132, + 309.16978477686644, + 304.20641740970314, + 307.53816121816635, + 329.2600883692503, + 303.6693227291107, + 314.6877956688404, + 317.29953561350703, + 303.60346484184265, + 300.26153072714806, + 323.1748514175415, + 301.949778676033, + 307.723758649081, + 311.3637005612254, + 303.68251380324364, + 300.9458533003926, + 310.71784553676844, + 301.95059219002724, + 305.8638828303665, + 310.31335366517305, + 330.69046675413847, + 302.29727071523666, + 302.7665432244539, + 320.15591794252396, + 315.96621322631836, + 311.4279606640339, + 312.82877510786057, + 313.79500018805265, + 310.7359293550253, + 302.8730273768306, + 303.7381737232208, + 306.08611746132374, + 330.0959519967437, + 300.66269978135824, + 308.76627742499113, + 302.7348014190793, + 310.07943576574326, + 310.4163189008832, + 304.2265581563115, + 305.08363719284534, + 305.38169245421886, + 304.5111999101937, + 308.88262690231204, + 305.154124468565, + 301.7156582977623, + 301.6454584226012, + 308.2252107709646, + 301.5620728880167, + 313.8374079987407, + 313.8517865091562, + 300.8380654454231, + 304.15358279645443, + 306.16303953528404, + 308.2695724051446, + 307.3583146184683, + 311.12982730567455, + 319.86277851462364, + 303.03687361627817, + 303.70700162649155, + 314.0297953337431, + 303.0524753332138, + 306.0661939904094, + 302.5680607035756, + 334.2086484655738, + 308.2932429462671, + 320.51934421248734, + 303.98571292310953, + 304.76880994439125, + 301.1302709132433, + 302.1964023709297, + 353.1772450506687, + 308.19082537665963, + 300.9305206909776, + 312.4628439024091, + 344.1380221322179, + 302.6371979750693, + 301.49864415079355, + 302.6722133755684, + 304.2602080106735, + 307.95988661050797, + 306.3589321896434, + 316.38895827531815, + 306.44780188798904, + 302.2011732161045, + 300.7123897317797, + 306.84597995877266, + 310.22054021060467, + 302.542510420084, + 334.00973987951875, + 309.9792381618172, + 360.528023019433, + 349.4648427069187, + 303.37440736591816, + 307.57462070323527, + 305.17609680071473, + 338.30616203695536, + 301.97917795181274, + 305.4228833913803, + 306.5590275041759, + 301.99405190721154, + 303.2499331533909, + 301.2668143361807, + 313.9508454799652, + 304.9210609383881, + 314.37217105925083, + 311.46467996016145, + 305.89308427274227, + 319.78159776329994, + 300.9976390004158, + 308.5614129602909, + 302.11568274721503, + 314.496099665761, + 301.9767045006156, + 309.40542915835977, + 322.94249130412936, + 302.9450396820903, + 303.82351492345333, + 304.3677242323756, + 310.43108812347054, + 306.0075718089938, + 327.2568456828594, + 304.08162431418896, + 310.49259592592716, + 321.6494189426303, + 303.34743770956993, + 304.7097475603223, + 301.714543633163, + 310.99913711100817, + 304.0629154480994, + 303.81847434304655, + 315.6718600615859, + 310.2236638367176, + 302.07490062713623, + 302.2322255447507, + 309.9071555137634, + 317.5803330913186, + 308.96879332885146, + 314.02409265190363, + 303.74733098596334, + 323.69624153897166, + 301.4382171817124, + 317.0277197510004, + 311.6580896228552, + 308.3883059769869, + 304.60642586275935, + 305.53685496002436, + 303.5539646074176, + 307.1312373280525, + 316.39284425228834, + 342.2958284486085, + 313.8978901654482, + 308.49516846984625, + 311.0583050698042, + 309.89766638725996, + 303.032968737185, + 304.19790552556515, + 345.09511582553387, + 308.6141706481576, + 301.30961202830076, + 318.9507184699178, + 302.5885816514492, + 342.6158357858658, + 304.47140995040536, + 304.0197333097458, + 301.748586140573, + 313.56303960829973, + 302.5065469760448, + 304.37398170121014, + 309.39740443229675, + 309.5849400162697, + 306.2726090103388, + 303.5444388091564, + 301.283720003441, + 392.26814210414886, + 303.77182491868734, + 301.0855088233948, + 305.1640085875988, + 302.0232205018401, + 304.2186733186245, + 314.4319935962558, + 304.0384346097708, + 302.9792960733175, + 306.73769764229655, + 304.3365440145135, + 307.54232962429523, + 302.42474545538425, + 313.4010748360306, + 302.65033334493637, + 304.9652671441436, + 303.5318804681301, + 302.13246708363295, + 302.2058440744877, + 302.7818466871977, + 304.3687411621213, + 308.13929042220116, + 303.65403120964766, + 306.0965400338173, + 309.2858737334609, + 307.50502117164433, + 307.2714634370059, + 302.96870348602533, + 305.84969579055905, + 304.2371565550566, + 312.70683779008687, + 314.478182464838, + 319.6968232318759, + 319.66133480519056, + 302.98547668755054, + 372.6696136891842, + 315.8217728510499, + 317.795770868659, + 308.643696680665, + 316.93313717097044, + 301.7324685752392, + 316.07361997663975, + 301.7105042077601, + 303.99775622598827, + 317.5465478077531, + 305.23170405998826, + 300.496920786798, + 316.5741482079029, + 313.4369900971651, + 302.7007577419281, + 314.9920911639929, + 312.1413935869932, + 321.2927353978157, + 327.5959524475038, + 302.64677452109754, + 310.79543409496546, + 306.31505350768566, + 304.33523527160287, + 320.0945075005293, + 309.3224299978465, + 309.6464683674276, + 304.820232687518, + 308.45136596262455, + 307.43028268404305, + 305.67007971927524, + 302.1888468004763, + 302.86413887888193, + 323.3078965693712, + 301.58590933680534, + 304.26549953594804, + 306.4183366149664, + 306.44123559072614, + 312.8531384989619, + 309.44384226575494, + 304.5725321993232, + 313.9617192745209, + 325.55200654268265, + 346.42168771103024, + 312.31554068252444, + 306.9744808524847, + 312.9341164082289, + 302.7057870142162, + 366.09472277760506, + 308.26586370915174, + 311.16121508181095, + 304.44531086087227, + 309.8671550154686, + 307.6104479059577, + 303.49475555866957, + 306.2569966837764, + 301.30691500380635, + 321.6745239738375, + 303.8369566053152, + 316.54379523545504, + 306.48316699266434, + 306.7924055121839, + 303.50239977799356, + 312.58418161422014, + 306.1625695377588, + 317.5553707703948, + 318.78430753946304, + 310.0238239169121, + 353.5675001218915, + 316.26482245884836, + 310.79244969785213, + 312.91047678887844, + 309.4244338348508, + 304.0516610443592, + 315.64851132780313, + 304.66048780456185, + 309.83206360042095, + 305.31838022731245, + 308.16216945648193, + 308.77025601267815, + 313.2427648473531, + 302.0213454719633, + 304.3050060272217, + 304.2055037692189, + 301.68298900686204, + 386.01004415005445, + 305.1753391623497, + 306.66908929497004, + 303.47062123566866, + 313.2561429142952, + 346.5650221519172, + 314.91566540300846, + 301.36022153124213, + 305.5992409400642, + 305.1740468852222, + 346.47981921955943, + 305.8174353837967, + 302.94268867373466, + 304.8135145679116, + 307.17546527832747, + 302.87891951948404, + 300.4353869855404, + 335.4908299446106, + 312.0076115485281, + 314.8974186144769, + 341.7889069020748, + 325.53437396883965, + 306.20877519994974, + 300.6338535696268, + 303.27444346249104, + 319.28693406283855, + 303.27317044883966, + 307.3051431328058, + 305.5005130134523, + 309.85551276244223, + 315.00756649672985, + 302.05120231956244, + 338.2715542986989, + 310.0456312894821, + 303.4089444670826, + 303.7037855964154, + 303.3190984688699, + 301.5623353347182, + 300.8607793711126, + 318.5458204820752, + 301.6964098792523, + 323.4144708365202, + 304.41793118044734, + 301.0003523863852, + 303.00242110714316, + 302.51220037043095, + 312.4084329083562, + 305.971623968333, + 314.7154969088733, + 301.10126470029354, + 341.9771654345095, + 307.8679590784013, + 324.757729254663, + 319.10677453130484, + 303.77906746044755, + 317.51566424034536, + 316.1050415802747, + 304.6794582605362, + 307.33510218933225, + 308.5179113894701, + 313.77375442534685, + 311.7341443542391, + 314.1341075450182, + 303.0614980906248, + 306.35703133791685, + 309.7463245764375, + 319.90972204878926, + 312.5847415328026, + 303.1041152700782, + 303.84650733321905, + 302.752324745059, + 308.41457986831665, + 331.4878174215555, + 311.1914609670639, + 300.97010923177004, + 302.8562926054001, + 307.0298613458872, + 307.2136914655566, + 303.3937513977289, + 302.3393646925688, + 320.3017371185124, + 302.6174088716507, + 350.2908341214061, + 302.44967452436686, + 303.6453228145838, + 306.4080241173506, + 300.33773571252823, + 304.99352523870766, + 301.75292325764894, + 306.24567292258143, + 302.52315954864025, + 308.96465663053095, + 302.30472172796726, + 314.845694322139, + 316.7541425675154, + 302.0953874140978, + 351.18464728817344, + 308.37741804495454, + 311.46303164586425, + 306.72163724526763, + 300.7065165415406, + 312.0550758894533, + 312.4572551473975, + 310.24863977730274, + 311.70805311203003, + 305.83924582600594, + 306.22125351428986, + 304.6039231531322, + 308.6439824551344, + 328.6985560134053, + 304.7823572680354, + 304.38492564857006, + 311.4163054060191, + 301.3085383027792, + 301.8486842364073, + 303.57446402311325, + 303.19170420616865, + 304.36809719353914, + 321.2331624738872, + 335.06254711560905, + 302.0451090633869, + 303.40331976115704, + 302.199256837368, + 304.17278802394867, + 306.46074505895376, + 306.8632494267076, + 308.4516568016261, + 312.48565276525915, + 304.20791597664356, + 300.59900468587875, + 303.4375818260014, + 309.6957476846874, + 317.5506781190634, + 309.0128778666258, + 314.88419929146767, + 305.2579119168222, + 302.3821116015315, + 303.74236950464547, + 301.9916785880923, + 305.2597420103848, + 302.5515488833189, + 313.1160566210747, + 312.2207099124789, + 302.8742495775223, + 315.120795622468, + 320.319359369576, + 315.7898935228586, + 302.66780825704336, + 341.60408040881157, + 300.92555375397205, + 309.7002172842622, + 303.2394561767578, + 301.84358874708414, + 305.6694395914674, + 302.8090774193406, + 308.1313747242093, + 306.63886891305447, + 300.47720500826836, + 305.635382629931, + 304.3639894463122, + 303.7249220237136, + 310.3141170218587, + 305.40767443180084, + 313.99940557032824, + 321.4739056825638, + 321.07495137676597, + 308.8374251127243, + 306.81106466054916, + 302.3512480389327, + 320.628115452826, + 303.8762809149921, + 308.5235850661993, + 302.85509707033634, + 324.7236333563924, + 320.44831824302673, + 301.1630218103528, + 309.2868019193411, + 318.2906500734389, + 306.1237455457449, + 304.01696848869324, + 303.71911389939487, + 304.5739280208945, + 303.73203825205564, + 301.51145815849304, + 301.38592263683677, + 301.9057780839503, + 306.6864172555506, + 320.0946565717459, + 308.954696431756, + 310.8658599704504, + 310.8287105560303, + 312.60917726531625, + 349.15345829725266, + 304.0652962476015, + 313.19428330659866, + 305.05303765274584, + 308.65617449581623, + 316.88005885481834, + 303.47737757861614, + 306.59330727159977, + 304.3435466811061, + 305.3277895245701, + 315.92016541957855, + 307.41834608465433, + 300.75091085396707, + 308.24580548889935, + 318.45564375817776, + 305.3548939526081, + 302.9116650223732, + 305.747339066118, + 309.3362205848098, + 312.2624186426401, + 304.9644323438406, + 315.57921558618546, + 301.9520725160837, + 305.1548116058111, + 338.66034343093634, + 301.44356897845864, + 300.9720627646893, + 303.73089637607336, + 300.74325090646744, + 302.26158282347023, + 311.2230252008885, + 305.1590003594756, + 303.20817825198174, + 311.74930169433355, + 304.0756441950798, + 304.83058918453753, + 305.2412375956774, + 313.87916761636734, + 303.40669021755457, + 310.0192205533385, + 305.2878862544894, + 305.3992144316435, + 307.52328411489725, + 325.4410544037819, + 302.7110299691558, + 301.93515843153, + 313.0802146345377, + 315.3211818560958, + 303.2231033593416, + 310.3917005583644, + 320.54739601910114, + 307.0774539113045, + 305.88476240076125, + 310.7892704233527, + 307.2898511812091, + 304.9024174809456, + 301.37627494707704, + 305.6798579841852, + 300.70541613176465, + 305.01818899810314, + 314.02465964108706, + 314.9137079194188, + 300.67962439358234, + 302.2925269976258, + 330.9521838128567, + 310.05642784386873, + 319.5268399119377, + 318.0625415816903, + 301.5166492201388, + 360.07097060233355, + 306.93979059159756, + 300.391717068851, + 306.0187198370695, + 307.2152593806386, + 303.1338608339429, + 311.6084164530039, + 308.43882474303246, + 309.10189775004983, + 312.58300026878715, + 304.61643566191196, + 344.9140557795763, + 301.60247221402824, + 318.46054320037365, + 304.6766204163432, + 321.11199224740267, + 337.83982026576996, + 301.6642259582877, + 303.10879031196237, + 308.7272081747651, + 304.37439021095634, + 324.1367995515466, + 311.80639296770096, + 302.44541200995445, + 316.55901278182864, + 318.58116192370653, + 305.3416355252266, + 302.97883026860654, + 313.2960813641548, + 311.3981901705265, + 377.49790723621845, + 308.236501082778, + 303.1732248067856, + 304.84769758582115, + 302.78127464838326, + 310.39037143066525, + 302.9280931428075, + 315.1327092051506, + 308.0931175034493, + 300.5581758376211, + 304.3035777043551, + 304.2716048769653, + 302.1690724864602, + 323.56338015943766, + 309.59932450577617, + 301.61187420785427, + 305.58610256016254, + 310.58805245533586, + 316.8338122628629, + 301.60672574676573, + 302.3709067441523, + 312.62735341489315, + 302.6710833758116, + 303.1757187694311, + 302.256842777133, + 331.0395535826683, + 302.5183940306306, + 303.3611548766494, + 307.5833691563457, + 301.0819875448942, + 305.8949688374996, + 311.81873673945665, + 311.18805411458015, + 301.9799827411771, + 359.1830040961504, + 301.29311816580594, + 302.566394995898, + 312.42166796699166, + 304.4839750509709, + 302.42047365009785, + 310.57408402115107, + 303.02839900553226, + 303.0088186338544, + 332.66932862997055, + 305.64890825748444, + 308.00557094067335, + 310.0403492450714, + 311.0918382704258, + 311.94165927171707, + 302.47593177482486, + 306.2975734323263, + 323.32806520164013, + 305.05775344371796, + 316.6101239696145, + 314.67180229723454, + 302.31731957755983, + 306.86199390515685, + 322.58378428965807, + 311.22859900444746, + 319.06390968710184, + 301.54301961138844, + 302.61848545074463, + 310.7947777528316, + 315.03962880373, + 306.47790126502514, + 301.03737177699804, + 303.7551994174719, + 305.1838475726545, + 305.78224002197385, + 307.4530448541045, + 319.30036598443985, + 307.21173273026943, + 310.1218813061714, + 307.5015318840742, + 305.7930860631168, + 305.02137352898717, + 310.25031780824065, + 305.24770821630955, + 308.56484881043434, + 307.56573463231325, + 300.5367976799607, + 303.1179630625993, + 303.14504147693515, + 302.3518637344241, + 306.29337920993567, + 300.83573203906417, + 307.95787131786346, + 307.5540041849017, + 304.7540012001991, + 334.8554466813803, + 317.8194156438112, + 311.3079342301935, + 311.3736774660647, + 302.8421665392816, + 305.1415925100446, + 301.31525657325983, + 310.34254267811775, + 307.6243946328759, + 304.90975016728044, + 303.98444744199514, + 304.2205852419138, + 305.22908256947994, + 309.70762449502945, + 319.0601255055517, + 304.06237134337425, + 302.78328765928745, + 305.89450373128057, + 301.34630233608186, + 318.5041153728962, + 307.5554081313312, + 302.55621349439025, + 305.53126142919064, + 302.21050929278135, + 315.9633264988661, + 303.7638662457466, + 340.925498470664, + 343.79489321261644, + 302.8659290857613, + 300.5627119317651, + 311.0727250855416, + 318.273558922112, + 300.9839893989265, + 304.4528138227761, + 340.59062288701534, + 304.69333702884614, + 302.95635832473636, + 303.58994498848915, + 303.1801648661494, + 303.7129035964608, + 306.5142780095339, + 322.46182349696755, + 317.5630297046155, + 311.9622724428773, + 316.25440396368504, + 313.8460535928607, + 315.14681893214583, + 307.22616055235267, + 302.4300256446004, + 305.2536136060953, + 304.2258507460356, + 314.13263860344887, + 312.65693145245314, + 334.1902274861932, + 313.5996577963233, + 303.28185160830617, + 301.4290804825723, + 306.0942632108927, + 324.5589841604233, + 313.01219906657934, + 308.09615290537477, + 312.55376175045967, + 306.1435359045863, + 302.39246928691864, + 303.6005875915289, + 302.039315328002, + 301.89458644390106, + 304.12555015832186, + 305.9490951411426, + 301.78168372809887, + 366.67432206869125, + 303.3849490582943, + 301.8153453618288, + 304.8087099045515, + 307.0856832116842, + 311.38566701859236, + 310.47956631332636, + 307.0521674901247, + 307.2684844210744, + 309.194332357496, + 300.9250905402005, + 317.4105105474591, + 305.6688562184572, + 304.34394297003746, + 301.6927847787738, + 325.6828994099051, + 306.58394803106785, + 307.2101179212332, + 302.9091525785625, + 309.9720004275441, + 333.489806458354, + 309.8078556843102, + 304.1009860150516, + 304.8098240867257, + 311.727559549734, + 310.1562914401293, + 304.7818565219641, + 306.1552200950682, + 315.5387301892042, + 306.22168101370335, + 302.54674630984664, + 302.1120357401669, + 336.7098540440202, + 301.6453301757574, + 302.05827473104, + 326.43350986391306, + 310.8758923448622, + 301.3692698478699, + 305.8422114737332, + 324.72186344116926, + 300.6223867684603, + 316.7726469784975, + 303.7473079636693, + 301.0824889317155, + 301.9634449481964, + 303.8904573991895, + 306.51544223725796, + 302.70005835592747, + 328.49917585402727, + 306.70056419074535, + 305.3059768266976, + 320.76791670918465, + 310.6024186424911, + 303.7255325913429, + 317.77652479708195, + 311.27202867902815, + 302.95859111845493, + 301.85737554728985, + 311.3338368907571, + 302.6088318526745, + 304.9039859510958, + 303.89674716442823, + 305.6864486336708, + 303.53043734654784, + 307.90905187278986, + 314.19452369213104, + 304.071097670123, + 312.6093066968024, + 309.39463118463755, + 347.0147044658661, + 304.34300642088056, + 303.48946513980627, + 307.1844686418772, + 326.43278190493584, + 305.2153944782913, + 323.86478897184134, + 314.35213106684387, + 304.7675721794367, + 312.0603165999055, + 302.27001292444766, + 300.5234962403774, + 304.32395704463124, + 311.2828474342823, + 324.68282186985016, + 306.32522766292095, + 304.36317430250347, + 303.3958900216967, + 317.65630829147995, + 306.8409450389445, + 324.5650869682431, + 309.6620352566242, + 304.5215054154396, + 312.0059276111424, + 310.0395795889199, + 301.53594774752855, + 320.0336879193783, + 302.2719704695046, + 305.6885840110481, + 304.18818958848715, + 302.5863753147423, + 313.3513630926609, + 306.7247673198581, + 303.6721437573433, + 306.2193002253771, + 300.7574706673622, + 306.412752777338, + 307.8787133060396, + 302.5957855284214, + 306.2483223862946, + 304.98428260535, + 315.03293542563915, + 319.16884195804596, + 324.3499074354768, + 304.5769556313753, + 303.333688467741, + 330.07860244065523, + 305.5630673468113, + 307.739051528275, + 308.41663098335266, + 302.68500528112054, + 311.7156969681382, + 301.8629413768649, + 300.5253996439278, + 302.1389402747154, + 304.8314268514514, + 319.5655890200287, + 301.297359585762, + 304.92840237915516, + 305.7231123447418, + 312.46493224427104, + 312.2173593379557, + 300.7697477787733, + 301.10112156160176, + 304.79108737409115, + 302.61148708313704, + 307.3847776502371, + 308.3846056982875, + 305.4801899846643, + 300.73498694226146, + 311.3494598045945, + 320.94667924940586, + 302.9320681542158, + 300.4856059551239, + 309.6934868693352, + 329.4870241135359, + 304.93013755977154, + 303.8003653883934, + 305.06832199543715, + 303.4164666570723, + 301.62716563791037, + 330.07794434577227, + 304.0054351016879, + 320.2763819023967, + 304.551359154284, + 305.23579037189484, + 312.8562037348747, + 316.07785473018885, + 301.1107275951654, + 304.1533147841692, + 301.8477858118713, + 305.6826579272747, + 303.47539127618074, + 307.29184606671333, + 312.9998562708497, + 314.09104221872985, + 317.6580601371825, + 317.9527306109667, + 306.14106686785817, + 303.7343417610973, + 303.78280015289783, + 309.16771826148033, + 324.66895070672035, + 322.5999365672469, + 315.35908878967166, + 318.2861232832074, + 314.6972575187683, + 303.79598017781973, + 311.98156302794814, + 308.79300759732723, + 324.8313086554408, + 303.6212759241462, + 310.10668321698904, + 390.4471935201436, + 301.40394181758165, + 302.32717974856496, + 316.5503579750657, + 316.9086611121893, + 338.6247718669474, + 307.4430177155882, + 310.103533744812, + 301.033785905689, + 307.00027161836624, + 305.4557391256094, + 355.7927412837744, + 304.3302711844444, + 302.64432433247566, + 303.719290189445, + 306.16899886727333, + 308.01072654128075, + 309.2272973638028, + 302.58398523926735, + 304.4053072631359, + 304.22671579010785, + 312.9278062954545, + 305.850132599473, + 301.0011961646378, + 321.735766723752, + 304.0032154247165, + 303.0930482521653, + 325.0465959236026, + 302.5329171009362, + 307.0066877603531, + 300.92788641154766, + 300.33583806455135, + 313.1748438626528, + 305.80177418887615, + 308.0861539915204, + 302.4713000059128, + 300.34476704895496, + 324.440179489553, + 355.48674846440554, + 308.8874383047223, + 304.98743609525263, + 317.54651168733835, + 301.7688944414258, + 301.8796388581395, + 305.51008577644825, + 301.0013078376651, + 300.92451380193233, + 330.0164692699909, + 324.03000289946795, + 301.92059979587793, + 307.4955022111535, + 308.60691671073437, + 309.35624971985817, + 331.1549145281315, + 305.39363906905055, + 303.88292100280523, + 304.45759831368923, + 300.94548116996884, + 302.5308596845716, + 321.07769080996513, + 312.543302686885, + 302.2087302058935, + 319.20399725437164, + 301.40727381035686, + 343.52561873197556, + 301.81311006844044, + 306.2920262347907, + 303.6272410713136, + 307.45240877754986, + 301.23457181081176, + 300.87184763513505, + 307.2865303941071, + 304.32395392656326, + 317.40111666172743, + 305.5559333488345, + 309.6027821712196, + 314.15726569108665, + 301.0531389005482, + 327.76266853511333, + 319.05699272453785, + 306.1797179952264, + 305.13800655305386, + 302.5431255698204, + 302.01897882670164, + 310.64781208336353, + 317.84409330785275, + 302.10113141685724, + 310.08145274966955, + 305.6400693692267, + 332.53660161420703, + 301.8834837973118, + 306.0205529034138, + 304.75184658169746, + 314.6145281996578, + 304.10610700026155, + 306.39644754864275, + 306.61554829776287, + 302.02296459674835, + 312.0476658307016, + 309.9997338652611, + 308.4891072958708, + 303.2959621399641, + 311.4983518384397, + 303.0792428404093, + 302.2464709803462, + 303.51958329975605, + 304.02076311782, + 309.892512595281, + 304.98033924400806, + 301.7113022916019, + 309.2686569932848, + 324.7596801072359, + 307.7220733743161, + 307.8959732372314, + 304.96316339820623, + 314.0815194621682, + 304.90459344536066, + 302.52530210092664, + 315.17060285806656, + 327.1596266105771, + 305.59307914972305, + 383.1574402526021, + 307.11239494010806, + 308.22053112089634, + 310.13135302066803, + 305.6002514678985, + 304.08982388675213, + 302.4169487655163, + 303.67479521781206, + 301.5524008870125, + 307.1019128449261, + 332.62803015112877, + 317.36856375075877, + 327.6759064309299, + 324.087380964309, + 303.2707090396434, + 302.41032239049673, + 303.8325240481645, + 383.294171737507, + 312.4441491290927, + 313.67767118662596, + 306.50492732971907, + 359.16827846318483, + 301.6389631330967, + 303.48647582903504, + 301.3918741121888, + 306.2442716732621, + 305.9613557457924, + 342.7848983332515, + 301.1187376566231, + 324.73274233937263, + 305.0351773779839, + 303.03740184754133, + 306.7474241666496, + 316.19954638555646, + 309.47579418309033, + 301.9581503123045, + 317.0308855064213, + 302.4988844320178, + 303.06296876072884, + 305.6758297756314, + 318.3446547091007, + 323.4769401624799, + 301.04441510885954, + 303.90157759189606, + 302.2645110487938, + 309.1441815327853, + 304.71314960718155, + 310.7297327928245, + 307.25678601302207, + 301.4000419136137, + 305.1277209147811, + 307.0206494182348, + 301.5892664119601, + 300.7265135589987, + 300.78658935427666, + 306.27139542996883, + 301.5818471312523, + 300.69814086705446, + 302.4556661210954, + 307.30155059695244, + 304.7523867543787, + 302.5007090345025, + 309.50221590697765, + 305.9031295403838, + 309.14967634528875, + 303.9812715649605, + 324.9239650145173, + 309.4499273709953, + 302.84742671251297, + 317.1700249016285, + 303.81750386953354, + 302.17607967182994, + 387.1223910972476, + 300.187367901206, + 305.0409484654665, + 304.0976150408387, + 301.0095955878496, + 345.4745816215873, + 320.237018302083, + 302.5601768270135, + 373.1199931167066, + 310.6114449072629, + 306.3617188334465, + 308.5561199374497, + 305.6080809570849, + 309.40314649417996, + 312.09554286301136, + 355.71907253563404, + 306.33022434450686, + 327.20484017953277, + 309.7723688483238, + 302.3453082963824, + 324.8620627336204, + 306.1858434602618, + 303.0629298314452, + 315.5216787867248, + 304.59329249337316, + 304.2117788940668, + 338.7494348064065, + 316.3869884349406, + 304.8407870605588, + 304.58208937197924, + 316.05013486370444, + 304.91380456089973, + 337.60938081145287, + 317.36523781344295, + 316.16326788812876, + 302.15658527612686, + 301.3787428662181, + 304.05880315601826, + 304.6617508083582, + 309.1352735348046, + 303.6342585273087, + 312.00438636541367, + 301.27583948895335, + 319.47812139987946, + 305.2735810279846, + 311.5482162758708, + 308.96267798542976, + 301.5280971862376, + 306.99156446382403, + 305.812621910125, + 308.149666659534, + 356.48018569499254, + 308.7820308804512, + 302.46506997197866, + 339.345133215189, + 305.3444986976683, + 307.1441413462162, + 313.44009565375745, + 313.3792100995779, + 303.07921249233186, + 313.27459522150457, + 309.36460990831256, + 306.2908189371228, + 364.1704940497875, + 306.45827417075634, + 302.65153167396784, + 302.02577409148216, + 302.4181682690978, + 308.68043649196625, + 302.8613541871309, + 303.088561039418, + 300.91218331456184, + 306.61940409243107, + 306.5809158682823, + 303.62207842990756, + 302.60430931672454, + 309.60322066396475, + 300.8484006077051, + 303.59882981330156, + 309.71548297815025, + 314.0493200644851, + 303.51928459107876, + 301.94042524695396, + 330.1469601672143, + 328.3347791954875, + 311.19217440858483, + 317.84961300343275, + 331.7785172313452, + 305.4757445976138, + 321.27897246927023, + 329.59184963814914, + 302.1961759328842, + 313.84188470989466, + 302.675790309906, + 301.21773982420564, + 312.225245134905, + 303.6410063505173, + 315.98333010450006, + 308.5635003298521, + 303.5942117869854, + 301.81707180291414, + 301.4828546792269, + 302.18523750826716, + 311.2283961214125, + 301.9808062463999, + 341.5020560771227, + 310.5673009008169, + 316.43594309687614, + 307.9770670682192, + 300.88360687345266, + 302.9906699601561, + 313.4487159177661, + 301.37568698078394, + 302.12157352268696, + 301.77747601270676, + 306.07774893939495, + 318.35676731169224, + 309.07338873296976, + 305.1936987116933, + 301.07176626473665, + 320.0796536374837, + 310.0536976531148, + 301.7717758715153, + 303.28348387777805, + 322.314516287297, + 306.21760460175574, + 303.0902447514236, + 312.29873515293, + 332.42639395594597, + 302.5675376020372, + 307.88526656478643, + 304.28387899696827, + 307.4441485106945, + 315.2391252592206, + 306.9305648058653, + 301.7034374624491, + 308.26774050295353, + 302.12949296832085, + 301.1712192259729, + 314.5057265236974, + 310.04280196130276, + 305.16358523629606, + 327.56852201372385, + 308.03336414694786, + 309.22139962390065, + 339.91499583795667, + 305.6130915209651, + 307.05216078832746, + 305.55480628460646, + 303.48074443638325, + 305.74048380739987, + 303.25200375914574, + 315.8143259882927, + 301.5919612944126, + 301.5313700735569, + 311.6865478157997, + 303.07661583274603, + 335.88165310025215, + 333.99215422198176, + 341.95818071067333, + 304.23222829401493, + 305.55435114353895, + 301.99313723295927, + 307.2762938849628, + 315.49121006578207, + 319.9850428402424, + 315.9164036847651, + 305.1414620876312, + 303.4546242468059, + 312.7429337054491, + 301.717062395066, + 303.663547385484, + 314.75329203903675, + 309.4382633715868, + 304.94292244128883, + 315.45983795821667, + 309.7841480374336, + 312.07229944318533, + 305.37080615758896, + 311.3647485971451, + 312.75023341551423, + 304.75047782994807, + 300.6951690129936, + 303.5721822977066, + 318.9675275757909, + 317.7947913110256, + 300.7537003401667, + 302.9019231237471, + 300.89437671750784, + 315.0961852669716, + 301.0121582224965, + 304.66771391779184, + 306.91689162887633, + 305.22415965236723, + 306.7640964835882, + 300.438001409173, + 301.1628896892071, + 303.50008678250015, + 301.8961895182729, + 332.79752468317747, + 314.9213749282062, + 302.85106809064746, + 312.0784900486469, + 315.3594433516264, + 301.5285062119365, + 310.5100095216185, + 301.8781613409519, + 306.5726331323385, + 332.9548411462456, + 303.6994644999504, + 308.1159942597151, + 302.5424820724875, + 305.44883278757334, + 303.8959847763181, + 304.6684123426676, + 309.87920655310154, + 321.6644621118903, + 308.7693171352148, + 304.4330673068762, + 305.43917015194893, + 321.0503023862839, + 306.3726083934307, + 337.973957747221, + 321.42243253067136, + 303.84762644581497, + 342.8620675839484, + 302.23708571493626, + 305.5549542699009, + 301.6629455536604, + 324.6782632917166, + 302.27287693321705, + 340.5786154791713, + 307.3627738058567, + 311.30922282487154, + 301.6995503678918, + 311.82569961994886, + 314.5465037599206, + 303.05201084911823, + 306.28988713026047, + 340.3029321208596, + 306.26388952322304, + 312.34828966856, + 305.7711961604655, + 303.5506250113249, + 321.1650073081255, + 301.1680513769388, + 311.7736352458596, + 304.66596569120884, + 303.2435678169131, + 303.72125827521086, + 311.45533516444266, + 303.15061378851533, + 311.45889424160123, + 317.920526586473, + 312.1693257242441, + 300.5518902018666, + 305.49713457748294, + 301.2899262532592, + 302.11042806506157, + 304.06759673170745, + 308.9236156642437, + 306.133691214025, + 308.1469499245286, + 309.3135549426079, + 304.0927278622985, + 322.0557620674372, + 310.37403032928705, + 305.2717886418104, + 309.2484403811395, + 316.7018162366003, + 303.7712428160012, + 302.82127041369677, + 339.88095620274544, + 305.4483678676188, + 307.065474210307, + 301.24367336928844, + 303.33573476970196, + 332.7388571202755, + 305.76461014151573, + 302.9339645989239, + 308.88146033138037, + 307.6727576851845, + 301.3677311241627, + 303.1975903213024, + 305.4627691693604, + 311.9858607798815, + 330.7667771279812, + 306.95447386056185, + 316.7159267887473, + 305.7927678376436, + 320.57259564101696, + 311.29482022486627, + 301.35912519693375, + 302.63031098246574, + 305.1305563375354, + 301.8341988697648, + 326.70030053704977, + 315.77140568196774, + 308.09142203629017, + 318.46660140901804, + 321.77578005194664, + 318.2654233239591, + 324.40515848994255, + 304.446439858526, + 300.7397479861975, + 340.1774071510881, + 300.8868776652962, + 328.00225123018026, + 300.6274781227112, + 303.7716312855482, + 306.436478972435, + 305.9726163223386, + 305.146352365613, + 316.61103255674243, + 324.3817333057523, + 303.4732793420553, + 301.7861685156822, + 323.7760086655617, + 318.4486829005182, + 300.2123687528074, + 301.46378145366907, + 301.7640539482236, + 304.2362351100892, + 326.1698898524046, + 308.87413341365755, + 304.89690155535936, + 320.03443672321737, + 300.9087633956224, + 304.67533295601606, + 307.46317426115274, + 324.1203073784709, + 302.757764801383, + 382.79480108618736, + 324.6035650148988, + 303.6116211693734, + 309.70361069589853, + 306.8790203258395, + 308.23304937779903, + 301.1949695535004, + 304.16515084542334, + 308.3473913371563, + 304.79411429166794, + 310.25552190095186, + 301.55041848123074, + 302.1290051471442, + 307.67014714330435, + 300.3255782723427, + 305.2841533869505, + 309.65088154375553, + 310.5534200929105, + 308.5132071804255, + 310.9025877788663, + 309.7701136171818, + 304.98444867134094, + 348.0558537244797, + 305.3687424957752, + 313.6628130301833, + 319.583089068532, + 312.9610427543521, + 311.19719759374857, + 316.7905776053667, + 310.5006276369095, + 302.7078384384513, + 306.0600184686482, + 305.54721038788557, + 308.9606507215649, + 303.0505183637142, + 313.3748362734914, + 311.29958663880825, + 313.4373806938529, + 301.3445185124874, + 324.92408625781536, + 309.77276431396604, + 305.90033645555377, + 341.20380748063326, + 311.56037433072925, + 315.6066750213504, + 314.12771118432283, + 312.25866302102804, + 304.4466853365302, + 304.69186486303806, + 302.38096065446734, + 304.0568100064993, + 308.82150238379836, + 302.1706743314862, + 307.68491506949067, + 304.33473129943013, + 302.1377415060997, + 305.39050218090415, + 325.67842145450413, + 306.27879579365253, + 316.4812588393688, + 316.91919239610434, + 301.0618487559259, + 301.38374834507704, + 313.92598220333457, + 308.19221929833293, + 301.0112924799323, + 314.8371088653803, + 309.013961404562, + 302.46294739842415, + 303.96458788216114, + 304.6997568961233, + 301.0760717317462, + 318.38068445026875, + 311.1833598166704, + 309.26099948585033, + 379.9419914186001, + 307.62471289746463, + 305.40915387123823, + 302.5075035095215, + 312.005835108459, + 348.74297350272536, + 314.04565681517124, + 304.13325905799866, + 302.57874093204737, + 306.86363288760185, + 305.86618577875197, + 314.35718947276473, + 306.27010525763035, + 302.0418300181627, + 301.11282795108855, + 318.7322600334883, + 302.77300187945366, + 311.73570435494184, + 320.17958878725767, + 302.80662417411804, + 304.01972756534815, + 333.72439390420914, + 302.3730187471956, + 307.5517929662019, + 307.0710008479655, + 339.7386548817158, + 301.74035215750337, + 304.2111099809408, + 308.48775297775865, + 307.1943747214973, + 315.1181789636612, + 301.50811529159546, + 300.67045898362994, + 314.5320086851716, + 304.67058854177594, + 311.13495629280806, + 310.0005017518997, + 328.73236437886953, + 306.14826046302915, + 306.3881344050169, + 304.85877007991076, + 328.3628237210214, + 328.1459126919508, + 301.5199674516916, + 310.12014849483967, + 302.70635092258453, + 314.5403644219041, + 325.6980250328779, + 311.7943469658494, + 312.0032363217324, + 307.57736561074853, + 310.2516261935234, + 319.6832871437073, + 300.51390566676855, + 316.50363602116704, + 301.41954876482487, + 305.5731855854392, + 302.7573882341385, + 305.3785127401352, + 304.94937870278955, + 322.95357359200716, + 338.36372508853674, + 308.66714437678456, + 312.1780432239175, + 302.3916624188423, + 302.15736070275307, + 302.9140687920153, + 305.2457533404231, + 302.4419820457697, + 324.25284564495087, + 306.5971909314394, + 317.60798977315426, + 307.17061963677406, + 301.7769195139408, + 310.4095114469528, + 304.1166995987296, + 306.1932636965066, + 306.8449235446751, + 313.05469766259193, + 300.4762986600399, + 309.98027285188437, + 373.0799850784242, + 301.53840260207653, + 306.2895575873554, + 383.06634176149964, + 310.8300702124834, + 304.1513087451458, + 305.60910652577877, + 303.8895394131541, + 320.4108319282532, + 305.5951352957636, + 306.720003772527, + 302.9898698758334, + 308.9636351764202, + 306.26188768446445, + 307.3727677948773, + 310.55907993763685, + 304.90298916213214, + 315.2444198131561, + 316.8869545869529, + 301.6217900775373, + 325.07079872488976, + 314.6906509138644, + 313.28933880105615, + 304.0738300997764, + 340.7418527379632, + 314.9175963588059, + 301.7724255435169, + 311.1936928331852, + 303.22210620343685, + 300.2178050428629, + 308.3156466782093, + 301.42782170698047, + 323.93298925459385, + 307.8360353112221, + 300.793185479939, + 302.5279508382082, + 310.1078661624342, + 310.2442993298173, + 305.745303504169, + 301.5995541587472, + 303.9008490294218, + 317.7705310434103, + 310.87209296785295, + 303.1525960341096, + 301.18063829652965, + 312.85425335913897, + 305.9670836776495, + 301.8729877024889, + 302.28174552321434, + 306.3993478268385, + 301.6225157380104, + 311.55732447467744, + 301.8774871118367, + 310.53846668452024, + 300.88565021008253, + 317.05901619791985, + 309.3358341753483, + 307.8864065557718, + 303.8129284232855, + 317.3442627862096, + 309.16411838680506, + 314.53422712534666, + 311.1222358494997, + 303.69074119627476, + 307.95500879362226, + 300.8125609084964, + 301.28241741657257, + 301.52617237716913, + 301.18142825365067, + 318.0102746579796, + 300.25835421308875, + 301.56866758316755, + 309.46380123496056, + 301.7909340187907, + 300.9925622716546, + 317.29889922589064, + 311.3588969260454, + 310.2553479988128, + 307.441542442888, + 322.5628523658961, + 306.2037848494947, + 301.45694763958454, + 300.6918491143733, + 360.0218336954713, + 301.33888264372945, + 307.65656984597445, + 304.7286942768842, + 304.12026278302073, + 305.6107831597328, + 303.9281861111522, + 304.36181173473597, + 301.330088712275, + 307.2039493918419, + 308.1531788036227, + 301.4950467888266, + 309.1437619253993, + 303.52078964188695, + 314.87205707654357, + 300.81029618903995, + 310.26095551997423, + 317.5118254739791, + 304.3867094889283, + 309.8212481960654, + 311.544443231076, + 304.9261712022126, + 332.4378696382046, + 302.82097962498665, + 310.3950091600418, + 307.4630215615034, + 302.0810473933816, + 314.0050924383104, + 307.3913880623877, + 301.53572629392147, + 301.73347955569625, + 346.7918800711632, + 301.83704908564687, + 301.4019815325737, + 301.74955835938454, + 304.4496898241341, + 325.5918572023511, + 304.0315329693258, + 305.98841660656035, + 304.7348581124097, + 302.12120708823204, + 301.63818433880806, + 308.108238004148, + 303.6187047660351, + 325.8717697262764, + 305.91800431907177, + 310.06853325664997, + 319.49967935681343, + 301.3301938176155, + 309.82151456177235, + 301.08082470297813, + 303.57061613351107, + 303.39206202700734, + 306.87191685289145, + 302.45705020427704, + 312.0074314698577, + 300.6146572679281, + 301.850248709321, + 306.51955238729715, + 308.3053333684802, + 307.5676634758711, + 305.07663160562515, + 305.47360269352794, + 305.4339646603912, + 302.8038182258606, + 302.3882053755224, + 302.2241881042719, + 352.4271836951375, + 322.620147831738, + 302.18323818966746, + 314.89201368391514, + 312.6520765423775, + 303.9405604749918, + 307.69682447984815, + 300.4858789667487, + 305.57174115628004, + 301.9889161661267, + 314.24793845415115, + 330.9657644145191, + 325.5475197285414, + 301.9290997441858, + 306.0482601225376, + 309.8561720177531, + 328.2341633476317, + 302.3855937756598, + 310.86770812422037, + 302.5521267801523, + 304.1732379645109, + 302.4282428994775, + 307.91569197177887, + 304.0482217371464, + 307.5807719640434, + 306.31901749596, + 311.2660409770906, + 303.87168440781534, + 332.3708840236068, + 317.2510171458125, + 305.51497404649854, + 302.9702105149627, + 303.0128096565604, + 307.43880484625697, + 394.57082077115774, + 311.79714415967464, + 307.932954095304, + 314.4534704387188, + 307.0114815682173, + 329.7028080224991, + 309.49918186850846, + 304.8040414005518, + 313.8794565051794, + 300.6071197837591, + 307.491631180048, + 304.6385824587196, + 318.92896503955126, + 303.9200680796057, + 318.0446713604033, + 330.6052198652178, + 315.32616559416056, + 304.0269773453474, + 306.6422614827752, + 302.2182627469301, + 300.86596566811204, + 301.1273443624377, + 306.4100236594677, + 305.4537945985794, + 300.5071721896529, + 304.4421207103878, + 306.0829806625843, + 302.8812338113785, + 304.0564755946398, + 302.17497257888317, + 338.28516835719347, + 311.89722926542163, + 300.4389879181981, + 302.03866170346737, + 305.9649024605751, + 319.5674938261509, + 304.2657602131367, + 312.17362286522985, + 302.1493813544512, + 303.51985753700137, + 352.4891965724528, + 300.8494439162314, + 302.40629597753286, + 301.7401956021786, + 305.0626015663147, + 301.79256857186556, + 362.5175630003214, + 306.0989959836006, + 314.817803312093, + 304.86686428263783, + 305.27227511256933, + 312.82864312827587, + 316.6156578604132, + 311.4342073649168, + 302.83792032301426, + 302.01408506929874, + 309.8896180540323, + 311.7327741011977, + 306.6718678995967, + 309.78561275452375, + 302.62159667909145, + 310.7800527755171, + 312.1457167342305, + 307.5073139593005, + 301.01621511764824, + 303.4536429531872, + 308.63544983416796, + 306.8666833601892, + 310.65895630419254, + 304.7684311121702, + 307.6741800121963, + 306.4178984500468, + 305.73297587037086, + 304.22921857610345, + 311.54970326274633, + 301.48844607546926, + 307.9878662005067, + 305.688070461154, + 307.0181584209204, + 303.8576133996248, + 323.73157635703683, + 362.56654337234795, + 313.2259223982692, + 320.99307759292424, + 306.25909389927983, + 310.3295957222581, + 302.4391274526715, + 315.2719919271767, + 305.75615406036377, + 323.79556161910295, + 317.79525369405746, + 304.68787083029747, + 321.29436871409416, + 300.34603165090084, + 302.43582517653704, + 321.98294635489583, + 311.6465219371021, + 305.7870761118829, + 311.4882613234222, + 301.31243969500065, + 305.56722738593817, + 309.13720516860485, + 354.7498469054699, + 302.5416578166187, + 304.78436959162354, + 301.96495577692986, + 304.78012919425964, + 300.3758584037423, + 319.21245021373034, + 316.1637724041939, + 313.243137171492, + 302.031801763922, + 302.2887104302645, + 325.8930905032903, + 320.31136471778154, + 304.1354659534991, + 309.5868772044778, + 310.20443911105394, + 301.740345466882, + 302.3676568977535, + 332.73059602826834, + 310.29389487951994, + 381.36859188973904, + 326.43873016163707, + 303.6597589030862, + 325.797410659492, + 309.8873588517308, + 303.709018483758, + 359.67850903607905, + 303.05080213584006, + 303.11412139236927, + 311.81317358091474, + 303.1212722659111, + 316.38751116394997, + 315.0825022421777, + 365.75102692097425, + 301.9778012782335, + 308.4924771320075, + 311.10472245514393, + 307.0704229064286, + 314.9109225310385, + 344.41637347638607, + 305.86354292184114, + 302.1084552966058, + 305.9264240786433, + 351.47055050730705, + 312.746538028121, + 308.28303238376975, + 301.5321675464511, + 348.3575389813632, + 370.6760093681514, + 304.59443438611925, + 324.7283792793751, + 303.79193119704723, + 303.4510171562433, + 303.82898215577006, + 302.55642887204885, + 302.46507063508034, + 307.02652084827423, + 302.9075605273247, + 304.36183293908834, + 306.1642866060138, + 336.8192455880344, + 311.32811200618744, + 311.192996814847, + 357.65127585828304, + 302.1276033297181, + 340.5977222658694, + 301.9085162729025, + 302.6788491681218, + 309.44718270003796, + 304.257659798488, + 310.49861846119165, + 301.3939879387617, + 306.472926042974, + 328.4395925998688, + 305.1078567504883, + 306.4206129424274, + 311.08925841003656, + 314.5548060014844, + 325.08986112847924, + 304.8785474821925, + 316.5843650326133, + 334.3630006108433, + 304.3376620039344, + 318.5466873049736, + 305.4403547421098, + 305.10647743940353, + 302.55236621946096, + 302.0523450374603, + 311.7256025746465, + 303.9186339825392, + 301.5720275193453, + 306.10963103175163, + 372.99747467041016, + 303.42159436643124, + 312.78097273781896, + 316.6987701486796, + 302.5413580387831, + 303.3038756251335, + 333.66108516044915, + 302.5697359573096, + 307.38834760710597, + 359.1032387968153, + 340.54097525030375, + 302.80044359155, + 338.688713632524, + 306.8284249007702, + 304.28049659729004, + 309.6458916775882, + 310.4380480553955, + 303.6302991658449, + 308.86738684773445, + 305.5912030041218, + 312.42925463989377, + 309.5524221248925, + 301.9075758755207, + 308.5205889940262, + 390.5102948471904, + 305.60617647506297, + 301.29590667039156, + 320.1003277152777, + 390.30191192030907, + 310.8449557721615, + 327.60614289715886, + 354.7238994203508, + 316.0730481594801, + 308.7368136793375, + 395.68229046836495, + 301.6363040134311, + 312.9402892589569, + 308.63792983442545, + 355.344461992383, + 333.09186521172523, + 312.6343961805105, + 311.5504234749824, + 344.0327010322362, + 311.3591677621007, + 309.6536748409271, + 373.74866595864296, + 302.28638753294945, + 306.28987008705735, + 306.0132203325629, + 303.9230962842703, + 306.092622384429, + 324.12727611884475, + 310.3570240288973, + 322.29764092713594, + 311.64632387831807, + 307.7469764947891, + 318.23156049102545, + 318.4284760579467, + 314.27920220047235, + 324.1082094013691, + 307.08562073111534, + 302.74405024945736, + 306.5301790833473, + 334.1974005512893, + 321.26703859865665, + 301.20642425864935, + 301.29803720116615, + 303.6945947483182, + 304.6560820490122, + 307.6056440025568, + 311.0322267226875, + 301.48321130126715, + 302.1559426523745, + 303.08926515094936, + 303.0026221461594, + 306.8634887263179, + 308.80004700645804, + 313.7370115183294, + 302.82658910006285, + 300.81142052076757, + 304.2692522481084, + 313.98277947306633, + 318.1188143789768, + 327.84995165094733, + 300.8584012500942, + 322.60294495895505, + 351.43265339545906, + 311.25435073673725, + 399.1700655594468, + 302.8904755115509, + 304.72070083767176, + 312.1549221724272, + 306.7826898396015, + 303.43137395754457, + 303.00672241300344, + 342.3459893874824, + 302.42267040349543, + 303.5061776638031, + 309.61980114504695, + 309.7329857647419, + 311.9465411826968, + 311.96292111836374, + 307.90856334753335, + 308.18569729477167, + 306.97508050501347, + 308.00503262504935, + 369.29341688007116, + 356.1081372536719, + 308.5772354528308, + 373.7489254139364, + 304.5163408704102, + 307.64014767855406, + 309.553605183959, + 308.9904074817896, + 306.5161725357175, + 304.2505584023893, + 305.7062849998474, + 300.8017456885427, + 301.4363608658314, + 314.60452231764793, + 309.0727465674281, + 307.4719426780939, + 303.8672125339508, + 304.89371472783387, + 313.78027376532555, + 399.7153619453311, + 301.78062449395657, + 311.3115887641907, + 303.0897655710578, + 302.3827082812786, + 302.0236268118024, + 300.8654361963272, + 328.3866765201092, + 309.5513566285372, + 305.5089106671512, + 340.46980479359627, + 304.4516583234072, + 304.7320727929473, + 312.4667107053101, + 310.98710568621755, + 334.1236452534795, + 301.5248890556395, + 302.38151372782886, + 304.59551742859185, + 303.61308088712394, + 309.3108284007758, + 302.5983645096421, + 305.0749708712101, + 303.2991893738508, + 304.4897047802806, + 345.95231992565095, + 317.2268085293472, + 331.07037023454905, + 302.4047133028507, + 304.80498529970646, + 307.8610502332449, + 323.08659176528454, + 302.7642087228596, + 302.3427936192602, + 301.927097633481, + 355.09197398275137, + 326.22950987517834, + 309.7642298415303, + 303.50352519005537, + 336.76524578779936, + 301.512242782861, + 302.7820084169507, + 301.06769079715014, + 396.66342953778803, + 314.7353863045573, + 304.3256816640496, + 316.90869990363717, + 302.43455458432436, + 307.76430324465036, + 307.7606058418751, + 324.53732185810804, + 360.335979886353, + 316.5290347430855, + 302.51267363876104, + 315.7311837375164, + 302.8283832222223, + 303.1718745827675, + 302.8361946158111, + 305.3695691153407, + 354.39134856313467, + 311.73133914731443, + 305.99901821650565, + 304.5355021804571, + 302.942709825933, + 306.0382079035044, + 313.7206758707762, + 302.08463971316814, + 304.2431018203497, + 363.5900533609092, + 377.523376993835, + 302.337963744998, + 311.2266582362354, + 302.1808699928224, + 301.10806763358414, + 307.1373080313206, + 302.8209403604269, + 325.4849989041686, + 330.75146746635437, + 340.5169993452728, + 308.6870157700032, + 318.4641146399081, + 303.04329738020897, + 306.8913780450821, + 317.75606799311936, + 327.2480393871665, + 303.7333836108446, + 306.4186352789402, + 306.0529977567494, + 336.5291571095586, + 307.16937927901745, + 314.2825911305845, + 302.3251778334379, + 302.1275357231498, + 308.68492232076824, + 303.64045790582895, + 371.78760953247547, + 361.18819711357355, + 316.6461225003004, + 321.95242834836245, + 302.9018623717129, + 324.72312600165606, + 304.8789761438966, + 303.91928505152464, + 305.8494013994932, + 308.7392352819443, + 340.01018941402435, + 301.30981673300266, + 302.49847389757633, + 338.4310973286629, + 304.27325159683824, + 354.784050963819, + 312.7303124964237, + 373.65295853838325, + 360.5964304730296, + 306.58719270676374, + 310.1652040332556, + 333.0577655173838, + 351.2592051681131, + 347.3949205353856, + 306.9774073436856, + 303.54173600673676, + 317.2816324457526, + 303.2853067405522, + 315.82582354545593, + 303.85148101113737, + 324.88758669793606, + 301.1820498108864, + 313.12547758966684, + 305.88956408947706, + 310.9664124548435, + 305.87889981269836, + 301.8423732891679, + 305.6473080813885, + 302.95922266691923, + 302.1907644458115, + 355.6481486670673, + 302.4091388732195, + 301.4211438111961, + 308.1927165463567, + 307.6086550503969, + 302.55716724693775, + 302.47108486294746, + 302.31978114694357, + 332.24664014950395, + 302.3635336384177, + 301.25623565912247, + 303.13341141678393, + 304.6458437256515, + 303.1454141288996, + 347.861320361495, + 310.8792281113565, + 343.64715483784676, + 308.08076572418213, + 307.05942596681416, + 305.1063610985875, + 302.8256710190326, + 311.2535689547658, + 370.61057422310114, + 303.13151148334146, + 386.9374032393098, + 360.0233398042619, + 302.4165596291423, + 339.0728701185435, + 312.65518321841955, + 303.85362613014877, + 302.08075782842934, + 304.9798467308283, + 312.6797698363662, + 360.2711809054017, + 378.49351972155273, + 311.2463335469365, + 304.23582631349564, + 327.8443396613002, + 304.44545286521316, + 302.78723115101457, + 301.47642825730145, + 319.17677745223045, + 308.37403789535165, + 300.9249026235193, + 332.0970493517816, + 315.46974281966686, + 303.71979525871575, + 338.38093000650406, + 340.2684563063085, + 302.43116468191147, + 330.7162540629506, + 308.84585916250944, + 315.35083532705903, + 305.0456559509039, + 306.39210084080696, + 322.2584559172392, + 301.35858783870935, + 306.95425349101424, + 305.1545213237405, + 379.55931505560875, + 325.8458415251225, + 336.6945756226778, + 303.26562471315265 + ] + } + ], + "layout": { + "barmode": "overlay", + "hovermode": "x unified", + "shapes": [ + { + "line": { + "dash": "dash" + }, + "type": "line", + "x0": 300, + "x1": 300, + "xref": "x", + "y0": 0, + "y1": 1, + "yref": "paper" + } + ], + "template": { + "data": { + "bar": [ + { + "error_x": { + "color": "#2a3f5f" + }, + "error_y": { + "color": "#2a3f5f" + }, + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "bar" + } + ], + "barpolar": [ + { + "marker": { + "line": { + "color": "#E5ECF6", + "width": 0.5 + }, + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "barpolar" + } + ], + "carpet": [ + { + "aaxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "baxis": { + "endlinecolor": "#2a3f5f", + "gridcolor": "white", + "linecolor": "white", + "minorgridcolor": "white", + "startlinecolor": "#2a3f5f" + }, + "type": "carpet" + } + ], + "choropleth": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "choropleth" + } + ], + "contour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "contour" + } + ], + "contourcarpet": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "contourcarpet" + } + ], + "heatmap": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmap" + } + ], + "heatmapgl": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "heatmapgl" + } + ], + "histogram": [ + { + "marker": { + "pattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + } + }, + "type": "histogram" + } + ], + "histogram2d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2d" + } + ], + "histogram2dcontour": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "histogram2dcontour" + } + ], + "mesh3d": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "type": "mesh3d" + } + ], + "parcoords": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "parcoords" + } + ], + "pie": [ + { + "automargin": true, + "type": "pie" + } + ], + "scatter": [ + { + "fillpattern": { + "fillmode": "overlay", + "size": 10, + "solidity": 0.2 + }, + "type": "scatter" + } + ], + "scatter3d": [ + { + "line": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatter3d" + } + ], + "scattercarpet": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattercarpet" + } + ], + "scattergeo": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergeo" + } + ], + "scattergl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattergl" + } + ], + "scattermapbox": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scattermapbox" + } + ], + "scatterpolar": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolar" + } + ], + "scatterpolargl": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterpolargl" + } + ], + "scatterternary": [ + { + "marker": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "type": "scatterternary" + } + ], + "surface": [ + { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + }, + "colorscale": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "type": "surface" + } + ], + "table": [ + { + "cells": { + "fill": { + "color": "#EBF0F8" + }, + "line": { + "color": "white" + } + }, + "header": { + "fill": { + "color": "#C8D4E3" + }, + "line": { + "color": "white" + } + }, + "type": "table" + } + ] + }, + "layout": { + "annotationdefaults": { + "arrowcolor": "#2a3f5f", + "arrowhead": 0, + "arrowwidth": 1 + }, + "autotypenumbers": "strict", + "coloraxis": { + "colorbar": { + "outlinewidth": 0, + "ticks": "" + } + }, + "colorscale": { + "diverging": [ + [ + 0, + "#8e0152" + ], + [ + 0.1, + "#c51b7d" + ], + [ + 0.2, + "#de77ae" + ], + [ + 0.3, + "#f1b6da" + ], + [ + 0.4, + "#fde0ef" + ], + [ + 0.5, + "#f7f7f7" + ], + [ + 0.6, + "#e6f5d0" + ], + [ + 0.7, + "#b8e186" + ], + [ + 0.8, + "#7fbc41" + ], + [ + 0.9, + "#4d9221" + ], + [ + 1, + "#276419" + ] + ], + "sequential": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ], + "sequentialminus": [ + [ + 0, + "#0d0887" + ], + [ + 0.1111111111111111, + "#46039f" + ], + [ + 0.2222222222222222, + "#7201a8" + ], + [ + 0.3333333333333333, + "#9c179e" + ], + [ + 0.4444444444444444, + "#bd3786" + ], + [ + 0.5555555555555556, + "#d8576b" + ], + [ + 0.6666666666666666, + "#ed7953" + ], + [ + 0.7777777777777778, + "#fb9f3a" + ], + [ + 0.8888888888888888, + "#fdca26" + ], + [ + 1, + "#f0f921" + ] + ] + }, + "colorway": [ + "#636efa", + "#EF553B", + "#00cc96", + "#ab63fa", + "#FFA15A", + "#19d3f3", + "#FF6692", + "#B6E880", + "#FF97FF", + "#FECB52" + ], + "font": { + "color": "#2a3f5f" + }, + "geo": { + "bgcolor": "white", + "lakecolor": "white", + "landcolor": "#E5ECF6", + "showlakes": true, + "showland": true, + "subunitcolor": "white" + }, + "hoverlabel": { + "align": "left" + }, + "hovermode": "closest", + "mapbox": { + "style": "light" + }, + "paper_bgcolor": "white", + "plot_bgcolor": "#E5ECF6", + "polar": { + "angularaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "radialaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "scene": { + "xaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "yaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + }, + "zaxis": { + "backgroundcolor": "#E5ECF6", + "gridcolor": "white", + "gridwidth": 2, + "linecolor": "white", + "showbackground": true, + "ticks": "", + "zerolinecolor": "white" + } + }, + "shapedefaults": { + "line": { + "color": "#2a3f5f" + } + }, + "ternary": { + "aaxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "baxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + }, + "bgcolor": "#E5ECF6", + "caxis": { + "gridcolor": "white", + "linecolor": "white", + "ticks": "" + } + }, + "title": { + "x": 0.05 + }, + "xaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + }, + "yaxis": { + "automargin": true, + "gridcolor": "white", + "linecolor": "white", + "ticks": "", + "title": { + "standoff": 15 + }, + "zerolinecolor": "white", + "zerolinewidth": 2 + } + } + }, + "title": { + "text": "Distribution of distance since last refuel" + }, + "xaxis": { + "title": { + "text": "Distance since last refuel (miles)" + } + }, + "yaxis": { + "title": { + "text": "Share" + } + } + } + } + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "OUTPUT_ROOT = Path(r\"C:\\projects\\sandag\\av_tnc_routing\\av_run_dir\\outputs\\tnc_routing_test\")\n", + "timebin_scenarios = [\"base\", \"timebin_5\", \"timebin_15\"]\n", + "\n", + "refuel_dist = {}\n", + "\n", + "for scen in timebin_scenarios:\n", + " csv_path = OUTPUT_ROOT / scen / \"output_tnc_vehicle_trips.csv\"\n", + " df = pd.read_csv(csv_path)\n", + "\n", + " df[\"OD_dist\"] = pd.to_numeric(df[\"OD_dist\"], errors=\"coerce\").fillna(0.0)\n", + " df[\"trip_type\"] = df[\"trip_type\"].astype(str).str.lower()\n", + " df = df.sort_values([\"vehicle_id\", \"vehicle_trip_id\"], kind=\"mergesort\")\n", + "\n", + " pieces = []\n", + " for vid, sub in df.groupby(\"vehicle_id\", sort=False):\n", + " od = sub[\"OD_dist\"]\n", + " cum = od.cumsum()\n", + " is_ref = sub[\"trip_type\"].eq(\"refuel\")\n", + " if not is_ref.any():\n", + " continue\n", + " cum_at_refuel = cum.where(is_ref)\n", + " prev_cum_at_refuel = cum_at_refuel.shift().ffill().fillna(0.0)\n", + " dist_since_last = cum - prev_cum_at_refuel\n", + "\n", + " out = sub.loc[is_ref, [\"vehicle_id\", \"vehicle_trip_id\"]].copy()\n", + " out[\"dist_since_last_refuel\"] = dist_since_last[is_ref].values\n", + " pieces.append(out)\n", + "\n", + " if pieces:\n", + " refuel_dist[scen] = pd.concat(pieces, ignore_index=True)\n", + " else:\n", + " refuel_dist[scen] = pd.DataFrame(\n", + " columns=[\"vehicle_id\", \"vehicle_trip_id\", \"dist_since_last_refuel\"]\n", + " )\n", + "\n", + "fig = go.Figure()\n", + "\n", + "for scen in timebin_scenarios:\n", + " d = refuel_dist[scen][\"dist_since_last_refuel\"].astype(float)\n", + " d = d[d > 0]\n", + " if d.empty:\n", + " continue\n", + "\n", + " fig.add_trace(\n", + " go.Histogram(\n", + " x=d,\n", + " nbinsx=40,\n", + " name=scen,\n", + " opacity=0.5,\n", + " histnorm=\"probability\",\n", + " hovertemplate=(\n", + " f\"Scenario: {scen}
\"\n", + " \"Dist since last refuel: %{x:,.1f}
\"\n", + " \"Bin share: %{y:.3f}\"\n", + " ),\n", + " )\n", + " )\n", + "\n", + "fig.update_layout(\n", + " barmode=\"overlay\",\n", + " title=\"Distribution of distance since last refuel\",\n", + " xaxis_title=\"Distance since last refuel (miles)\",\n", + " yaxis_title=\"Share\",\n", + " hovermode=\"x unified\",\n", + ")\n", + "\n", + "fig.add_shape(\n", + " type=\"line\",\n", + " x0=300,\n", + " x1=300,\n", + " y0=0,\n", + " y1=1,\n", + " xref=\"x\",\n", + " yref=\"paper\",\n", + " line=dict(dash=\"dash\"),\n", + ")\n", + "\n", + "fig.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing.py b/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing.py new file mode 100644 index 000000000..8420248c3 --- /dev/null +++ b/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing.py @@ -0,0 +1,2008 @@ +""" +Taxi/TNC Vehicle Routing Simulation + +Routes taxi and TNC (Transportation Network Company) trips from ActivitySim +person trip outputs to generate vehicle-level trip tables. The simulation: + +- Pools compatible shared-ride trips based on origin/destination proximity +- Matches trips to available vehicles or creates new vehicles as needed +- Generates vehicle trip legs with deadhead, pickup, and dropoff segments +- Handles vehicle refueling based on distance traveled + +Usage +----- + python taxi_tnc_routing.py [--settings ] + +Arguments +--------- + project_dir : str + Path to the project directory. All relative paths in the settings + YAML file (asim_output_dir, skim_dir, output_dir) are resolved + relative to this directory. + + --settings : str, optional + Path to the settings YAML file (default: taxi_tnc_routing_settings.yaml) + +Examples +-------- + python taxi_tnc_routing.py /path/to/project + python taxi_tnc_routing.py C:/models/scenario1 --settings custom_settings.yaml +""" + +import argparse +import logging +import os +import time + +import numpy as np +import openmatrix as omx +import pandas as pd +import yaml +from pydantic import BaseModel, ValidationError, model_validator + +logger = logging.getLogger(__name__) + + +class TaxiTNCSettings(BaseModel): + """ + Taxi / TNC route choice settings + """ + # path to activitysim output folder with trip data + asim_output_dir: str = "output" + asim_demand_files: list = [ + "airport.CBX\\final_cbxtrips", + "airport.SAN\\final_santrips", + "resident\\final_trips", + "visitor\\final_trips", + "crossborder\\final_trips", + ] + # path to landuse file (relative to asim_output_dir) + asim_landuse_file: str = "resident\\final_land_use" + + # path to folder with skim data + skim_dir: str = "output\\skims" + # name of skim matrix in OMX file minus time period suffix + skim_time_core: str = "HOV2_H_TIME" + skim_dist_core: str = "HOV2_H_DIST" + skim_periods: list = ["EA", "AM", "MD", "PM", "EV"] # time periods to process + periods: list = [0, 6, 12, 25, 32, 48] + skim_files: list = [ + "traffic_skims_EA.omx", + "traffic_skims_AM.omx", + "traffic_skims_MD.omx", + "traffic_skims_PM.omx", + "traffic_skims_EV.omx", + ] + + # output folder for results + output_dir: str = "output\\tnc_routing" + + # modes for shared and single occupancy TNC / taxi trips + shared_tnc_modes: list = ["TNC_SHARED"] + single_tnc_modes: list = [ + "TNC_SINGLE", + "TAXI", + "RIDEHAIL_LOC1", + "RIDEHAIL_LOC2", + "TAXI_LOC1", + "TAXI_LOC2", + ] + + # time bin size (in mins) + time_bin_size: int = 10 + + # buffer size comparing origins and destinations for potential pooling (in mins) + pooling_buffer: int = 10 + # batch size for matching pooled trips together and matching trips to vehicles + pair_batch_size: int = 6000 + + # maximum allowed detour time for pooled trips (in mins) + max_detour: int = 15 + + # maximum vehicle occupancy per trip record + max_vehicle_occupancy: int | None = 4 + + # column in the landuse table that indicates the presence of refueling stations + landuse_refuel_col: str = "refueling_stations" + # maximum distance (in miles) a vehicle can operate before refueling + max_refuel_dist: int = 300 + + # maximum initial wait time (in minutes) for a vehicle before a new vehicle is created + max_wait_time: int = 15 + + # numpy random seed for reproducibility + random_seed: int = 42 + + @property + def period_time_bin_minutes(self) -> int: + """ + Calculate the number of minutes per period time bin. + + Returns the integer number of minutes in each period bin by dividing + total daily minutes (1440) by the maximum period index. This property + remains constant regardless of changes to the periods list structure. + + Returns + ------- + int + Minutes per period time bin. + """ + # minutes per (max period index); unchanged if periods list changes + return (24 * 60) // max(self.periods) + + @model_validator(mode="after") + def check_skim_periods(self): + """ + Validate consistency between skim_periods, periods, and skim_files configuration. + + Ensures that the number of skim periods is exactly one less than the + number of periods, and that the number of skim files matches the number + of skim periods. This validation is performed after model initialization. + + Returns + ------- + self + The validated TaxiTNCSettings instance. + + """ + if len(self.skim_periods) != len(self.periods) - 1: + raise ValueError( + "Length of skim_periods must be one less than length of periods" + ) + if len(self.skim_files) != len(self.skim_periods): + raise ValueError("Length of skim_files must match length of skim_periods") + return self + + +def load_settings( + project_dir: str, + yaml_path: str = "taxi_tnc_routing_settings.yaml", +) -> TaxiTNCSettings: + """ + Load TNC routing settings from a YAML configuration file. + + Reads and validates the configuration using the TaxiTNCSettings Pydantic + model, ensuring all required fields are present and properly typed. Creates + the output directory if it doesn't exist and sets up logging. + + All relative paths in the settings are resolved relative to the project_dir. + + Parameters + ---------- + project_dir : str + Base project directory. All relative paths in settings will be resolved + relative to this directory. + yaml_path : str + Path to the YAML settings file (relative to this module's directory). + + Returns + ------- + TaxiTNCSettings + Validated settings object containing all TNC routing configuration. + """ + # Try yaml_path as-is, then relative to project_dir, then relative to script dir + script_dir = os.path.dirname(os.path.abspath(__file__)) + candidates = [ + yaml_path, + os.path.join(project_dir, yaml_path), + os.path.join(script_dir, yaml_path), + ] + settings_file = next((p for p in candidates if os.path.exists(p)), None) + if settings_file is None: + raise FileNotFoundError( + f"Settings file not found: tried {candidates}" + ) + + with open(settings_file, "r") as f: + data = yaml.safe_load(f) + + # Resolve relative paths in settings relative to project_dir + path_fields = ["asim_output_dir", "skim_dir", "output_dir"] + for field in path_fields: + if field in data and data[field]: + path_value = os.path.expanduser(data[field]) + if not os.path.isabs(path_value): + data[field] = os.path.join(project_dir, path_value) + + try: + settings = TaxiTNCSettings(**data) + except ValidationError as e: + logger.error("Settings validation error:", e) + raise + + # ensure output path exists + if not os.path.exists(os.path.expanduser(settings.output_dir)): + os.makedirs(os.path.expanduser(settings.output_dir)) + logger.info(f"Created output directory: {settings.output_dir}") + + # setup logger + log_file_location = os.path.join( + os.path.expanduser(settings.output_dir), "taxi_tnc_routing.log" + ) + logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[logging.FileHandler(log_file_location), logging.StreamHandler()], + ) + + # set random seed for reproducibility + np.random.seed(settings.random_seed) + + return settings + + +class TaxiTNCRouter: + def __init__(self, settings: TaxiTNCSettings): + """ + Initialize the TNC router with validated settings. + + Parameters + ---------- + settings : TaxiTNCSettings + Validated configuration object containing all TNC routing parameters. + """ + self.settings = settings + self.skim_time = None + self.skim_dist = None + self.skim_zone_mapping = None + self.current_skim_time_period = None + self.generate_time_table() + + def generate_time_table(self): + """ + Generate a lookup table mapping time bins to clock time and ActivitySim periods. + + Creates a DataFrame indexed by time_bin with columns for hour, minute, + period (EA/AM/MD/PM/EV), and depart_bin (1-48 half-hour periods starting + at 3 AM). All times are offset by 3 hours to match ActivitySim convention. + + The table is cached in self.time_bin_table for repeated lookups during + simulation. + + Returns + ------- + None + Sets self.time_bin_table in place. + """ + # Build and cache a time-bin lookup table on self: + # index: time_bin; cols: hour, minute, period (EA/AM/MD/PM/EV), depart_bin (1..48 starting at 3 AM) + minutes_per_bin = int(self.settings.time_bin_size) + bins_per_day = (24 * 60) // minutes_per_bin + time_bins = np.arange(bins_per_day, dtype=int) + + # Offset bin starts by 3:00 (180 min), wrap at 24h + bin_start_min = (180 + time_bins * minutes_per_bin) % 1440 # minutes from 00:00 + + # Clock time + hours = (bin_start_min // 60) % 24 + minutes = bin_start_min % 60 + + # ActivitySim depart bin: half-hour bins starting at 3:00 (bin 1) + # Wrap with modulo 1440 to handle minutes before 3:00 correctly. + depart_bin = ((bin_start_min - 180) % 1440) // 30 + 1 + depart_bin = depart_bin.astype(int) # 1..48 + + # Map depart_bin -> skim period using configured breakpoints + # periods are boundaries like [0, 6, 12, 25, 32, 48] meaning (0,6], (6,12], ... + edges = np.asarray(self.settings.periods, dtype=int) + labels = np.asarray(self.settings.skim_periods, dtype=object) + period_idx = np.digitize(depart_bin, edges, right=True) - 1 # 0..len(labels)-1 + period_idx = np.clip(period_idx, 0, len(labels) - 1) + period = labels[period_idx] + + self.time_bin_table = pd.DataFrame( + { + "hour": hours, + "minute": minutes, + "period": period, + "depart_bin": depart_bin, + }, + index=pd.Index(time_bins, name="time_bin"), + ) + return + + def read_skim_data(self, time_bin): + """ + Load or update skim matrices for the current time bin's period. + + Reads time and distance skims from OMX files only when the time period + changes. Caches skims in memory to avoid redundant I/O. Validates that + zone mappings remain consistent across all skim files. + + Parameters + ---------- + time_bin : int + The time bin for which to load skim data. + + Returns + ------- + None + Updates self.skim_time, self.skim_dist, and self.skim_zone_mapping + in place. + """ + # current period of the time_bin + time_period = self.time_bin_table.loc[time_bin, "period"] + time_mismatch = self.current_skim_time_period != time_period + + def load_skim(omx_file, core): + with omx.open_file( + os.path.join(self.settings.skim_dir, omx_file), "r" + ) as f: + skim = np.array(f[core]) + mapping = f.mapping(f.list_mappings()[0]) + return skim, mapping + + # load new skim if no skim data currently exists or the skim is not for the current period + if self.skim_time is None or time_mismatch: + self.current_skim_time_period = time_period + skim_file = self.settings.skim_files[ + self.settings.skim_periods.index(time_period) + ] + self.skim_time, mapping = load_skim( + skim_file, self.settings.skim_time_core + "__" + time_period + ) + self.skim_dist, mapping = load_skim( + skim_file, self.settings.skim_dist_core + "__" + time_period + ) + assert ( + self.skim_zone_mapping == mapping + ) or self.skim_zone_mapping is None, "Zone mapping changed between skims" + self.skim_zone_mapping = mapping + # otherwise keep using existing skim data + else: + pass + + return + + @staticmethod + def _read_data_file( + fpath: str, + file_desc: str = "File", + columns: list[str] | None = None, + optional_columns: list[str] | None = None, + ) -> tuple[pd.DataFrame, str]: + """ + Resolve file path, determine file type, and read the data. + + If the path has a recognized extension, validates the file exists. + If no extension is specified, searches for parquet then csv variants. + Reads the file using pandas with optional column filtering. + + Parameters + ---------- + fpath : str + File path, optionally without extension. + file_desc : str, optional + Description of file type for error messages (default "File"). + columns : list[str], optional + Columns to read from the file. If None, reads all columns. + optional_columns : list[str], optional + Additional columns to attempt to read. If they don't exist in the + file, they are silently ignored. + + Returns + ------- + tuple[pd.DataFrame, str] + DataFrame with the file contents and the resolved file path. + + Raises + ------ + ValueError + If file cannot be found with any supported extension. + """ + lower = fpath.lower() + + # Determine file type from extension + if lower.endswith((".parquet", ".parq", ".pq")): + file_type = "parquet" + elif lower.endswith((".csv", ".csv.gz", ".txt", ".txt.gz")): + file_type = "csv" + else: + # No recognized extension - search for both parquet and csv + parquet_candidates = [fpath + ext for ext in [".parquet", ".parq", ".pq"]] + csv_candidates = [fpath + ext for ext in [".csv", ".csv.gz"]] + + found_parquet = next((p for p in parquet_candidates if os.path.exists(p)), None) + found_csv = next((p for p in csv_candidates if os.path.exists(p)), None) + + if found_parquet: + fpath = found_parquet + file_type = "parquet" + elif found_csv: + fpath = found_csv + file_type = "csv" + else: + raise ValueError( + f"{file_desc} not found: {fpath} (also checked for .parquet, .csv extensions)" + ) + + # Verify file exists (for cases where extension was specified) + if not os.path.exists(fpath): + raise ValueError(f"{file_desc} not found: {fpath}") + + # Build column list with optional columns + read_cols = list(columns) if columns else None + if read_cols and optional_columns: + read_cols = read_cols + list(optional_columns) + + # Read the file + if file_type == "parquet": + if read_cols: + try: + df = pd.read_parquet(fpath, columns=read_cols) + except (ValueError, KeyError): + # Optional columns not found, read without them + df = pd.read_parquet(fpath, columns=columns) + else: + df = pd.read_parquet(fpath) + else: # csv + if read_cols: + try: + df = pd.read_csv(fpath, usecols=read_cols) + except (ValueError, KeyError): + # Optional columns not found, read without them + df = pd.read_csv(fpath, usecols=columns) + else: + df = pd.read_csv(fpath) + + return df, fpath + + def read_input_data(self): + """ + Load TNC trip demand from ActivitySim output files. + + Reads trip tables (parquet or CSV) from the ActivitySim output directory, + filters for TNC modes, and prepares data for routing. Loads land use data + to create MAZ-to-TAZ mappings and skim zone lookups. Optionally splits + trips with occupancy exceeding max_vehicle_occupancy into multiple trips. + + Returns + ------- + pd.DataFrame + TNC trips with columns: trip_id, trip_mode, depart, origin, destination, + tour_participants, occupancy, origin_skim_idx, dest_skim_idx, and + optionally arrival_mode. + + """ + logger.info("Loading TNC trip demand data from ActivitySim outputs...") + + base_cols = [ + "trip_id", + "trip_mode", + "depart", + "origin", + "destination", + "tour_participants", + ] + opt_col = "arrival_mode" + frames = [] + for fname in self.settings.asim_demand_files: + fpath = os.path.join(self.settings.asim_output_dir, fname) + df, fpath = self._read_data_file( + fpath, "Demand file", columns=base_cols, optional_columns=[opt_col] + ) + df["source"] = os.path.basename(fpath).replace(".parquet", "").replace( + ".csv.gz", "" + ).replace(".csv", "").replace("final_", "") + if opt_col in df.columns: + df["trip_mode"] = df[opt_col] + df.drop(columns=[opt_col], inplace=True) + frames.append(df) + + trips = pd.concat(frames, ignore_index=True) + + trips = trips[ + trips.trip_mode.isin( + self.settings.single_tnc_modes + self.settings.shared_tnc_modes + ) + ] + + # Load landuse file (supports parquet and CSV) + landuse_path = os.path.join( + self.settings.asim_output_dir, self.settings.asim_landuse_file + ) + self.landuse, _ = self._read_data_file(landuse_path, "Land use file") + + if "MAZ" in self.landuse.columns: + maz_to_taz_map = self.landuse.set_index("MAZ")["taz"].to_dict() + elif "zone_id" in self.landuse.columns: + maz_to_taz_map = self.landuse.set_index("zone_id")["TAZ"].to_dict() + else: + raise KeyError( + "Land use data must contain either 'MAZ' or 'zone_id' column for mapping to TAZ." + ) + + # mapping origin and destination maz to skim taz index for fast lookups + trips["oskim_idx"] = ( + trips["origin"].map(maz_to_taz_map).map(self.skim_zone_mapping) + ) + trips["dskim_idx"] = ( + trips["destination"].map(maz_to_taz_map).map(self.skim_zone_mapping) + ) + nan_count = trips["tour_participants"].isna().sum() + if nan_count > 0: + logger.warning( + f"Found {nan_count} trips with NaN tour_participants, filling with 1" + ) + trips["occupancy"] = trips["tour_participants"].fillna(1).astype(int) + if self.settings.max_vehicle_occupancy: + total_occupants = trips.occupancy.sum() + # duplicate trip rows that are over max_occupancy + n_splits = np.ceil(trips["occupancy"] / self.settings.max_vehicle_occupancy) + trips = trips.loc[trips.index.repeat(n_splits)] + + # split occupants evenly among the new rows + split_num = trips.groupby(level=0).cumcount() + base = trips["occupancy"] // n_splits + remainder = trips["occupancy"] % n_splits + trips["occupancy"] = base + (split_num < remainder).astype(int) + + # make sure all people are accounted for + assert ( + trips.occupancy.sum() == total_occupants + ), "Not all occupants are accounted for!" + + trips["original_trip_id"] = trips["trip_id"] + trips.reset_index(inplace=True, drop=True) + trips["trip_id"] = trips.index + + id_mapping_df = trips[["trip_id", "original_trip_id", "source"]].copy() + + return trips, id_mapping_df + + def sample_tnc_trip_simulation_time_bin(self, trips): + """ + Assign fine-grained simulation time bins to TNC trips. + + Converts ActivitySim half-hour departure periods to continuous minute + values by sampling uniformly within each period, then bins into the + configured time_bin_size. This provides higher temporal resolution for + vehicle scheduling. + + Parameters + ---------- + trips : pd.DataFrame + Trip table with 'depart' column (ActivitySim half-hour periods, + 1-indexed). + + Returns + ------- + pd.DataFrame + Input trips with added 'time_in_mins' and 'time_bin' columns. + """ + # Create a new column for the time bin + # Convert departure time to mins, sampling within the half hour + # Then bin into the bin size (supplied in mins) + + trips["time_in_mins"] = (trips["depart"] - 1) * 30 + np.random.randint( + 0, self.settings.period_time_bin_minutes, size=len(trips) + ) + trips["time_bin"] = trips["time_in_mins"] // self.settings.time_bin_size + assert trips.time_bin.isin( + self.time_bin_table.index + ).all(), "Some time bins are out of range" + + return trips + + def _determine_potential_trip_pairs(self, trips): + """ + Identify candidate trip pairs for pooled service based on proximity. + + Finds all pairs of trips where both origin-to-origin AND destination-to-destination + travel times are within the pooling_buffer. Also enforces occupancy constraints if + max_vehicle_occupancy is set. + + The function creates upper-triangular pairs (i < j) to avoid duplicates and + includes origin/destination skim times for use in detour calculations. + + Parameters: + trips: DataFrame of trips within a single time bin, with columns: + trip_id, oskim_idx, dskim_idx, origin, destination, occupancy. + + Returns: + DataFrame with columns: + - trip_i, trip_j: Trip IDs forming the pair + - origin_time, dest_time: Skim times between origins and destinations + - o_i_skim_idx, d_i_skim_idx, origin_i, destination_i, occupancy_i: Trip i attributes + - o_j_skim_idx, d_j_skim_idx, origin_j, destination_j, occupancy_j: Trip j attributes + - pair_occupancy: Total occupancy if both trips are pooled (if capacity check enabled) + """ + # pre-filter trips for pooling + # find pairs of trips that are within the same origin and destination buffer + # Ensure indices are integer arrays and no NA + o_idx = trips["oskim_idx"].to_numpy(dtype=int) + d_idx = trips["dskim_idx"].to_numpy(dtype=int) + trip_ids = trips["trip_id"].to_numpy() + + origin_proximity_mask = self.skim_time[o_idx, :] <= self.settings.pooling_buffer + destination_proximity_mask = ( + self.skim_time[d_idx, :] <= self.settings.pooling_buffer + ) + + # From your masks (shape: n_trips x n_zones), select only the columns for the trips’ zones + # This yields trip-to-trip boolean matrices + origin_pair_ok = origin_proximity_mask[:, o_idx] # shape: n_trips x n_trips + dest_pair_ok = destination_proximity_mask[:, d_idx] # shape: n_trips x n_trips + + # Both origin and destination must be within the buffer + pair_ok = origin_pair_ok & dest_pair_ok + + # Drop self-pairs and keep i 0: + logger.info( + f"\tDropped {dropped} trip pairs exceeding max occupancy ({max_occ}); kept {occ_ok.sum()}" + ) + trip_pairs = trip_pairs.loc[occ_ok].copy() + + return trip_pairs + + def determine_potential_trip_pairs(self, trips): + """ + Identify all candidate trip pairs for pooling with batching for large trip sets. + + Wrapper around _determine_potential_trip_pairs that processes trips in + batches of size pair_batch_size to manage memory usage. Delegates to the + internal method for actual pairing logic. + + Parameters + ---------- + trips : pd.DataFrame + Trip table with columns: trip_id, origin, destination, oskim_idx, + dskim_idx, occupancy. + + Returns + ------- + pd.DataFrame + All candidate trip pairs with columns: trip_i, trip_j, origin_time, + dest_time, o_i_skim_idx, d_i_skim_idx, origin_i, destination_i, + occupancy_i (and _j variants). If max_vehicle_occupancy is set, + pairs exceeding capacity are excluded. + """ + + # break trips up into batches + trip_pairs_list = [] + n_trips = len(trips) + if n_trips == 0: + return self._determine_potential_trip_pairs(trips) + + batch_size = self.settings.pair_batch_size + for start_idx in range(0, n_trips, batch_size): + end_idx = min(start_idx + batch_size, n_trips) + trip_batch = trips.iloc[start_idx:end_idx] + logger.info( + f"\tProcessing trip batch {start_idx} to {end_idx} of {n_trips} trips" + ) + trip_pairs_batch = self._determine_potential_trip_pairs(trip_batch) + trip_pairs_list.append(trip_pairs_batch) + trip_pairs = pd.concat(trip_pairs_list, ignore_index=True) + + return trip_pairs + + def determine_detour_times(self, trip_pairs): + """ + Calculate detour times for all four routing scenarios per trip pair. + + Evaluates four possible pickup/dropoff orders: + 1. oi→oj→di→dj + 2. oj→oi→dj→di + 3. oi→oj→dj→di + 4. oj→oi→di→dj + + Computes per-trip detours relative to solo travel, filters out pairs + exceeding detour limits, and selects the scenario with minimum total + in-vehicle time for each valid pair. + + Parameters + ---------- + trip_pairs : pd.DataFrame + Candidate pairs with o_i_skim_idx, d_i_skim_idx, o_j_skim_idx, + d_j_skim_idx columns. + + Returns + ------- + pd.DataFrame + Valid trip pairs with added columns: detour_i, detour_j, total_detour, + total_ivt, route_scenario. Only includes pairs where both detours are + within max_detour_minutes. + + Notes + ----- + WARNING: If scenarios are modified, corresponding logic in create_trip_routes + must also be updated to match the new ordering. + """ + oi = trip_pairs["o_i_skim_idx"].to_numpy() + oj = trip_pairs["o_j_skim_idx"].to_numpy() + di = trip_pairs["d_i_skim_idx"].to_numpy() + dj = trip_pairs["d_j_skim_idx"].to_numpy() + + # direct times + i_direct = self.skim_time[oi, di] + j_direct = self.skim_time[oj, dj] + + # scenario totals + t1 = ( + self.skim_time[oi, oj] + self.skim_time[oj, di] + self.skim_time[di, dj] + ) # oi->oj->di->dj + t2 = ( + self.skim_time[oj, oi] + self.skim_time[oi, dj] + self.skim_time[dj, di] + ) # oj->oi->dj->di + t3 = ( + self.skim_time[oi, oj] + self.skim_time[oj, dj] + self.skim_time[dj, di] + ) # oi->oj->dj->di + t4 = ( + self.skim_time[oj, oi] + self.skim_time[oi, di] + self.skim_time[di, dj] + ) # oj->oi->di->dj + + # per-trip detours + d1_i = t1 - i_direct + d1_j = t1 - j_direct + d2_i = t2 - i_direct + d2_j = t2 - j_direct + d3_i = t3 - i_direct + d3_j = t3 - j_direct + d4_i = t4 - i_direct + d4_j = t4 - j_direct + + # checking detour times against max detour time + max_detour = self.settings.max_detour + v1 = (d1_i <= max_detour) & (d1_j <= max_detour) + v2 = (d2_i <= max_detour) & (d2_j <= max_detour) + v3 = (d3_i <= max_detour) & (d3_j <= max_detour) + v4 = (d4_i <= max_detour) & (d4_j <= max_detour) + + totals = np.column_stack([t1, t2, t3, t4]) + valids = np.column_stack([v1, v2, v3, v4]) + det_i_m = np.column_stack([d1_i, d2_i, d3_i, d4_i]) + det_j_m = np.column_stack([d1_j, d2_j, d3_j, d4_j]) + + # mask invalid scenarios + totals_masked = np.where(valids, totals, np.inf) + + # choose best valid scenario + min_idx = np.argmin(totals_masked, axis=1) # 0..3 + row = np.arange(len(min_idx)) + min_total = totals_masked[row, min_idx] + valid = np.isfinite(min_total) + + route_scenario = np.where(valid, min_idx + 1, 0) # 1..4, or 0 if none valid + total_ivt = np.where(valid, min_total, np.nan) + detour_i = np.where(valid, det_i_m[row, min_idx], np.nan) + detour_j = np.where(valid, det_j_m[row, min_idx], np.nan) + + trip_pairs["route_scenario"] = route_scenario + trip_pairs["total_ivt"] = total_ivt + trip_pairs["valid"] = valid + trip_pairs["detour_i"] = detour_i + trip_pairs["detour_j"] = detour_j + trip_pairs["total_detour"] = detour_i + detour_j + + eps = 1e-9 # avoiding case where detour is exactly equal to max_detour + assert ( + trip_pairs[trip_pairs.valid]["detour_i"] <= (max_detour + eps) + ).all(), "Detour times exceed maximum allowed" + assert ( + trip_pairs[trip_pairs.valid]["detour_j"] <= (max_detour + eps) + ).all(), "Detour times exceed maximum allowed" + assert ( + trip_pairs[trip_pairs.valid]["route_scenario"] > 0 + ).all(), "Valid trips must have a scenario" + + logger.info(f"\tTotal trip pairs within original OD buffer: {len(trip_pairs)}") + trip_pairs = trip_pairs[trip_pairs.valid] + logger.info( + f"\tFound {len(trip_pairs)} valid trip pairs across {trip_pairs['trip_i'].nunique()} unique trips" + ) + logger.info( + f"\twith an average detour times for trip i {trip_pairs['detour_i'].mean():.2f} and trip j {trip_pairs['detour_j'].mean():.2f}" + ) + + return trip_pairs + + def select_mutual_best_recursive(self, trip_pairs: pd.DataFrame) -> pd.DataFrame: + """ + Select disjoint trip pairs using iterative mutual-best matching. + + Implements a greedy algorithm that repeatedly finds mutually best pairs + (where trip i prefers trip j and vice versa) and removes them from the + pool. Ensures each trip appears in at most one pair. Ties are broken + deterministically by sorting on total_detour, trip_i, and trip_j. + + Parameters + ---------- + trip_pairs : pd.DataFrame + All candidate trip pairs with columns: trip_i, trip_j, total_detour, + detour_i, detour_j, total_ivt, and other routing attributes. + + Returns + ------- + pd.DataFrame + Subset of trip_pairs containing only disjoint mutual-best matches, + with all original columns preserved. Returns empty DataFrame if no + mutual matches found. + """ + # start from valid pairs only, keep only needed cols for speed + pairs = trip_pairs[["trip_i", "trip_j", "total_detour"]].copy() + if pairs.empty: + return trip_pairs.iloc[0:0].copy() + + # deterministic tie-breaking + pairs = pairs.sort_values(["total_detour", "trip_i", "trip_j"]).reset_index( + drop=True + ) + + batches = [] + used = set() + i = 0 + while not pairs.empty: + # best partner for each i, and best partner for each j + best_j_for_i_idx = pairs.groupby("trip_i", sort=False)[ + "total_detour" + ].idxmin() + best_j_for_i = pairs.loc[ + best_j_for_i_idx, ["trip_i", "trip_j", "total_detour"] + ] + + best_i_for_j_idx = pairs.groupby("trip_j", sort=False)[ + "total_detour" + ].idxmin() + best_i_for_j = pairs.loc[ + best_i_for_j_idx, ["trip_j", "trip_i", "total_detour"] + ] + best_i_for_j.columns = [ + "trip_j", + "trip_i", + "detour_time_j", + ] # rename for merge + + # mutual-best intersection + mutual = best_j_for_i.merge( + best_i_for_j[["trip_i", "trip_j"]], on=["trip_i", "trip_j"], how="inner" + ) + # handle instances where trip_i is also in trip_j + mutual = mutual[~mutual["trip_j"].isin(mutual["trip_i"])] + + if mutual.empty: + # no more matches + break + + batches.append(mutual[["trip_i", "trip_j"]].copy()) + + # remove all trips that just got paired + used.update(mutual["trip_i"].to_numpy().tolist()) + used.update(mutual["trip_j"].to_numpy().tolist()) + pairs = pairs[ + ~pairs["trip_i"].isin(used) & ~pairs["trip_j"].isin(used) + ].reset_index(drop=True) + + i += 1 + if i > 10000: + raise RuntimeError("Exceeded maximum iterations for trip pooling") + + if not batches: + return trip_pairs.iloc[0:0].copy() + + disjoint_keys = pd.concat(batches, ignore_index=True) + + # bring all attributes back from original trip_pairs + trip_matches = disjoint_keys.merge( + trip_pairs, on=["trip_i", "trip_j"], how="left" + ).reset_index(drop=True) + + # sanity checks + assert trip_matches["trip_i"].is_unique + assert trip_matches["trip_j"].is_unique + assert (~trip_matches["trip_i"].isin(trip_matches["trip_j"])).all() + + logger.info( + f"\tSelected {len(trip_matches)} disjoint pairs via recursive mutual-best" + ) + logger.info( + f"\twith an average detour times for trip i {trip_matches['detour_i'].mean():.2f} and trip j {trip_matches['detour_j'].mean():.2f}" + ) + logger.info( + f"\tAverage total detour time {trip_matches['total_detour'].mean():.2f}" + ) + logger.info( + f"\tAverage total in vehicle time {trip_matches['total_ivt'].mean():.2f}" + ) + + return trip_matches + + def create_trip_routes(self, trip_matches): + """ + Convert matched trip pairs into ordered route sequences. + + Takes mutually matched trip pairs and expands them into ordered sequences + of O/D stops based on the optimal routing scenario (e.g., oi→oj→di→dj). + Creates a 4-row per-pair table with origin/intermediate/destination flags. + + Parameters + ---------- + trip_matches : pd.DataFrame + Matched pairs with columns: trip_i, trip_j, route_scenario, total_ivt, + detour_i, detour_j, occupancy_i, occupancy_j. + + Returns + ------- + pd.DataFrame + Route table with columns: trip_i, trip_j, origin, destination, + origin_type, destination_type (pickup, intermediate, dropoff), + detour_i, detour_j, occupancy_i, occupancy_j. + """ + trips_routed = trip_matches[ + [ + "trip_i", + "trip_j", + "total_ivt", + "route_scenario", + "detour_i", + "detour_j", + "occupancy_i", + "occupancy_j", + ] + ].copy() + + s1_idx = [0, 1, 2, 3] # oi->oj->di->dj + s2_idx = [1, 0, 3, 2] # oj->oi->dj->di + s3_idx = [0, 1, 3, 2] # oi->oj->dj->di + s4_idx = [1, 0, 2, 3] # oj->oi->di->dj + + ods_idx = trip_matches[ + ["o_i_skim_idx", "o_j_skim_idx", "d_i_skim_idx", "d_j_skim_idx"] + ].to_numpy() + ods = trip_matches[ + ["origin_i", "origin_j", "destination_i", "destination_j"] + ].to_numpy() + + scenario_orders = np.array( + [s1_idx, s2_idx, s3_idx, s4_idx] + ) # index with (route_scenario-1) + rs = trip_matches["route_scenario"].to_numpy() + + valid_mask = rs > 0 + order_idx = ( + scenario_orders[rs[valid_mask] - 1] + if valid_mask.any() + else np.empty((0, 4), dtype=int) + ) + + ordered_nodes = np.full((len(trips_routed), 4), -1, dtype=int) + ordered_nodes_idx = np.full((len(trips_routed), 4), -1, dtype=int) + if valid_mask.any(): + row_idx = np.arange(len(trips_routed))[valid_mask] + ordered_nodes_idx[valid_mask] = ods_idx[row_idx[:, None], order_idx] + ordered_nodes[valid_mask] = ods[row_idx[:, None], order_idx] + + trips_routed[ + [ + "origin_skim_idx", + "stop1_skim_idx", + "stop2_skim_idx", + "destination_skim_idx", + ] + ] = ordered_nodes_idx + trips_routed[ + [ + "origin", + "stop1", + "stop2", + "destination", + ] + ] = ordered_nodes + return trips_routed + + def create_full_trip_route_table(self, tnc_trips, trips_routed): + """ + Combine pooled trips with solo trips into a unified route table. + + Appends any TNC trips not included in pooled pairs as solo trips (trip_i + only, trip_j = NaN). Both pooled and solo trips are represented in a + consistent format for vehicle matching. + + Parameters + ---------- + tnc_trips : pd.DataFrame + All TNC trips in the current time bin with columns: trip_id, origin, + destination, origin_skim_idx, dest_skim_idx, occupancy. + trips_routed : pd.DataFrame + Pooled trip routes from create_trip_routes with trip_i and trip_j. + + Returns + ------- + pd.DataFrame + Unified route table containing both pooled and solo trips, with + columns: trip_i, trip_j (NaN for solo), origin, destination, + origin_skim_idx, dest_skim_idx, occupancy_i, occupancy_j. + """ + # need to append any additional tnc trips during this time period that were not grouped + mask = ~( + tnc_trips.trip_id.isin(trips_routed.trip_i) + | tnc_trips.trip_id.isin(trips_routed.trip_j) + ) + cols = { + "trip_id": "trip_i", + "oskim_idx": "origin_skim_idx", + "dskim_idx": "destination_skim_idx", + "origin": "origin", + "destination": "destination", + "occupancy": "occupancy_i", + } + single_trips = tnc_trips[mask][cols.keys()].rename(columns=cols).copy() + single_trips["total_ivt"] = self.skim_time[ + single_trips.origin_skim_idx, single_trips.destination_skim_idx + ] + single_trips["detour_i"] = 0 + + full_trip_routes = pd.concat([trips_routed, single_trips], ignore_index=True) + + logger.info( + f"\tAdded {single_trips.shape[0]} single trips for a total of {full_trip_routes.shape[0]} episodes." + ) + + assert full_trip_routes.trip_i.is_unique, "Trip IDs are not unique" + + return full_trip_routes + + def create_new_vehicles(self, vehicles, trips_to_service, trip_to_veh_map): + """ + Create new vehicles for trips that could not be matched to existing free vehicles. + + Instantiates new vehicle records starting at the trip origins and updates + the trip-to-vehicle mapping. Vehicle IDs are assigned sequentially starting + from the next available ID after existing vehicles. + + Parameters + ---------- + vehicles : pd.DataFrame or None + Existing fleet table with vehicle_id index. Can be None if no vehicles + exist yet. + trips_to_service : pd.DataFrame + Unmatched trips that need new vehicles, with columns: trip_i, + origin_skim_idx, origin. + trip_to_veh_map : pd.Series + Index=trip_i, values=vehicle_id. Updated in place with new vehicle + assignments. + + Returns + ------- + tuple of (pd.DataFrame, pd.Series) + - vehicles: Updated fleet table with new vehicles appended + - trip_to_veh_map: Updated mapping with new vehicle assignments + """ + idx_start_num = 0 if vehicles is None else vehicles.index.max() + + new_vehs = pd.DataFrame( + data={ + "location_skim_idx": trips_to_service.origin_skim_idx.values, + "location": trips_to_service.origin.values, + "is_free": False, + "last_refuel_time": -1, + "next_time_free": np.nan, + "drive_dist_since_refuel": 0, + }, + index=idx_start_num + np.arange(1, len(trips_to_service) + 1), + ) + new_vehs.index.name = "vehicle_id" + + # updating the trip to vehicle mapping with the newly created vehicles + trip_to_veh_map.loc[trips_to_service.trip_i] = new_vehs.index.values + + if vehicles is not None: + vehicles = pd.concat([vehicles, new_vehs], ignore_index=False) + else: + vehicles = new_vehs + + return vehicles, trip_to_veh_map + + def _match_vehicles_to_trips( + self, free_vehicles, unserviced_trips, trip_to_veh_map + ): + """ + Core greedy algorithm to assign free vehicles to unserviced trips. + + Iteratively matches each trip to the nearest available vehicle by + deadhead time. Enforces max_wait_time constraint and handles ties + deterministically by keeping the first trip when multiple trips compete + for the same vehicle. Continues until all trips are serviced or no + vehicles are within the max wait time. + + Parameters + ---------- + free_vehicles : pd.DataFrame + Available vehicles with columns: location_skim_idx, is_free, etc. + unserviced_trips : pd.DataFrame + Trips not yet assigned, with origin_skim_idx and trip_i columns. + trip_to_veh_map : pd.Series + Index=trip_i, values=vehicle_id. Updated in place with new matches. + + Returns + ------- + tuple of (pd.DataFrame, pd.DataFrame, pd.Series) + - free_vehicles: Remaining unmatched vehicles + - unserviced_trips: Remaining unmatched trips + - trip_to_veh_map: Updated mapping with new vehicle assignments + + """ + + i = 0 + while not (free_vehicles.empty or unserviced_trips.empty): + trip_origins = unserviced_trips.origin_skim_idx.to_numpy().astype(int) + veh_locations = free_vehicles.location_skim_idx.to_numpy().astype(int) + + # find skim times between trip origins and all veh locations + skim_times = self.skim_time[veh_locations, trip_origins[:, None]] + + # grab the minimum time for each trip and vehicle + min_times = skim_times.min(axis=1) + + # if multiple trips match to the same vehicle, take the one with the smallest time + closest_vehicles = free_vehicles.index[np.argmin(skim_times, axis=1)] + + # map trips to their closest vehicles + trip_to_veh_map.loc[unserviced_trips.trip_i] = closest_vehicles + + # trips with a min wait time larger than the maximum allowed are removed from pool + # ties are given to the first trip as given by trip_id + time_gt_max_wait = min_times > self.settings.max_wait_time + trip_to_veh_map.loc[unserviced_trips.trip_i[time_gt_max_wait]] = np.nan + ties_mask = ( + trip_to_veh_map.duplicated(keep="first") & trip_to_veh_map.notna() + ) + trip_to_veh_map.loc[ties_mask] = np.nan + + # remove matched trips and vehicles from the pools or trips that have no vehs within the max wait time + serviced_trips = trip_to_veh_map[trip_to_veh_map.notna()] + unserviced_trips = unserviced_trips[ + ~(unserviced_trips.trip_i.isin(serviced_trips.index) | time_gt_max_wait) + ] + free_vehicles = free_vehicles[ + ~free_vehicles.index.isin(serviced_trips.values) + ] + + if i > 10000: + # making sure we never get stuck in an infinite loop + raise RuntimeError("Exceeded maximum iterations for vehicle matching") + + return free_vehicles, unserviced_trips, trip_to_veh_map + + def match_vehicles_to_trips(self, vehicles, full_trip_routes): + """ + Assign available vehicles to trips and create new vehicles as needed. + + Processes trips in batches (vehicle_match_batch_size) to avoid memory + issues with large distance matrices. Matches free vehicles to trips via + _match_vehicles_to_trips, then creates new vehicles for any remaining + unserviced trips. + + Parameters + ---------- + vehicles : pd.DataFrame or None + Fleet table with is_free, location_skim_idx, next_time_free columns. + Can be None if no vehicles exist yet. + full_trip_routes : pd.DataFrame + All trip routes (solo and pooled) with trip_i, origin_skim_idx, + occupancy_i columns. + + Returns + ------- + tuple of (pd.DataFrame, pd.DataFrame, pd.Series) + - vehicles: Updated fleet with new vehicles added + - full_trip_routes: Input routes (unchanged) + - trip_to_veh_map: Series mapping trip_i to vehicle_id (NaN if + exceeded max_wait_time) + """ + if vehicles is not None: + free_vehicles = vehicles[vehicles.is_free].copy() + else: + free_vehicles = pd.DataFrame() + unserviced_trips = full_trip_routes.copy() + + trip_to_veh_map = pd.Series( + name="vehicle_id", + index=unserviced_trips.trip_i, + dtype=vehicles.index.dtype if vehicles is not None else "int64", + ) + + # loop until all available vehicles are assigned or there are no more unserviced trips + batch_size = self.settings.pair_batch_size + matched_trip_count = 0 + logger.info( + f"\tStarting vehicle to trip matching with {len(free_vehicles)} free vehicles and {len(unserviced_trips)} unserviced trips in trip batches of {batch_size}" + ) + for i in range(0, len(unserviced_trips), batch_size): + if free_vehicles.empty: + break + # limiting the number of trips and vehicle combos for run time + # allowing twice the number of free vehicles as trips + unserviced_trips_block = unserviced_trips.iloc[i : i + batch_size] + free_vehicles_block = free_vehicles.iloc[: 2 * batch_size] + + ( + free_vehicles_block, + unserviced_trips_block, + trip_to_veh_map, + ) = self._match_vehicles_to_trips( + free_vehicles_block, unserviced_trips_block, trip_to_veh_map + ) + logger.info( + f"\t Iteration {i}: Matched {trip_to_veh_map.notna().sum() - matched_trip_count} trips to vehicles" + ) + matched_trip_count = trip_to_veh_map.notna().sum() + free_vehicles = free_vehicles.loc[ + ~free_vehicles.index.isin(trip_to_veh_map) + ] + + if trip_to_veh_map.isna().any(): + # create new vehicles for those still unmatched + # trips without match + unserviced_mask = full_trip_routes.trip_i.isin( + trip_to_veh_map.index[trip_to_veh_map.isna()] + ) + trips_still_needing_service = full_trip_routes[unserviced_mask] + vehicles, trip_to_veh_map = self.create_new_vehicles( + vehicles, trips_still_needing_service, trip_to_veh_map + ) + + assert ( + not trip_to_veh_map.isna().any() + ), f"Some trips were not matched to vehicles {trip_to_veh_map[trip_to_veh_map.isna()]}" + + # return a mapping of trips.trip_i to vehicles.vehicle_id + # trips that were not matched will have an NaN vehicle_id + return vehicles, trip_to_veh_map + + def create_vehicle_trips(self, full_trip_routes, vehicles, trip_to_veh_map): + """ + Generate leg-by-leg vehicle trips from assigned trip routes. + + Expands route sequences into individual vehicle legs (pickup, intermediate, + dropoff) with cumulative travel times. For pooled trips, creates intermediate + legs between the first pickup and the last dropoff. Calculates arrival times + in minutes and maps to time bins. + + The first leg for each vehicle includes deadhead time from the vehicle's + current location to the first pickup. Subsequent legs are added with + cumulative travel times. + + Parameters + ---------- + full_trip_routes : pd.DataFrame + Trip routes with columns: trip_i, trip_j, origin, destination, + origin_type, destination_type, origin_skim_idx, dest_skim_idx. + vehicles : pd.DataFrame + Fleet table with location_skim_idx for deadhead calculations. + trip_to_veh_map : pd.Series + Mapping from trip_i to vehicle_id. + + Returns + ------- + pd.DataFrame + Vehicle trip legs with columns: vehicle_id, trip_i, trip_j, origin, + destination, leg_type (pickup, intermediate, dropoff, deadhead), + travel_time, arrival_time (minutes), arrival_bin (time bin). + """ + # Create vehicle trips from the full trip routes + + # first turning full_trip_routes into a list of stops + pickup = full_trip_routes[ + ["trip_i", "trip_j", "origin_skim_idx", "origin"] + ].rename( + columns={"origin_skim_idx": "destination_skim_idx", "origin": "destination"} + ) + # creating a temporary trip num because not all vehicles will have stops + pickup["srv_trip_num"] = 1 + pickup["trip_type"] = "pickup" + + stop_1 = full_trip_routes.loc[ + full_trip_routes.stop1_skim_idx > -1, + ["trip_i", "trip_j", "stop1_skim_idx", "stop1"], + ].rename( + columns={"stop1_skim_idx": "destination_skim_idx", "stop1": "destination"} + ) + stop_1["srv_trip_num"] = 2 + stop_1["trip_type"] = "pickup" + + stop_2 = full_trip_routes.loc[ + full_trip_routes.stop2_skim_idx > -1, + ["trip_i", "trip_j", "stop2_skim_idx", "stop2"], + ].rename( + columns={"stop2_skim_idx": "destination_skim_idx", "stop2": "destination"} + ) + stop_2["srv_trip_num"] = 3 + stop_2["trip_type"] = "dropoff" + + drop_off = full_trip_routes[ + ["trip_i", "trip_j", "destination_skim_idx", "destination"] + ].copy() + drop_off["srv_trip_num"] = 4 + drop_off["trip_type"] = "dropoff" + + new_v_trips = pd.concat([pickup, stop_1, stop_2, drop_off]) + + new_v_trips["vehicle_id"] = ( + new_v_trips["trip_i"].map(trip_to_veh_map).astype(int) + ) + + # ensure ordering before deriving origins + new_v_trips.sort_values( + ["vehicle_id", "srv_trip_num"], inplace=True, ignore_index=True + ) + + new_v_trips["origin_skim_idx"] = pd.NA + new_v_trips["origin"] = pd.NA + + # first leg origin = vehicle current location + first_leg_mask = new_v_trips.srv_trip_num == 1 + new_v_trips.loc[first_leg_mask, "origin_skim_idx"] = new_v_trips.loc[ + first_leg_mask, "vehicle_id" + ].map(vehicles.location_skim_idx) + new_v_trips.loc[first_leg_mask, "origin"] = new_v_trips.loc[ + first_leg_mask, "vehicle_id" + ].map(vehicles.location) + + # subsequent leg origin = previous leg destination + new_v_trips.loc[~first_leg_mask, "origin_skim_idx"] = new_v_trips.groupby( + "vehicle_id" + )["destination_skim_idx"].shift(1)[~first_leg_mask] + new_v_trips.loc[~first_leg_mask, "origin"] = new_v_trips.groupby("vehicle_id")[ + "destination" + ].shift(1)[~first_leg_mask] + + o_idx_na = new_v_trips.origin_skim_idx.notna() + d_idx_na = new_v_trips.destination_skim_idx.notna() + o_na = new_v_trips.origin.notna() + d_na = new_v_trips.destination.notna() + assert ( + o_idx_na & d_idx_na + ).all(), f"Some vehicle trips do not have an origin or destination skim index:\n {new_v_trips[~(o_idx_na & d_idx_na)]}" + assert ( + o_na & d_na + ).all(), f"Some vehicle trips do not have an origin or destination:\n {new_v_trips[~(o_na & d_na)]}" + + cols = ["origin_skim_idx", "destination_skim_idx", "origin", "destination"] + new_v_trips[cols] = new_v_trips[cols].astype({col: int for col in cols}) + + # update which trips are being served during the specific vehicle leg + # right now, we have both trip_i and trip_j (if pooled) for all legs + new_v_trips["servicing_trip_id"] = new_v_trips[ + "trip_i" + ] # leave a trail to know where the vehicle is going + # first trip from vehicle location to pickup has no occupants. + new_v_trips.loc[new_v_trips.srv_trip_num == 1, ["trip_i", "trip_j"]] = np.nan + # who gets picked up and goes to the stops is dependent on the scenario + scenario = ( + full_trip_routes.set_index("trip_i") + .route_scenario.reindex(new_v_trips.servicing_trip_id) + .values + ) + new_v_trips["scenario"] = scenario + # scenario 1: oi->oj->di->dj + new_v_trips.loc[ + (scenario == 1) & (new_v_trips.srv_trip_num == 2), "trip_j" + ] = np.nan + new_v_trips.loc[ + (scenario == 1) & (new_v_trips.srv_trip_num == 4), "trip_i" + ] = np.nan + # scenario 2: oj->oi->dj->di + new_v_trips.loc[ + (scenario == 2) & (new_v_trips.srv_trip_num == 2), "trip_i" + ] = np.nan + new_v_trips.loc[ + (scenario == 2) & (new_v_trips.srv_trip_num == 4), "trip_j" + ] = np.nan + # scenario 3: oi->oj->dj->di + new_v_trips.loc[ + (scenario == 3) & (new_v_trips.srv_trip_num == 2), "trip_j" + ] = np.nan + new_v_trips.loc[ + (scenario == 3) & (new_v_trips.srv_trip_num == 4), "trip_j" + ] = np.nan + # scenario 4: oj->oi->di->dj + new_v_trips.loc[ + (scenario == 4) & (new_v_trips.srv_trip_num == 2), "trip_i" + ] = np.nan + new_v_trips.loc[ + (scenario == 4) & (new_v_trips.srv_trip_num == 4), "trip_i" + ] = np.nan + + # determine time bin of each trip + new_v_trips["OD_time"] = self.skim_time[ + new_v_trips.origin_skim_idx.to_numpy(), + new_v_trips.destination_skim_idx.to_numpy(), + ] + cumulative_trip_time = new_v_trips.groupby("vehicle_id")["OD_time"].cumsum() + new_v_trips["depart_bin"] = ( + full_trip_routes.time_bin.mode()[0] + + (cumulative_trip_time - new_v_trips["OD_time"]) + // self.settings.time_bin_size + ) + new_v_trips["arrival_bin"] = full_trip_routes.time_bin.mode()[0] + ( + cumulative_trip_time // self.settings.time_bin_size + ) + + new_v_trips["OD_dist"] = self.skim_dist[ + new_v_trips.origin_skim_idx.to_numpy(), + new_v_trips.destination_skim_idx.to_numpy(), + ] + + assert ( + new_v_trips.depart_bin <= new_v_trips.arrival_bin + ).all(), f"Departure bin must be less than or equal to arrival bin {new_v_trips[new_v_trips.depart_bin > new_v_trips.arrival_bin]}" + + # merge initial wait time from repositioning trip to full_trip_routes + initial_wait = new_v_trips[new_v_trips.srv_trip_num == 1][ + ["servicing_trip_id", "OD_time"] + ].set_index("servicing_trip_id") + full_trip_routes["initial_wait"] = full_trip_routes.trip_i.map( + initial_wait.OD_time + ) + + return new_v_trips, full_trip_routes + + def calculate_occupancy(self, vehicle_trips_i, tnc_trips_i): + """ + Calculate vehicle occupancy for each leg based on trips being served. + + Sums the occupancy from trip_i and trip_j (if present) for each vehicle + trip leg. Uses the occupancy values from the original TNC trips table. + + Parameters + ---------- + vehicle_trips_i : pd.DataFrame + Vehicle trip legs with trip_i and trip_j columns (trip_j may be NaN + for solo trips). + tnc_trips_i : pd.DataFrame + Original TNC trips with trip_id and occupancy columns. + + Returns + ------- + pd.DataFrame + vehicle_trips_i with added 'occupancy' column. + """ + trip_occ_map = tnc_trips_i.set_index("trip_id")["occupancy"] + + # occupancy of the vehicle trips is the sum of occupancy across trips + trip_i_occ = vehicle_trips_i.trip_i.map(trip_occ_map).fillna(0) + trip_j_occ = vehicle_trips_i.trip_j.map(trip_occ_map).fillna(0) + + vehicle_trips_i["occupancy"] = trip_i_occ + trip_j_occ + + return vehicle_trips_i + + def update_vehicle_fleet( + self, vehicles, vehicle_trips_i, time_bin, refuel_veh_trips_i + ): + """ + Update vehicle availability and location after serving trips in current time bin. + + Updates next_time_free based on the latest arrival time (+1 to account + for dropoff), marks vehicles as free if they will be available in the + next time bin, and updates vehicle locations to their final destination + or refuel station. + + Parameters + ---------- + vehicles : pd.DataFrame + Fleet table with columns: is_free, next_time_free, location, + location_skim_idx, etc. + vehicle_trips_i : pd.DataFrame + Completed vehicle trips with vehicle_id, arrival_bin, destination, + destination_skim_idx columns. + time_bin : int + Current simulation time bin. + refuel_veh_trips_i : pd.DataFrame + Subset of vehicle_trips_i that are refueling trips, with refuel_dest + and refuel_dest_skim_idx columns. + + Returns + ------- + pd.DataFrame + Updated vehicles table with refreshed availability and locations. + """ + # update the next_time_free based on the vehicle trips + next_time_free_update = ( + vehicle_trips_i.groupby("vehicle_id").arrival_bin.max() + 1 + ) # +1 rouding up to account for dropoff time + vehicles.loc[ + next_time_free_update.index, "next_time_free" + ] = next_time_free_update + # +1 on time bin since we are calculating the availaibility for the next time bin + vehicles["is_free"] = np.where( + (time_bin + 1 >= vehicles.next_time_free), True, False + ) + + # also want to update the vehicle location + final_veh_location_idx = vehicle_trips_i.groupby( + "vehicle_id" + ).destination_skim_idx.last() + vehicles.loc[ + final_veh_location_idx.index, "location_skim_idx" + ] = final_veh_location_idx + final_veh_location = vehicle_trips_i.groupby("vehicle_id").destination.last() + vehicles.loc[final_veh_location.index, "location"] = final_veh_location + + tot_drive_dist = vehicle_trips_i.groupby("vehicle_id").OD_dist.sum() + vehicles.loc[tot_drive_dist.index, "drive_dist_since_refuel"] += tot_drive_dist + + # updating fleet with refueled vehicles + if refuel_veh_trips_i is not None: + vehicles.loc[ + refuel_veh_trips_i.vehicle_id, "last_refuel_time" + ] = refuel_veh_trips_i.arrival_bin + vehicles.loc[refuel_veh_trips_i.vehicle_id, "drive_dist_since_refuel"] = 0 + vehicles.loc[refuel_veh_trips_i.vehicle_id, "is_free"] = False + vehicles.loc[refuel_veh_trips_i.vehicle_id, "next_time_free"] = ( + refuel_veh_trips_i.arrival_bin + 1 + ) + vehicles.loc[ + refuel_veh_trips_i.vehicle_id, "location_skim_idx" + ] = refuel_veh_trips_i.destination_skim_idx + vehicles.loc[ + refuel_veh_trips_i.vehicle_id, "location" + ] = refuel_veh_trips_i.destination + + return vehicles + + def summarize_tnc_trips(self, tnc_veh_trips, tnc_trips, vehicles, pooled_trips): + """ + Log summary statistics and perform consistency checks on TNC routing outputs. + + Calculates and logs total trips, vehicles, pooling rate, average occupancy, + VMT, deadhead VMT percentage, and average distance-weighted occupancy. + Validates that all trips are serviced and all vehicles are used. + + Parameters + ---------- + tnc_veh_trips : pd.DataFrame + Vehicle trip legs with trip_i, trip_j, vehicle_id, OD_dist, occupancy, + is_deadhead columns. + tnc_trips : pd.DataFrame + Original TNC trips with trip_id column. + vehicles : pd.DataFrame + Fleet table with vehicle_id index. + pooled_trips : pd.DataFrame + Matched trip pairs with trip_i and trip_j columns. + """ + + # Summary statistics for TNC vehicle trips + logger.info("TNC Vehicle Trips Summary:") + logger.info(f"Total TNC Vehicle Trips: {len(tnc_veh_trips)}") + logger.info(f"Total TNC Trips: {len(tnc_trips)}") + logger.info(f"Total Vehicles: {len(vehicles)}") + logger.info( + f"TNC Trips to Vehicles Ratio: {(len(tnc_trips) / len(vehicles)):.2f}" + ) + logger.info( + f"Average trips per vehicle: {(tnc_veh_trips.groupby('vehicle_id').size().mean()):.2f}" + ) + logger.info( + f"Average number of trips per vehicle: {(tnc_veh_trips.groupby('vehicle_id').size().mean()):.2f}" + ) + logger.info( + f"Average initial wait time: {pooled_trips.initial_wait.mean():.2f} mins" + ) + avg_detour = ( + pooled_trips[pooled_trips.trip_j.notna()][["detour_i", "detour_j"]] + .melt() + .dropna() + .value.mean() + ) + logger.info( + f"Average detour time per passenger on pooled trips: {avg_detour:.2f} mins" + ) + tnc_veh_trips["is_deadhead"] = ( + tnc_veh_trips.trip_i.isna() & tnc_veh_trips.trip_j.isna() + ) + logger.info( + f"Percentage of deadhead vehicle trips: {tnc_veh_trips.is_deadhead.mean() * 100:.2f}%" + ) + logger.info( + f"Average occupancy of all vehicle trips: {tnc_veh_trips.occupancy.mean():.2f}" + ) + num_refuel_trips = tnc_veh_trips[tnc_veh_trips.trip_type == "refuel"].shape[0] + logger.info( + f"Total number of refuel trips: {num_refuel_trips} = {(num_refuel_trips / len(tnc_veh_trips) * 100):.2f}% of all vehicle trips" + ) + total_vmt = tnc_veh_trips.OD_dist.sum() + logger.info(f"Total VMT from TNC Vehicle Trips: {total_vmt:.2f} miles") + deadhead_vmt = tnc_veh_trips[tnc_veh_trips.is_deadhead].OD_dist.sum() + logger.info(f"Total Deadhead VMT: {deadhead_vmt:.2f} miles") + pct_deadhead_vmt = (deadhead_vmt / total_vmt) * 100 if total_vmt > 0 else 0 + logger.info(f"Percentage of Deadhead VMT: {pct_deadhead_vmt:.2f}%") + + weighted_occ = tnc_veh_trips.occupancy * tnc_veh_trips.OD_dist + avg_weighted_occ = ( + (weighted_occ.sum() / tnc_veh_trips.OD_dist.sum()) + if tnc_veh_trips.OD_dist.sum() > 0 + else 0 + ) + logger.info(f"Average occupancy weighted by VMT: {avg_weighted_occ:.2f}") + + # also performing consistency checks on the outputs + assert ( + tnc_trips.trip_id.isin(tnc_veh_trips.trip_i) + | tnc_trips.trip_id.isin(tnc_veh_trips.trip_j) + ).all(), "Some trip IDs were not serviced by any vehicle trips" + assert vehicles.index.isin( + tnc_veh_trips.vehicle_id + ).all(), "Some vehicle were created but do not serve any trips" + assert ( + tnc_veh_trips.groupby("vehicle_id").size() >= 2 + ).all(), "Some vehicles do not have at least 2 trips" + + pass + + def check_refuel_needs(self, vehicle_trips_i, vehicles): + """ + Identify vehicles needing refueling and create refuel trips to nearest stations. + + Checks cumulative drive distance since last refuel against the max_refuel_dist + threshold. For vehicles exceeding the threshold, finds the nearest refuel station + (MAZ with landuse_refuel_col > 0) and creates a refuel trip leg from the vehicle's + last destination to the station. + + Parameters + ---------- + vehicle_trips_i : pd.DataFrame + Completed vehicle trips with vehicle_id, destination_skim_idx, OD_dist, + arrival_bin columns. + vehicles : pd.DataFrame + Fleet table with drive_dist_since_refuel column. + + Returns + ------- + pd.DataFrame or None + Refuel trip legs with columns: vehicle_id, origin, origin_skim_idx, + destination (refuel station MAZ), destination_skim_idx, OD_time, OD_dist, + arrival_bin, trip_type='refuel'. Returns None if no vehicles need refueling. + """ + # updated drive time + drive_dist_from_trips_in_bin = vehicle_trips_i.groupby( + "vehicle_id" + ).OD_dist.sum() + tot_drive_dist = ( + drive_dist_from_trips_in_bin + + vehicles.loc[ + drive_dist_from_trips_in_bin.index, "drive_dist_since_refuel" + ] + ) + needs_refuel = tot_drive_dist > self.settings.max_refuel_dist + + if not needs_refuel.any(): + return None + + # find the nearest refuel station for each vehicle that needs to refuel + vehs_to_refuel = ( + vehicle_trips_i[ + vehicle_trips_i.vehicle_id.isin(needs_refuel[needs_refuel].index) + ] + .drop_duplicates("vehicle_id", keep="last") + .copy() + ) + refuel_stations = self.landuse[ + self.landuse[self.settings.landuse_refuel_col] > 0 + ] + refuel_stations_taz = ( + refuel_stations.TAZ + if "TAZ" in refuel_stations.columns + else refuel_stations.taz + ) + refuel_stations_idx = refuel_stations_taz.map(self.skim_zone_mapping).to_numpy() + + # find skim times between trip origins and all veh locations + skim_times = self.skim_time[ + np.ix_(vehs_to_refuel.destination_skim_idx.to_numpy(), refuel_stations_idx) + ] + + # best station per vehicle + station_choice_idx = np.argmin(skim_times, axis=1) + min_times = skim_times[np.arange(len(station_choice_idx)), station_choice_idx] + nearest_station_skim_idx = refuel_stations_idx[station_choice_idx] + refuel_stations_maz = ( + refuel_stations.MAZ + if "MAZ" in refuel_stations.columns + else refuel_stations.mgra + ).to_numpy() + nearest_station_maz = refuel_stations_maz[station_choice_idx] + + # create refuel vehicle trips + refuel_veh_trips = pd.DataFrame( + { + "vehicle_id": vehs_to_refuel.vehicle_id, + "trip_i": np.nan, + "trip_j": np.nan, + "scenario": -1, + "srv_trip_num": -1, + "origin_skim_idx": vehs_to_refuel.destination_skim_idx, # start refuel trip from last dropoff + "destination_skim_idx": nearest_station_skim_idx, + "origin": vehs_to_refuel.destination, # start refuel trip from last dropoff + "destination": nearest_station_maz, + "servicing_trip_id": np.nan, + "OD_time": min_times, + "OD_dist": self.skim_dist[ + vehs_to_refuel.destination_skim_idx.to_numpy(), + nearest_station_skim_idx, + ], + "depart_bin": vehs_to_refuel.arrival_bin, # start refuel trip right after last trip + "arrival_bin": vehs_to_refuel.arrival_bin + + np.ceil(min_times / self.settings.time_bin_size).astype( + int + ), # assuming refuel trip takes the time to get to the station + "trip_type": "refuel", + "occupancy": 0, + } + ) + logger.info(f"\tRouting {len(refuel_veh_trips)} vehicles to refuel stations") + + return refuel_veh_trips + + def remap_skim_idx_to_zone(self, tnc_veh_trips, pooled_trips, tnc_trips): + """ + Convert skim indices back to TAZ and MAZ identifiers for output. + + Maps vehicle trip origins and destinations from internal skim indices to: + - TAZ: Traffic analysis zone IDs + - MAZ: Micro-analysis zone IDs (actual pickup/dropoff locations) + + For pooled trips, determines correct pickup/dropoff MAZ based on route_scenario. + For refuel trips, uses first MAZ in TAZ (preferring MAZs with refuel stations for destinations). + For regular vehicle movements, uses first MAZ in origin TAZ and scenario-specific MAZ for destinations. + + Parameters: + tnc_veh_trips: DataFrame of all vehicle movement legs. + pooled_trips: DataFrame of matched trip pairs. + tnc_trips: Original trip table with MAZ origins and destinations. + + Returns: + Tuple of (updated tnc_veh_trips, updated pooled_trips) with: + - origin_taz, destination_taz: Zone identifiers + - origin, destination: MAZ identifiers + - skim indices dropped from DataFrames + + Raises: + ValueError: If any vehicle trip is missing origin or destination MAZ after mapping. + """ + # remap the skim idx back to zone ids for output + skim_idx_to_taz_map = {v: k for k, v in self.skim_zone_mapping.items()} + + # map skim index back to taz + tnc_veh_trips["origin_taz"] = tnc_veh_trips.origin_skim_idx.map( + skim_idx_to_taz_map + ) + tnc_veh_trips["destination_taz"] = tnc_veh_trips.destination_skim_idx.map( + skim_idx_to_taz_map + ) + + pooled_trips["origin_taz"] = pooled_trips.origin_skim_idx.map( + skim_idx_to_taz_map + ) + pooled_trips["stop1_taz"] = pooled_trips.stop1_skim_idx.map(skim_idx_to_taz_map) + pooled_trips["stop2_taz"] = pooled_trips.stop2_skim_idx.map(skim_idx_to_taz_map) + pooled_trips["destination_taz"] = pooled_trips.destination_skim_idx.map( + skim_idx_to_taz_map + ) + + missing_o = tnc_veh_trips["origin"].isna() + missing_d = tnc_veh_trips["destination"].isna() + assert ( + not missing_o.any() + ), f"Some vehicle trips do not have an origin MAZ {tnc_veh_trips[missing_o]}" + assert ( + not missing_d.any() + ), f"Some vehicle trips do not have a destination MAZ {tnc_veh_trips[missing_d]}" + + # Drop skim indices after mapping back to zones/MAZ + tnc_veh_trips.drop( + columns=["origin_skim_idx", "destination_skim_idx"], + inplace=True, + errors="ignore", + ) + pooled_trips.drop( + columns=[ + "origin_skim_idx", + "destination_skim_idx", + "stop1_skim_idx", + "stop2_skim_idx", + ], + inplace=True, + errors="ignore", + ) + + return tnc_veh_trips, pooled_trips + + def write_outputs(self, tnc_veh_trips, pooled_trips, id_mapping_df): + """Write final tables to output folder""" + tnc_veh_trips.to_csv( + os.path.join(self.settings.output_dir, "output_tnc_vehicle_trips.csv"), + index=True, + ) + pooled_trips.to_csv( + os.path.join(self.settings.output_dir, "output_tnc_pooled_trips.csv"), + index=False, + ) + + id_mapping_df.to_csv( + os.path.join(self.settings.output_dir, "tnc_trip_id_mapping.csv"), + index=False, + ) + + def route_taxi_tncs(self): + """ + Execute the complete TNC routing simulation workflow. + + Main entry point that orchestrates the entire TNC routing process: + 1. Load input data (trips, land use, skims) + 2. For each time bin: + a. Identify potential trip pairs for pooling + b. Calculate detour times and select mutual-best pairs + c. Match vehicles to trips (existing or newly created) + d. Generate leg-by-leg vehicle routes + e. Calculate occupancy and update vehicle fleet + f. Check refueling needs and route vehicles to stations + 3. Remap skim indices to TAZ/MAZ zones + 4. Summarize results and write outputs + + Returns + ------- + pd.DataFrame + Complete vehicle trip table (tnc_veh_trips) with all legs indexed by + vehicle_trip_id. Output files are also written to disk. + """ + # read in initial skim data + self.read_skim_data(0) + + # read in taxi / tnc trip data + tnc_trips, id_mapping_df = self.read_input_data() + tnc_trips = self.sample_tnc_trip_simulation_time_bin(tnc_trips) + + # initialize vehicle fleet + vehicles = None + veh_trips = [] + pooling_trips = [] + + # loop through each time bin and process trips + for time_bin, tnc_trips_i in tnc_trips.groupby("time_bin"): + logger.info( + f"Processing time bin {time_bin} with {len(tnc_trips_i)} taxi / tnc trips:" + ) + shared_tnc_trips = tnc_trips_i[ + tnc_trips_i.trip_mode.isin(self.settings.shared_tnc_modes) + ] + trip_pairs = self.determine_potential_trip_pairs(shared_tnc_trips.copy()) + + trip_pairs = self.determine_detour_times(trip_pairs) + + trip_matches = self.select_mutual_best_recursive(trip_pairs) + + shared_trips_routed = self.create_trip_routes(trip_matches) + + full_trip_routes = self.create_full_trip_route_table( + tnc_trips_i, shared_trips_routed + ) + full_trip_routes["time_bin"] = time_bin + + vehicles, trip_to_veh_map = self.match_vehicles_to_trips( + vehicles, full_trip_routes + ) + + vehicle_trips_i, full_trip_routes = self.create_vehicle_trips( + full_trip_routes, vehicles, trip_to_veh_map + ) + vehicle_trips_i = self.calculate_occupancy(vehicle_trips_i, tnc_trips_i) + veh_trips.append(vehicle_trips_i) + pooling_trips.append(full_trip_routes) + + refuel_veh_trips_i = self.check_refuel_needs(vehicle_trips_i, vehicles) + if refuel_veh_trips_i is not None: + veh_trips.append(refuel_veh_trips_i) + + vehicles = self.update_vehicle_fleet( + vehicles, vehicle_trips_i, time_bin, refuel_veh_trips_i + ) + + tnc_veh_trips = pd.concat(veh_trips) + tnc_veh_trips["vehicle_trip_id"] = ( + tnc_veh_trips.vehicle_id * 1000 + + tnc_veh_trips.groupby("vehicle_id").cumcount() + + 1 + ) + tnc_veh_trips.set_index("vehicle_trip_id", inplace=True) + pooled_trips = pd.concat(pooling_trips) + + self.summarize_tnc_trips(tnc_veh_trips, tnc_trips, vehicles, pooled_trips) + + tnc_veh_trips, pooled_trips = self.remap_skim_idx_to_zone( + tnc_veh_trips, pooled_trips, tnc_trips + ) + + self.write_outputs(tnc_veh_trips, pooled_trips, id_mapping_df) + + return tnc_veh_trips + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Route TNC/Taxi trips and generate vehicle trip tables." + ) + parser.add_argument( + "project_dir", + type=str, + help="Path to the project directory. All relative paths in the settings " + "YAML file will be resolved relative to this directory.", + ) + parser.add_argument( + "--settings", + type=str, + default="taxi_tnc_routing_settings.yaml", + help="Path to the settings YAML file (default: taxi_tnc_routing_settings.yaml)", + ) + args = parser.parse_args() + + start_time = time.time() + + # Resolve project directory to absolute path + project_dir = os.path.abspath(os.path.expanduser(args.project_dir)) + if not os.path.isdir(project_dir): + raise ValueError(f"Project directory does not exist: {project_dir}") + + settings = load_settings(project_dir=project_dir, yaml_path=args.settings) + + router = TaxiTNCRouter(settings) + router.route_taxi_tncs() + + elapsed_time = time.time() - start_time + logger.info( + f"Time to complete: {elapsed_time:.2f} seconds = {elapsed_time/60:.2f} minutes" + ) diff --git a/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing_settings.yaml b/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing_settings.yaml new file mode 100644 index 000000000..ec9bacb79 --- /dev/null +++ b/src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing_settings.yaml @@ -0,0 +1,95 @@ +# paths are relative to project directory (merged with path of asim_demand_files) + +# path to activitysim output folder with trip data. asim_demand_files are relative to this path +asim_output_dir: output + +# path to folder with skim data. skim_files are relative to this path +skim_dir: output\skims + +# output folder for results. output files will be written here, namely output_tnc_vehicle_trips.csv +output_dir: output\tnc_routing + +# demand files to process from activitysim output directory +# accepts both csv and parquet formats +asim_demand_files: + - airport.CBX\final_cbxtrips + - airport.SAN\final_santrips + - resident\final_trips + - visitor\final_trips + - crossborder\final_trips + +# land use file used to map MAZ values to TAZ values +asim_landuse_file: resident\final_land_use + +# name of skim matrix in OMX file minus time period suffix +skim_time_core: HOV2_H_TIME + +# name of distance skim matrix in OMX file minus time period suffix +skim_dist_core: HOV2_H_DIST + +# skim time periods, should match network_los.yaml settings +skim_periods: ['EA', 'AM', 'MD', 'PM', 'EV'] + +# period breakpoints used to map depart bins to skim periods +periods: [0, 6, 12, 25, 32, 48] + +# skim file names aligned with skim_periods +skim_files: ['traffic_skims_EA.omx', 'traffic_skims_AM.omx', 'traffic_skims_MD.omx', 'traffic_skims_PM.omx', 'traffic_skims_EV.omx'] + +# modes for shared and single occupancy TNC / taxi trips +shared_tnc_modes: ['TNC_SHARED'] + +# modes for single occupancy TNC and taxi trips +single_tnc_modes: + - 'TNC_SINGLE' + - 'TAXI' + - 'RIDEHAIL_LOC1' + - 'RIDEHAIL_LOC2' + - 'TAXI_LOC1' + - 'TAXI_LOC2' + +# simulation time bin size (in mins) +# determines how far apart trips in time can be to be considered for pooling +time_bin_size: 10 + +# maximum initial wait time (in minutes) for a vehicle before a new vehicle is created +max_wait_time: 15 + +# buffer size comparing origins and destinations for potential pooling (in mins) +pooling_buffer: 10 + +# maximum allowed detour time for pooled trips (in mins) +max_detour: 15 + +# batch size for matching pooled trips together and matching trips to vehicles +# this is used to decrease runtime by considering only this number of trips at a time +pair_batch_size: 6000 + +# maximum vehicle occupancy per trip record +max_vehicle_occupancy: 4 + +# column in the landuse table that indicates the presence of refueling stations +landuse_refuel_col: refueling_stations + +# maximum distance (in miles) a vehicle can operate before refueling +max_refuel_dist: 300 + +# numpy random seed for reproducibility +random_seed: 42 + +# ============================================ +# Matrix Builder Settings (for tnc_av_matrix_builder.py) +# ============================================ + +# AV routing outputs (from ActivitySim av_routing model) +# Script will try .parquet first, then .csv +av_vehicle_trips_file: resident\final_av_vehicle_trips + +# TNC routing outputs (from taxi_tnc_routing model) +tnc_vehicle_trips_file: output_tnc_vehicle_trips.csv + +# Output directory for OMX matrix files +matrix_output_dir: output\assignment + +# Occupancy binning for TNC matrices (occupancy >= max grouped into max bin) +max_occupancy_bin: 3 \ No newline at end of file diff --git a/src/asim/scripts/taxi_tnc_routing/tnc_av_matrix_builder.py b/src/asim/scripts/taxi_tnc_routing/tnc_av_matrix_builder.py new file mode 100644 index 000000000..40e234cd2 --- /dev/null +++ b/src/asim/scripts/taxi_tnc_routing/tnc_av_matrix_builder.py @@ -0,0 +1,890 @@ +""" +TNC/AV Demand Matrix Builder + +Reads vehicle trip outputs from taxi_tnc_routing and av_routing models, +aggregates to O-D matrices by time period and occupancy, and writes +OMX files for import into Emme traffic assignment. + +Output Files: + - TNCVehicleTrips_pp.omx: TNC vehicle trips by occupancy (0, 1, 2, 3+) + - EmptyAVTrips.omx: AV deadhead/repositioning trips only + +Usage +----- + python tnc_av_matrix_builder.py [--settings ] + +Arguments +--------- + project_dir : str + Path to the project directory. All relative paths in the settings + YAML file (asim_output_dir, output_dir, skim_dir, matrix_output_dir) + are resolved relative to this directory. + + --settings : str, optional + Path to the settings YAML file (default: taxi_tnc_routing_settings.yaml) + +Examples +-------- + python tnc_av_matrix_builder.py /path/to/project + python tnc_av_matrix_builder.py C:/models/scenario1 --settings custom_settings.yaml +""" + +import os +import logging +import argparse +import time +from typing import Optional, Dict + +import numpy as np +import pandas as pd +import openmatrix as omx +import yaml +from pydantic import BaseModel, ValidationError, model_validator + +logger = logging.getLogger(__name__) + + +class MatrixBuilderSettings(BaseModel): + """ + Settings for the TNC/AV Matrix Builder. + + Extends taxi_tnc_routing settings with matrix output configuration. + """ + + # Input paths - from existing taxi_tnc_routing settings + asim_output_dir: str + output_dir: str # taxi_tnc_routing output dir (contains tnc vehicle trips) + + # Skim configuration - reused for zone mapping + skim_dir: str + skim_files: list + skim_periods: list = ["EA", "AM", "MD", "PM", "EV"] + periods: list = [0, 6, 12, 25, 32, 48] + + # Matrix builder specific settings + av_vehicle_trips_file: str = "final_av_vehicle_trips" + tnc_vehicle_trips_file: str = "output_tnc_vehicle_trips.csv" + matrix_output_dir: str = "./output" + max_occupancy_bin: int = 3 + + @model_validator(mode="after") + def check_periods_match(self): + """Validate that periods and skim_periods have compatible lengths.""" + if len(self.periods) != len(self.skim_periods) + 1: + raise ValueError( + f"periods ({len(self.periods)}) must have one more element than " + f"skim_periods ({len(self.skim_periods)})" + ) + return self + + +def load_settings(project_dir: str, yaml_path: str) -> MatrixBuilderSettings: + """ + Load and validate settings from YAML file. + + All relative paths in the settings are resolved relative to the project_dir. + + Parameters + ---------- + project_dir : str + Base project directory. All relative paths in settings will be resolved + relative to this directory. + yaml_path : str + Path to the YAML settings file. + + Returns + ------- + MatrixBuilderSettings + Validated settings object. + """ + # Try yaml_path as-is, then relative to project_dir, then relative to script dir + script_dir = os.path.dirname(os.path.abspath(__file__)) + candidates = [ + yaml_path, + os.path.join(project_dir, yaml_path), + os.path.join(script_dir, yaml_path), + ] + settings_file = next((p for p in candidates if os.path.exists(p)), None) + if settings_file is None: + raise FileNotFoundError( + f"Settings file not found: tried {candidates}" + ) + + with open(settings_file, "r") as f: + data = yaml.safe_load(f) + + # Resolve relative paths in settings relative to project_dir + path_fields = ["asim_output_dir", "output_dir", "skim_dir", "matrix_output_dir"] + for field in path_fields: + if field in data and data[field]: + path_value = os.path.expanduser(data[field]) + if not os.path.isabs(path_value): + data[field] = os.path.join(project_dir, path_value) + + try: + settings = MatrixBuilderSettings(**data) + except ValidationError as e: + logger.error(f"Settings validation error: {e}") + raise + + # Ensure output directory exists + matrix_output_dir = os.path.expanduser(settings.matrix_output_dir) + if not os.path.exists(matrix_output_dir): + os.makedirs(matrix_output_dir) + logger.info(f"Created matrix output directory: {matrix_output_dir}") + + return settings + + +class TNCVehicleMatrixBuilder: + """ + Builds OMX demand matrices from TNC and AV vehicle trip outputs. + + Reads vehicle trip tables from taxi_tnc_routing and av_routing models, + aggregates trips by O-D, period, and occupancy, and writes OMX matrices + for import into traffic assignment. + + Attributes + ---------- + settings : MatrixBuilderSettings + Configuration settings from YAML file + skim_zone_mapping : dict + Mapping from TAZ ID to skim matrix index + zone_ids : np.ndarray + Ordered array of zone IDs matching skim matrix dimensions + num_zones : int + Number of zones in the skim/output matrices + period_labels : list + Unique period labels (EA, AM, MD, PM, EV) + """ + + def __init__(self, settings: MatrixBuilderSettings, sample_rate: float = 1.0): + """ + Initialize the matrix builder with settings. + + Parameters + ---------- + settings : MatrixBuilderSettings + Configuration settings from YAML file. + sample_rate : float, optional + Sample rate used in the simulation (0-1). Output matrices will be + scaled by 1/sample_rate to expand to full population. Default is 1.0. + """ + self.settings = settings + self.sample_rate = sample_rate + self.expansion_factor = 1.0 / sample_rate + self.skim_zone_mapping: Dict[int, int] = {} + self.maz_to_taz: Dict[int, int] = {} + self.zone_ids: Optional[np.ndarray] = None + self.zone_mapping_name: str = "zone_id" # Default mapping name + self.num_zones: int = 0 + self.period_labels: list = [] + self.depart_bin_to_period: Dict[int, str] = {} + + self._load_zone_mapping() + self._load_maz_to_taz_mapping() + self._setup_period_mapping() + + def _load_zone_mapping(self) -> None: + """ + Load zone mapping from skim file. + + Reads the first skim file to get zone ordering and creates + a mapping from TAZ ID to matrix index. If no explicit mapping + exists in the OMX file, assumes standard 1-indexed zone IDs + based on matrix dimensions. + """ + skim_dir = os.path.expanduser(self.settings.skim_dir) + skim_file = self.settings.skim_files[0] + skim_path = os.path.join(skim_dir, skim_file) + + if not os.path.exists(skim_path): + raise FileNotFoundError( + f"Do not know how to map zones -- skim file not found: {skim_path}" + ) + + with omx.open_file(skim_path, "r") as f: + # Get list of available mappings + available_mappings = f.list_mappings() + + if available_mappings: + # Use the first available mapping + mapping_name = available_mappings[0] + self.zone_mapping_name = mapping_name # Store for output files + mapping = f.mapping(mapping_name) + self.zone_ids = np.array(list(mapping.keys())) + logger.info(f"Using zone mapping '{mapping_name}' from {skim_file}") + else: + # No mapping exists - assume standard zone IDs based on matrix shape + # Get shape from first matrix core + matrix_names = f.list_matrices() + if not matrix_names: + raise ValueError(f"No matrices found in skim file: {skim_path}") + + first_matrix = f[matrix_names[0]] + self.num_zones = first_matrix.shape[0] + # Assume 1-indexed zone IDs + self.zone_ids = np.arange(1, self.num_zones + 1) + logger.warning( + f"No zone mapping found in {skim_file}. " + f"Assuming standard 1-indexed zone IDs (1 to {self.num_zones})" + ) + + self.num_zones = len(self.zone_ids) + self.skim_zone_mapping = { + zone_id: idx for idx, zone_id in enumerate(self.zone_ids) + } + + logger.info(f"Loaded zone mapping with {self.num_zones} zones from {skim_file}") + + def _load_maz_to_taz_mapping(self) -> None: + """ + Load MAZ to TAZ mapping from final_land_use table. + + Reads the land use table from ActivitySim output directory to create + a mapping from MAZ (Micro Analysis Zone) to TAZ (Traffic Analysis Zone). + This is needed because AV vehicle trips use MAZ for origin/destination + but output matrices need to be at TAZ level. + """ + asim_dir = os.path.expanduser(self.settings.asim_output_dir) + + # Try parquet first, then csv + parquet_path = os.path.join(asim_dir, "final_land_use.parquet") + csv_path = os.path.join(asim_dir, "final_land_use.csv") + + land_use = None + file_used = None + + if os.path.exists(parquet_path): + try: + land_use = pd.read_parquet(parquet_path) + file_used = parquet_path + except Exception as e: + logger.warning(f"Error reading land_use parquet: {e}") + + if land_use is None and os.path.exists(csv_path): + try: + land_use = pd.read_csv(csv_path) + file_used = csv_path + except Exception as e: + logger.warning(f"Error reading land_use csv: {e}") + + if land_use is None: + logger.warning( + f"Land use file not found: tried {parquet_path} and {csv_path}. " + f"MAZ to TAZ mapping will not be available for AV trips." + ) + return + + # Determine MAZ and TAZ column names + # Common column name patterns + maz_col = None + taz_col = None + + # Check for MAZ column + for col in ["MAZ", "maz", "zone_id", "ZONE_ID", "mgra", "MGRA"]: + if col in land_use.columns: + maz_col = col + break + + # Check for TAZ column + for col in ["TAZ", "taz", "TAZ_ORIGINAL", "taz_original"]: + if col in land_use.columns: + taz_col = col + break + + # If MAZ column is the index, use that + if maz_col is None and land_use.index.name in [ + "MAZ", + "maz", + "zone_id", + "ZONE_ID", + "mgra", + "MGRA", + ]: + land_use = land_use.reset_index() + maz_col = land_use.columns[0] + + if maz_col is None or taz_col is None: + logger.warning( + f"Could not identify MAZ and/or TAZ columns in land use file. " + f"Available columns: {list(land_use.columns)}. " + f"MAZ to TAZ mapping will not be available for AV trips." + ) + return + + # Create the mapping + self.maz_to_taz = land_use.set_index(maz_col)[taz_col].to_dict() + + logger.info( + f"Loaded MAZ to TAZ mapping with {len(self.maz_to_taz)} zones from {file_used} " + f"(MAZ col: {maz_col}, TAZ col: {taz_col})" + ) + + def _setup_period_mapping(self) -> None: + """ + Setup time period mapping from settings. + + Uses periods boundaries and skim_periods labels to create + a mapping from depart_bin (1-48) to period label. + """ + # Get unique period labels + self.period_labels = list(dict.fromkeys(self.settings.skim_periods)) + + # Create depart_bin -> period mapping + # periods defines boundaries: [0, 6, 12, 25, 32, 48] + # skim_periods defines labels for each interval + edges = np.array(self.settings.periods, dtype=int) + labels = np.array(self.settings.skim_periods, dtype=object) + + # Map each depart_bin (1-48) to a period + for depart_bin in range(1, 49): + # Find which interval this bin falls into + idx = np.searchsorted(edges, depart_bin, side="right") - 1 + idx = np.clip(idx, 0, len(labels) - 1) + self.depart_bin_to_period[depart_bin] = labels[idx] + + logger.info(f"Setup period mapping for periods: {self.period_labels}") + + def _read_tnc_vehicle_trips(self) -> Optional[pd.DataFrame]: + """ + Read TNC vehicle trips from taxi_tnc_routing output. + + Returns + ------- + pd.DataFrame or None + TNC vehicle trips with columns: origin_taz, destination_taz, + depart_bin, occupancy. Returns None if file not found or empty. + """ + output_dir = os.path.expanduser(self.settings.output_dir) + tnc_file = os.path.join(output_dir, self.settings.tnc_vehicle_trips_file) + + if not os.path.exists(tnc_file): + logger.warning(f"TNC vehicle trips file not found: {tnc_file}") + return None + + try: + trips = pd.read_csv(tnc_file) + except Exception as e: + logger.warning(f"Error reading TNC vehicle trips: {e}") + return None + + if trips.empty: + logger.warning("TNC vehicle trips file is empty") + return None + + # Validate required columns + required_cols = ["origin_taz", "destination_taz", "depart_bin", "occupancy"] + missing_cols = [col for col in required_cols if col not in trips.columns] + if missing_cols: + logger.warning(f"TNC trips missing required columns: {missing_cols}") + return None + + logger.info(f"Read {len(trips)} TNC vehicle trips from {tnc_file}") + return trips[required_cols].copy() + + def _read_av_vehicle_trips(self) -> Optional[pd.DataFrame]: + """ + Read AV vehicle trips from ActivitySim output. + + Tries .parquet first, then .csv. Returns only deadhead trips. + + Returns + ------- + pd.DataFrame or None + AV deadhead trips with columns: origin, destination, depart, + is_deadhead. Returns None if not found or empty. + """ + asim_dir = os.path.expanduser(self.settings.asim_output_dir) + base_name = self.settings.av_vehicle_trips_file + + # Try parquet first, then csv + parquet_path = os.path.join(asim_dir, f"{base_name}.parquet") + csv_path = os.path.join(asim_dir, f"{base_name}.csv") + + trips = None + file_used = None + + if os.path.exists(parquet_path): + try: + trips = pd.read_parquet(parquet_path) + file_used = parquet_path + except Exception as e: + logger.warning(f"Error reading AV trips parquet: {e}") + + if trips is None and os.path.exists(csv_path): + try: + trips = pd.read_csv(csv_path) + file_used = csv_path + except Exception as e: + logger.warning(f"Error reading AV trips csv: {e}") + + if trips is None: + logger.warning( + f"AV vehicle trips file not found: tried {parquet_path} and {csv_path}" + ) + return None + + if trips.empty: + logger.warning("AV vehicle trips file is empty") + return None + + # Filter to deadhead trips only + deadhead_trips = trips[ + (trips["is_deadhead"] == True) + & (trips.origin > 0) + & (trips.destination > 0) + ].copy() + + if deadhead_trips.empty: + logger.warning("No deadhead trips found in AV vehicle trips") + return None + + # Validate required columns for deadhead trips + required_cols = ["origin", "destination", "depart"] + missing_cols = [ + col for col in required_cols if col not in deadhead_trips.columns + ] + if missing_cols: + logger.warning( + f"AV deadhead trips missing required columns: {missing_cols}" + ) + return None + + logger.info( + f"Read {len(deadhead_trips)} AV deadhead trips from {file_used} " + f"(out of {len(trips)} total AV trips)" + ) + + # Convert MAZ to TAZ for origin and destination + if not self.maz_to_taz: + logger.warning("No MAZ to TAZ mapping available. AV trips will be skipped.") + return None + + deadhead_trips = deadhead_trips.copy() + deadhead_trips["origin_taz"] = deadhead_trips["origin"].map(self.maz_to_taz) + deadhead_trips["destination_taz"] = deadhead_trips["destination"].map( + self.maz_to_taz + ) + + # Check for unmapped MAZs + unmapped_origins = deadhead_trips["origin_taz"].isna().sum() + unmapped_dests = deadhead_trips["destination_taz"].isna().sum() + + if unmapped_origins > 0 or unmapped_dests > 0: + logger.error( + f"Found {unmapped_origins} unmapped origin MAZs and " + f"{unmapped_dests} unmapped destination MAZs in AV trips" + ) + raise ValueError( + "Unmapped MAZs found in AV deadhead trips -- check MAZ to TAZ mapping" + ) + + deadhead_trips["origin_taz"] = deadhead_trips["origin_taz"].astype(int) + deadhead_trips["destination_taz"] = deadhead_trips["destination_taz"].astype( + int + ) + + return deadhead_trips[ + ["origin_taz", "destination_taz", "depart", "is_deadhead"] + ].copy() + + def _map_zones_to_indices( + self, trips: pd.DataFrame, origin_col: str, dest_col: str + ) -> pd.DataFrame: + """ + Map zone IDs to matrix indices. + + Parameters + ---------- + trips : pd.DataFrame + Trip records with origin/destination columns + origin_col : str + Column name for origin zone + dest_col : str + Column name for destination zone + + Returns + ------- + pd.DataFrame + Trips with added origin_idx and dest_idx columns + """ + trips = trips.copy() + trips["origin_idx"] = trips[origin_col].map(self.skim_zone_mapping) + trips["dest_idx"] = trips[dest_col].map(self.skim_zone_mapping) + + # Filter out trips with unmapped zones + valid_mask = trips["origin_idx"].notna() & trips["dest_idx"].notna() + n_invalid = (~valid_mask).sum() + if n_invalid > 0: + logger.warning(f"Dropping {n_invalid} trips with unmapped zones") + + trips = trips[valid_mask].copy() + trips["origin_idx"] = trips["origin_idx"].astype(int) + trips["dest_idx"] = trips["dest_idx"].astype(int) + + return trips + + def _map_depart_to_period( + self, trips: pd.DataFrame, depart_col: str + ) -> pd.DataFrame: + """ + Map departure time to period labels. + + Parameters + ---------- + trips : pd.DataFrame + Trip records with departure time column + depart_col : str + Column name for departure time (1-48 half-hour bins) + + Returns + ------- + pd.DataFrame + Trips with added 'period' column + """ + trips = trips.copy() + trips["period"] = trips[depart_col].map(self.depart_bin_to_period) + + # Handle any unmapped values + unmapped = trips["period"].isna() + if unmapped.any(): + logger.warning( + f"Found {unmapped.sum()} trips with unmapped depart times, " + f"assigning to first period" + ) + trips.loc[unmapped, "period"] = self.period_labels[0] + + return trips + + def _aggregate_to_matrix(self, trips: pd.DataFrame, period: str) -> np.ndarray: + """ + Aggregate trips to O-D matrix for a given period. + + Parameters + ---------- + trips : pd.DataFrame + Trip records with origin_idx, dest_idx, and period columns + period : str + Period label to filter by + + Returns + ------- + np.ndarray + 2D array of shape (num_zones, num_zones) with trip counts + """ + matrix = np.zeros((self.num_zones, self.num_zones), dtype=np.float32) + + period_trips = trips[trips["period"] == period] + + if period_trips.empty: + return matrix + + # Use numpy bincount for fast aggregation + o_idx = period_trips["origin_idx"].values + d_idx = period_trips["dest_idx"].values + + # Create flat index for O-D pairs + flat_idx = o_idx * self.num_zones + d_idx + + # Count trips per O-D pair + counts = np.bincount(flat_idx, minlength=self.num_zones * self.num_zones) + matrix = counts.reshape(self.num_zones, self.num_zones).astype(np.float32) + + return matrix + + def _create_empty_matrix(self) -> np.ndarray: + """Create a zero-filled matrix of the correct dimensions.""" + return np.zeros((self.num_zones, self.num_zones), dtype=np.float32) + + def _write_tnc_matrices( + self, tnc_trips: Optional[pd.DataFrame], input_trip_count: int + ) -> int: + """ + Write TNC vehicle trip matrices to OMX files. + + Creates one OMX file per period with cores for each occupancy bin + (0, 1, 2, 3+). Occupancy 0 includes deadhead/repositioning trips. + + If tnc_trips is None or empty, writes empty matrices with a warning. + + Parameters + ---------- + tnc_trips : pd.DataFrame or None + ALL TNC vehicle trips (both serving and deadhead) + input_trip_count : int + Original number of trips from input file for validation + + Returns + ------- + int + Total number of trips written to matrices + """ + output_dir = os.path.expanduser(self.settings.matrix_output_dir) + total_written = 0 + + if tnc_trips is None or tnc_trips.empty: + logger.warning("No TNC trips available, writing empty TNC matrices") + tnc_trips = pd.DataFrame( + columns=["origin_taz", "destination_taz", "depart_bin", "occupancy"] + ) + + # Track trips after zone/period mapping for validation + trips_after_mapping = len(tnc_trips) + + # Map zones and periods + tnc_trips = self._map_zones_to_indices( + tnc_trips, "origin_taz", "destination_taz" + ) + tnc_trips = self._map_depart_to_period(tnc_trips, "depart_bin") + + trips_after_zone_mapping = len(tnc_trips) + + # Bin occupancy (0, 1, 2, 3+) + max_bin = self.settings.max_occupancy_bin + tnc_trips["occ_bin"] = tnc_trips["occupancy"].clip(upper=max_bin).astype(int) + + # Write one OMX file per period + for period in self.period_labels: + omx_filename = f"TNCVehicleTrips_{period}.omx" + omx_path = os.path.join(output_dir, omx_filename) + + with omx.open_file(omx_path, "w") as f: + # Create zone mapping using same name as input skim + f.create_mapping(self.zone_mapping_name, self.zone_ids) + + # Write matrix for each occupancy bin + for occ_bin in range(max_bin + 1): + core_name = f"TNC_{period}_{occ_bin}" + + occ_trips = tnc_trips[tnc_trips["occ_bin"] == occ_bin] + matrix = self._aggregate_to_matrix(occ_trips, period) + + # Scale matrix by expansion factor (1/sample_rate) + matrix = matrix * self.expansion_factor + + f[core_name] = matrix + + matrix_trips = matrix.sum() + total_written += matrix_trips + logger.info(f" {core_name}: {matrix_trips:.0f} trips") + + logger.info(f"Wrote TNC matrices to {omx_path}") + + # Assert that all trips after zone mapping are written (accounting for expansion) + expected_written = trips_after_zone_mapping * self.expansion_factor + assert abs(total_written - expected_written) < 1e-6, ( + f"TNC trip count mismatch: {trips_after_zone_mapping} trips after zone mapping " + f"* {self.expansion_factor} expansion = {expected_written:.0f} expected, " + f"but {total_written:.0f} trips written to matrices" + ) + + logger.info( + f"TNC validation: {input_trip_count} input trips -> " + f"{trips_after_zone_mapping} after zone mapping -> " + f"{total_written:.0f} written to matrices" + ) + + return int(total_written) + + def _write_empty_av_matrices( + self, av_deadhead: Optional[pd.DataFrame], input_trip_count: int + ) -> int: + """ + Write AV deadhead trip matrices to OMX file. + + Writes EmptyAVTrips.omx with one core per period containing ONLY + deadhead/repositioning trips from the AV routing model. + + If av_deadhead is None or empty, writes empty matrices with warning. + + Parameters + ---------- + av_deadhead : pd.DataFrame or None + AV deadhead/repositioning trips only + input_trip_count : int + Original number of trips from input file for validation + + Returns + ------- + int + Total number of trips written to matrices + """ + output_dir = os.path.expanduser(self.settings.matrix_output_dir) + omx_path = os.path.join(output_dir, "EmptyAVTrips.omx") + total_written = 0 + + if av_deadhead is None or av_deadhead.empty: + logger.warning("No AV deadhead trips available, writing empty AV matrices") + av_deadhead = pd.DataFrame( + columns=["origin_taz", "destination_taz", "depart"] + ) + + trips_after_taz_mapping = len(av_deadhead) + + # Map zones and periods + if not av_deadhead.empty: + av_deadhead = self._map_zones_to_indices( + av_deadhead, "origin_taz", "destination_taz" + ) + av_deadhead = self._map_depart_to_period(av_deadhead, "depart") + + trips_after_zone_mapping = len(av_deadhead) + + with omx.open_file(omx_path, "w") as f: + # Create zone mapping using same name as input skim + f.create_mapping(self.zone_mapping_name, self.zone_ids) + + # Write matrix for each period + for period in self.period_labels: + core_name = f"EmptyAV_{period}" + + if av_deadhead.empty: + matrix = self._create_empty_matrix() + else: + matrix = self._aggregate_to_matrix(av_deadhead, period) + + # Scale matrix by expansion factor (1/sample_rate) + matrix = matrix * self.expansion_factor + + f[core_name] = matrix + + matrix_trips = matrix.sum() + total_written += matrix_trips + logger.info(f" {core_name}: {matrix_trips:.0f} trips") + + logger.info(f"Wrote EmptyAV matrices to {omx_path}") + + # Assert that all trips after zone mapping are written (accounting for expansion) + expected_written = trips_after_zone_mapping * self.expansion_factor + assert abs(total_written - expected_written) < 1e-6, ( + f"AV trip count mismatch: {trips_after_zone_mapping} trips after zone mapping " + f"* {self.expansion_factor} expansion = {expected_written:.0f} expected, " + f"but {total_written:.0f} trips written to matrices" + ) + + logger.info( + f"AV validation: {input_trip_count} deadhead trips -> " + f"{trips_after_taz_mapping} after MAZ->TAZ mapping -> " + f"{trips_after_zone_mapping} after zone mapping -> " + f"{total_written:.0f} written to matrices" + ) + + return int(total_written) + + def build_matrices(self) -> None: + """ + Main entry point: read inputs, aggregate, and write OMX files. + + Workflow: + 1. Read TNC vehicle trips (warn if missing/empty) + 2. Read AV vehicle trips and filter to deadhead (warn if missing/empty) + 3. Map zones and periods + 4. Write TNCVehicleTrips_pp.omx files (all TNC trips by occupancy) + 5. Write EmptyAVTrips.omx file (AV deadhead only) + """ + # Read TNC vehicle trips + logger.info("Reading TNC vehicle trips...") + tnc_trips = self._read_tnc_vehicle_trips() + tnc_input_count = len(tnc_trips) if tnc_trips is not None else 0 + + # Read AV vehicle trips (deadhead only) + logger.info("Reading AV vehicle trips...") + av_deadhead = self._read_av_vehicle_trips() + av_input_count = len(av_deadhead) if av_deadhead is not None else 0 + + # Check if we have any data at all + if tnc_trips is None and av_deadhead is None: + logger.warning( + "No TNC or AV trips found. Writing empty matrices for all outputs." + ) + + # Write TNC matrices (all TNC trips by occupancy) + logger.info("Writing TNC vehicle trip matrices...") + tnc_written = self._write_tnc_matrices(tnc_trips, tnc_input_count) + + # Write EmptyAV matrices (AV deadhead only) + logger.info("Writing EmptyAV matrices...") + av_written = self._write_empty_av_matrices(av_deadhead, av_input_count) + + # Summary + logger.info("=" * 60) + logger.info("Matrix building complete!") + logger.info("=" * 60) + + logger.info( + f" TNC trips: {tnc_input_count:,} input -> {tnc_written:,} written" + ) + logger.info( + f" AV deadhead trips: {av_input_count:,} input -> {av_written:,} written" + ) + logger.info(f" Output directory: {self.settings.matrix_output_dir}") + + +def main(): + """CLI entry point.""" + start_time = time.time() + parser = argparse.ArgumentParser( + description="Build TNC/AV demand matrices from routing model outputs" + ) + parser.add_argument( + "project_dir", + type=str, + help="Path to the project directory. All relative paths in the settings " + "YAML file will be resolved relative to this directory.", + ) + parser.add_argument( + "--settings", + default="taxi_tnc_routing_settings.yaml", + help="Path to settings YAML file (default: taxi_tnc_routing_settings.yaml)", + ) + parser.add_argument( + "--sample-rate", + type=float, + default=1.0, + help="Sample rate (0-1) used in the simulation. Output matrices will be scaled " + "by 1/sample_rate to expand to full population. (default: 1.0)", + ) + args = parser.parse_args() + + # Validate sample rate + if not 0 < args.sample_rate <= 1: + raise ValueError(f"Sample rate must be between 0 and 1 (exclusive of 0), got: {args.sample_rate}") + + # Resolve project directory to absolute path + project_dir = os.path.abspath(os.path.expanduser(args.project_dir)) + if not os.path.isdir(project_dir): + raise ValueError(f"Project directory does not exist: {project_dir}") + + settings = load_settings(project_dir=project_dir, yaml_path=args.settings) + + # Setup logging + log_dir = settings.matrix_output_dir + log_file = os.path.join(log_dir, "tnc_av_matrix_builder.log") + + logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[logging.FileHandler(log_file), logging.StreamHandler()], + ) + + logger.info("=" * 60) + logger.info("TNC/AV Demand Matrix Builder") + logger.info("=" * 60) + logger.info(f"Sample rate: {args.sample_rate}") + + try: + builder = TNCVehicleMatrixBuilder(settings, sample_rate=args.sample_rate) + builder.build_matrices() + except Exception as e: + logger.error(f"Error building matrices: {e}", exc_info=True) + raise + + elapsed_time = time.time() - start_time + logger.info( + f"\nTime to complete: {elapsed_time:.2f} seconds = {elapsed_time/60:.2f} minutes" + ) + + +if __name__ == "__main__": + main() diff --git a/src/main/emme/toolbox/master_run.py b/src/main/emme/toolbox/master_run.py index 54c980684..38000f470 100644 --- a/src/main/emme/toolbox/master_run.py +++ b/src/main/emme/toolbox/master_run.py @@ -683,11 +683,10 @@ def __call__(self, main_directory, scenario_id, scenario_title, emmebank_title, # raise Exception("Error in skim shared memory manager, view logbook for details") if not skipMAASModel[iteration]: - self.run_proc("runMtxMgr.cmd", [drive, drive + path_no_drive], "Start matrix manager") self.run_proc( "runSandagAbm_MAAS.cmd", - [drive, drive + path_forward_slash, 1, 0], - "Java-Run AV allocation model and TNC routing model", capture_output=True) + [drive, drive + path_forward_slash, str(sample_rate[iteration])], + "Python Taxi and TNC routing model + AV and TNC matrix builder", capture_output=True) if (not skipCVMEstablishmentSyn) and (iteration == 0): self.run_proc("cvmEst.bat", [drive, path_no_drive, cvm_emp_input_file], diff --git a/src/main/resources/runSandagAbm_MAAS.cmd b/src/main/resources/runSandagAbm_MAAS.cmd index 61b87b7d3..ee7e8af57 100644 --- a/src/main/resources/runSandagAbm_MAAS.cmd +++ b/src/main/resources/runSandagAbm_MAAS.cmd @@ -1,61 +1,21 @@ -rem @echo off +ECHO ON set PROJECT_DRIVE=%1 set PROJECT_DIRECTORY=%2 -set SAMPLERATE=%3 -set ITERATION=%4 +set SAMPLE_RATE=%3 %PROJECT_DRIVE% -cd %PROJECT_DRIVE%%PROJECT_DIRECTORY% -call %PROJECT_DIRECTORY%\bin\CTRampEnv.bat +cd /d %PROJECT_DIRECTORY% -rem ### First save the JAVA_PATH environment variable so it s value can be restored at the end. -set OLDJAVAPATH=%JAVA_PATH% +ECHO Activate ActivitySim Python Environment.... +CALL %activate_uv_asim% -rem ### Set the directory of the jdk version desired for this model run -rem ### Note that a jdk is required; a jre is not sufficient, as the UEC class generates -rem ### and compiles code during the model run, and uses javac in the jdk to do this. -set JAVA_PATH=%JAVA_64_PATH% +:: Run Taxi/TNC Routing Model +python src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing.py %PROJECT_DIRECTORY% --settings src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing_settings.yaml || exit /b 2 +ECHO Taxi / TNC routing model run complete! -rem ### Name the project directory. This directory will hava data and runtime subdirectories -set RUNTIME=%PROJECT_DIRECTORY% -set CONFIG=%RUNTIME%/conf +:: Create demand matrices from AV and TNC vehicle trips +python src/asim/scripts/taxi_tnc_routing/tnc_av_matrix_builder.py %PROJECT_DIRECTORY% --settings src/asim/scripts/taxi_tnc_routing/taxi_tnc_routing_settings.yaml --sample-rate %SAMPLE_RATE% || exit /b 2 - -set JAR_LOCATION=%PROJECT_DIRECTORY%/application -set LIB_JAR_PATH=%JAR_LOCATION%\* - -rem ### Define the CLASSPATH environment variable for the classpath needed in this model run. -set OLDCLASSPATH=%CLASSPATH% -set CLASSPATH=%CONFIG%;%RUNTIME%;%LIB_JAR_PATH%; - -rem ### Save the name of the PATH environment variable, so it can be restored at the end of the model run. -set OLDPATH=%PATH% - -rem ### Change the PATH environment variable so that JAVA_HOME is listed first in the PATH. -rem ### Doing this ensures that the JAVA_HOME path we defined above is the on that gets used in case other java paths are in PATH. -set PATH=%JAVA_PATH%\bin;%OLDPATH% - -rem run ping to add a pause so that hhMgr and mtxMgr have time to fully start -ping -n 10 %MAIN% > nul - -cd %PROJECT_DRIVE%%PROJECT_DIRECTORY% - -rem TNC Fleet Model -%JAVA_64_PATH%\bin\java -server -Xms%MEMORY_SPMARKET_MIN% -Xmx%MEMORY_SPMARKET_MAX% -cp "%CLASSPATH%" -Djxl.nowarnings=true -Dlog4j.configuration=log4j.xml -Dproject.folder=%PROJECT_DIRECTORY% org.sandag.abm.maas.TNCFleetModel %PROPERTIES_NAME% -iteration %ITERATION% -sampleRate %SAMPLERATE% || goto error - -rem Household AV Allocation Model -%JAVA_64_PATH%\bin\java -server -Xms%MEMORY_SPMARKET_MIN% -Xmx%MEMORY_SPMARKET_MAX% -cp "%CLASSPATH%" -Djxl.nowarnings=true -Dlog4j.configuration=log4j.xml -Dproject.folder=%PROJECT_DIRECTORY% org.sandag.abm.maas.HouseholdAVAllocationModelRunner %PROPERTIES_NAME% -iteration %ITERATION% -sampleRate %SAMPLERATE% || goto error -rem ### restore saved environment variable values, and change back to original current directory -set JAVA_PATH=%OLDJAVAPATH% -set PATH=%OLDPATH% -set CLASSPATH=%OLDCLASSPATH% - -goto :EOF - -:error -rem ### restore saved environment variable values, and change back to original current directory -set JAVA_PATH=%OLDJAVAPATH% -set PATH=%OLDPATH% -set CLASSPATH=%OLDCLASSPATH% -exit /b 2 \ No newline at end of file +ECHO AV/TNC matrix building complete! +ECHO %startTime%%Time% \ No newline at end of file