All Notes
TutorialMay 20259 min read2,300 words

SUMO Simulation: From Network to Signal Optimization

Why start with the network

In SUMO every simulation begins with a network. The network's quality determines the credibility of all downstream timing, demand and analysis. I start from OSM, but OSM is built for navigation, not simulation—it carries lots of irrelevant detail and misses the lane counts and turning connections that simulation needs.

netconvert trade-offs

bash
netconvert --osm-files area.osm.xml \ --geometry.remove --roundabouts.guess \ --ramps.guess --junctions.join \ --tls.guess-signals --tls.join \ -o net.net.xml

Key flags:

  • --geometry.remove: merge redundant collinear nodes
  • --ramps.guess: guess ramps so arterials are not downgraded
  • --junctions.join: merge complex intersections into one node

A common pitfall

OSM often lacks lane counts; netconvert derives defaults from road class, which can be off by an order of magnitude. I validate via street-view sampling in Python and write corrections back to *.edg.xml.

First principle of simulation: garbage in, garbage out. Network validation is worth twice the time.

Next step

With the network ready, the next step is demand. In the next note I will cover generating flows with OD matrices and duarouter that match peak-hour shapes.

TutorialTraffic EngineeringResearch