Tools can be found in the SUMO-distribution under <SUMO_HOME>/tools. Most of them are tiny - they were written for a certain purpose and worked well under certain input, but may be not verified for other cases.

All tools should work with Python 3.7 or later on Windows, Linux and macOS. We try to keep them compatible with Python 3.5 and 2.7 as well. Some of them depend on external libraries, which can be installed using pip install -r tools/requirements.txt. For details on installation and required versions see also the Linux installation instructions.

How to use python tools#

Python tools are usually called from the command line. In the documentation linked below, the tools are described with a command like

python tools/xml/ input.xml

This works only, if the current working directory is <SUMO_HOME>.

For the Windows OS, to run the tool from any directory, you can use

python %SUMO_HOME%\tools\xml\ input.xml

The equivalent command for Linux is

$SUMO_HOME/tools/xml/ input.xml

If you have $SUMO_HOME/tools/xml on your PATH (see ConfigurePathSetting), you can simple type input.xml

For scripts in other subdirectories of tools you have to replace xml in this example by the name of the subdirectory

Using tools from netedit#

Since version 1.17.0, netedit supports calling many tools via configuration dialog by using the 'Tools' menu. For a demonstration, see the SUMO 2023 Confererence tutorial.

Tools by category#

The tools are divided into the following topics:

  • assign - traffic assignment tools
  • build - tools used for code styling and by the building subsystems
  • detector - some tools for dealing with real life induction loop data
  • turn-data - some tools with turning counts and turning ratio data with real life induction loop data
  • district - tools for handling traffic analysis zones (TAZ) aka districts
  • import - additional tools to import data from a variety of formats
    • GTFS - some helpers for using GTFS data
    • MATSim - some helpers for using MATSim data
    • OpenDRIVE - some helpers for using OpenDRIVE data
    • OSM - some helpers for accessing/using OpenStreetMap data
    • Vissim - some helpers for using VISSIM data
    • Visum - some helpers for using VISUM data
  • net - tools for working with networks (mainly SUMO-networks)
  • projects - additional tools used by our projects
  • route - tools for working with routes
  • shapes - tools for working with shapes (PoIs and polygons)
  • tls - tools for traffic light systems
  • traci - Python implementation of the TraCI interface
  • traceExporter - generate mobility traces / trajectories / orbits / gps tracks in various formats
  • trip - Trip generation and modification without od2trips
  • visualization - graphical evaluation of SUMO-outputs
  • sumolib - python library for working with sumo networks, simulation output and miscellaneous utility functions
  • output - python tools for working with sumo output files
  • emissions - tools for computing and visualizing emissions
  • railways - tools for the simulations of trains
  • drt - tools to simulate demand responsive transport
  • xml - python tools for converting xml and xml schema related utilities
  • devel - tools for developers
  • miscellaneous - tools that do not fit the above categories


Please always ensure that you have the environment variable SUMO_HOME properly set.