Source code for models.fleet_simulator.main

import pandas as pd
import warnings
import datetime
from pathlib import Path
from . import commercial_simulation
from .import_vehicles import get_vehicle_data
from .. import utils

print_level_base = 1

warnings.filterwarnings("ignore")
    
utils.print_update(level=print_level_base,message="Initializing Fleet Simulator...")

[docs] def run_fleet_simulation(start_date:str, end_date:str, samples:int, force_update=True, show_log:bool=False): """_summary_ Args: start_date (str): "yyyy-mm-dd" days (int): Number of days to simulate samples (int): Number of samples to get from the vehicle population """ travel_patterns_save_to = Path('results/fleet_simulator/commercial_travel_patterns.csv') if travel_patterns_save_to.exists(): utils.print_update(level=print_level_base+1, message="Travel patterns file already exists") if not force_update: utils.print_update(level=print_level_base+1, message="force-update is disabled. Skipping travel pattern simulation.") return # Gracefully exit the function else: utils.print_update(level=print_level_base+1, message="The simulation will overwrite the existing travel patterns file.") vehicle_resolution:int=1 # Import data icbc_commercial_data = pd.read_csv('data/fleet_simulator/inputs/icbc_commercial_population.csv') icbc_passenger_data = pd.read_csv('data/fleet_simulator/inputs/icbc_passenger_population.csv') vehicle_types = pd.read_csv('data/fleet_simulator/inputs/vehicle_types.csv') utils.print_update(level=print_level_base+1,message="Preparing vehicle data...") get_vehicle_data(vehicle_resolution, False, icbc_commercial_data, icbc_passenger_data, vehicle_types) business_fleet = pd.read_csv('data/fleet_simulator/processed/vehicle_populations/disaggregated_business_fleet.csv') nrel_data = pd.read_csv('data/fleet_simulator/inputs/nrel_commercial_fleet_data.csv') timespan = (datetime.datetime.strptime(end_date, '%Y-%m-%d') - datetime.datetime.strptime(start_date, '%Y-%m-%d')).days+1 utils.print_update(level=print_level_base+1,message=f"Preparing travel pattern for {timespan} days...") commercial_simulation.generate_travel_patterns(start_date, end_date, samples, nrel_data, business_fleet, show_log=show_log)