What is RouteE?

Contents

What is RouteE?#

RouteE-Powertrain is a Python package that allows users to work with a set of pre-trained mesoscopic vehicle energy prediction models for a varity of vehicle types. Additionally, users can train their own models if "ground truth" energy consumption and driving data are available. RouteE-Powertrain models predict vehicle energy consumption over links in a road network, so the features considered for prediction often include traffic speeds, road grade, turns, etc. Common applications of RouteE-Powertrain are energy-aware ("eco") routing (like RouteE-Compass), energy accounting in mesoscopic simulations, and range estimation (especially for EVs). The diagrams below illustrate the logic and data flows for training custom RouteE-Powertrain models and performing prediction with previously trained models.

Training#

image

Training new RouteE-Powertrain models requires a set of link aggregate driving data with energy consumption on each link in the road network. Often this data comes from high-frequency GPS or telematics data collected by dedicated loggers or from connected vehicles that are always streaming telematics data. The energy consumption can either be vehicle reported/measured or simulated using a powertrain simulation software like NREL's FASTSim.

Prediction#

image

In application, trained RouteE-Powertrain models expect link features as inputs and return predicted energy consumption for a particular vehicle over a link with the particular feature set. The RouteE developers maintain a separate repository for previously trained RouteE-Powertrain models, available for prediction "off the shelf". To see which models are available you can use the pt.list_available_models() function.

A couple of models are distributed with the package itself and you can list those like:

import nrel.routee.powertrain as pt

pt.list_available_models(external=False)
['2016_TOYOTA_Camry_4cyl_2WD', '2017_CHEVROLET_Bolt']

In addition, a larger number of models are available for download and can be listed like:

pt.list_available_models(local=False)
['2010_Mazda_3_i-Stop',
 '2012_Ford_Focus',
 '2012_Ford_Fusion',
 '2016_AUDI_A3_4cyl_2WD',
 '2016_BMW_328d_4cyl_2WD',
 '2016_BMW_i3_REx_PHEV_Charge_Depleting',
 '2016_BMW_i3_REx_PHEV_Charge_Sustaining',
 '2016_CHEVROLET_Malibu_4cyl_2WD',
 '2016_CHEVROLET_Spark_EV',
 '2016_CHEVROLET_Volt_Charge_Depleting',
 '2016_CHEVROLET_Volt_Charge_Sustaining',
 '2016_FORD_C-MAX_(PHEV)_Charge_Depleting',
 '2016_FORD_C-MAX_(PHEV)_Charge_Sustaining',
 '2016_FORD_C-MAX_HEV',
 '2016_FORD_Escape_4cyl_2WD',
 '2016_FORD_Explorer_4cyl_2WD',
 '2016_HYUNDAI_Elantra_4cyl_2WD',
 '2016_HYUNDAI_Sonata_PHEV_Charge_Depleting',
 '2016_HYUNDAI_Sonata_PHEV_Charge_Sustaining',
 '2016_Hyundai_Tucson_Fuel_Cell',
 '2016_KIA_Optima_Hybrid',
 '2016_Leaf_24_kWh',
 '2016_MITSUBISHI_i-MiEV',
 '2016_Nissan_Leaf_30_kWh',
 '2016_TESLA_Model_S60_2WD',
 '2016_TOYOTA_Camry_4cyl_2WD',
 '2016_TOYOTA_Corolla_4cyl_2WD',
 '2016_TOYOTA_Corolla_4cyl_2WD_Stochastic',
 '2016_TOYOTA_Highlander_Hybrid',
 '2016_Toyota_Prius_Two_FWD',
 '2017_CHEVROLET_Bolt',
 '2017_Maruti_Dzire_VDI',
 '2017_Prius_Prime_Charge_Depleting',
 '2017_Prius_Prime_Charge_Sustaining',
 '2017_Toyota_Highlander_3',
 '2020_Chevrolet_Colorado_2WD_Diesel',
 '2020_Chevrolet_Colorado_2WD_Diesel_Stochastic',
 '2020_VW_Golf_1',
 '2020_VW_Golf_2',
 '2021_BMW_iX_xDrive40',
 '2021_Cupra_Born',
 '2021_Fiat_Panda_Mild_Hybrid',
 '2021_Honda_N-Box_G',
 '2021_Peugot_3008',
 '2022_Ford_F-150_Lightning_4WD',
 '2022_MINI_Cooper_SE_Hardtop_2_door',
 '2022_Renault_Megane_E-Tech',
 '2022_Renault_Zoe_ZE50_R135',
 '2022_Tesla_Model_3_RWD',
 '2022_Tesla_Model_Y_RWD',
 '2022_Tesla_Model_Y_RWD_Stochastic',
 '2022_Toyota_Avanza_E_J_MT',
 '2022_Toyota_RAV4_Hybrid_LE',
 '2022_Toyota_RAV4_Hybrid_LE_Stochastic',
 '2022_Toyota_Yaris_Hybrid_Mid',
 '2022_Volvo_XC40_Recharge_twin',
 '2023_Mitsubishi_Pajero_Sport',
 '2023_Polestar_2_Long_range_Dual_motor',
 '2023_Volvo_C40_Recharge',
 '2024_BYD_Dolphin_Active',
 '2024_Toyota_Vios_1',
 '2024_VinFast_VF_e34',
 '2024_Volkswagen_Polo_1',
 'BYD_ATTO_3',
 'Daycab_new_300kW',
 'Daycab_new_400kW',
 'Daycab_old_300kW',
 'Daycab_old_400kW',
 'Maruti_Swift_4cyl_2WD',
 'Nissan_Navara',
 'Renault_Clio_IV_diesel',
 'Renault_Megane_1',
 'Sleeper_new_300kW',
 'Sleeper_new_400kW',
 'Sleeper_old_300kW',
 'Sleeper_old_400kW',
 'Toyota_Corolla_Cross_Hybrid',
 'Toyota_Etios_Liva_diesel',
 'Toyota_Hilux_Double_Cab_4WD',
 'Toyota_Mirai']

To predict with any of these models you can use the pt.load_model() function. Here's an example of loading both a local model and an external model.

camry = pt.load_model('2016_TOYOTA_Camry_4cyl_2WD')
tesla = pt.load_model('2022_Tesla_Model_Y_RWD')