🚦 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
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