Skip to content

🚦 Simulation Workflow

Generalized, repeatable steps to generate routes and run SUMO simulations for N vehicles.

1) Generate routes for N vehicles

python $SUMO_HOME/tools/randomTrips.py \
  -n NETWORK_FILE \
  -r OUTPUT_ROUTES_FILE \
  --fringe-factor 2 \
  -p DEPARTURE_INTERVAL \
  --validate \
  -e END_TIME
- -n NETWORK_FILE: SUMO network (.net.xml or .net.xml.gz) - -r OUTPUT_ROUTES_FILE: e.g., osm.passenger.500.rou.xml - --fringe-factor 2: Helps avoid center congestion - -p DEPARTURE_INTERVAL: seconds between departures; END_TIME / N - -e END_TIME: simulation duration (≥ required)

2) Run SUMO simulation

sumo \
  -n NETWORK_FILE \
  -r ROUTES_FILE \
  --additional-files VIEW_FILE \
  --output-prefix OUTPUT_PREFIX/ \
  --fcd-output fcd.xml \
  --emission-output emissions.xml \
  --edgedata-output edges.xml \
  --duration-log.statistics \
  --no-step-log > LOG_FILE
- --output-prefix OUTPUT_PREFIX/: directory for outputs (e.g., results1000/) - --duration-log.statistics: aggregate simulation stats - --no-step-log: faster runs

Example (1000 vehicles)

python $SUMO_HOME/tools/randomTrips.py \
  -n osm.net.xml.gz \
  -r osm.passenger.1000.rou.xml \
  --fringe-factor 2 \
  -p 86.4 \
  --validate \
  -e 86400

sumo \
  -n osm.net.xml.gz \
  -r osm.passenger.1000.rou.xml \
  --additional-files osm.view.xml \
  --output-prefix results1000/ \
  --fcd-output fcd.xml \
  --emission-output emissions.xml \
  --edgedata-output edges.xml \
  --duration-log.statistics \
  --no-step-log > results1000/log_1000.txt

3) Post-run analysis

Run the analyzer to consolidate metrics across runs:

python ocupation_analysis.py
Generates performance_results.csv from log_N.txt and edges.xml per run.

Related pages: - Analysis Scripts: docs/Analysis-Scripts.md - Output Files: docs/Output-Files.md