Sumo Simulation Backends

sumocr supports different, so called, sumocr.interface.sumo_simulation_backend.SumoSimulationBackend. Those backends can be used to work with different

Headless Sumo Simulation backend

By utilizing sumocr.interface.sumo_simulation_backend.HeadlessSumoSimulationBackend one can run headless simulations. To maximize performane this internally uses libsumo.

from sumocr.helpers import get_sumo_binary_path
from sumocr.interface.sumo_simulation_backend import HeadlessSumoSimulationBackend

sumo_sim_backend = HeadlessSumoSimulationBackend(
    config, wrapper.sumo_cfg_file, get_sumo_binary_path()
)
sumo_sim = SumoSimulation(sumo_sim_backend)
sumo_sim.initialize(config, wrapper)

GUI Sumo Simulation backend

By utilizing sumocr.interface.sumo_simulation_backend.GuiSumoSimulationBackend one can run simulations with the sumo GUI. This uses traci internally.

from sumocr.helpers import get_sumo_gui_binary_path
from sumocr.interface.sumo_simulation_backend import GuiSumoSimulationBackend

sumo_sim_backend = GuiSumoSimulationBackend(
    config, wrapper.sumo_cfg_file, get_sumo_gui_binary_path()
)
sumo_sim = SumoSimulation(sumo_sim_backend)
sumo_sim.initialize(config, wrapper)