Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Calibrating OD with edge count data

you are posing an interesting question that hasn't really come up before.
It appears that typical scenario creators didn't have access to both OD-Matrix and counting data. Hence, there is a gap in documentation and tooling for this use case.
Your thoughts on the matter are correct.

With regard to 1. (using equilibrium routes rather than free-flow routes) you could employ the following alternatives:
- create candidate routes by loading the trips in sumo and writing --vehroute-output (see
- create move variance in the routes by running duarouter with option --weights.random-factor

With regard to 2, you should be able to use the option --od-files to ensure that all vehicles are put into the simulation (rather than only those that pass city-center counting locations). This should in principle allow a perfect fit with the OD-Matrix.

There are some limitations to this approach:
- there is currently no tooling to generated the od-files (i.e.
- by using a fixed assignment of trips to edges (from od2trips), you are losing degrees of freedom that might be needed to match the counting data. A possible fix is outlined at
- there is no guarantee that the sampled routes have a similar frequency compared to the "equilibrium" input. You can set option --weighted to improve this likelihood but if the counts go in a particular way you could get artifacts

Overall I'd be quite interested in hearing about your progress if you chose to follow the OD2trips + routeSampler approach.
If you happen to work on tooling, pull requests are also welcome.



Am Do., 27. Jan. 2022 um 09:45 Uhr schrieb Schaniel Joel <joelsc@xxxxxxxxxxxxxxx>:

Dear all,

I am working with a real-life network in SUMO and could need your advice for calibrating the simulation.
I have an OD-matrix and a network given. Further, I have traffic count data from edge counts in the city center (but not from the rest of the region). 

So far, I have created TAZ's according to my OD matrix and generated trips with od2trips. This comes with the benefit that origins and destinations are spread over the whole TAZ.

Now, I would like to use to calibrate the traffic according to the edge count data. My idea so far was to:

  1. Use duarouter to convert trips to routes (since origins and destinations spread over all edges this would basically create a route for each trip)
  2. Use this set of routes and my edge counts as input for

However, I see two major problems with this approach.
  • Duarouter creates all routes based on free-flow speed and does not include alternative routes which would only be used during congestion. 
  • All traffic count data is from the city center, therefore, routeSampler would not use any route that does not pass an edge with traffic counts (e.g. traffic that bypasses the city center).

The first problem could probably be solved by using, creating a set of routes in the dynamic user equilibrium.
But the second point seems to be tricky. In the documentary, it is also briefly mentioned that OD files can be used, but only edge-based. Could I work with this option to make sure the routes still fit the OD more or less?

Are my thoughts correct? Would it be better to use another tool to try for example to scale the OD as a whole to fit the traffic counts?

Thanks a lot for your help in advance!

Best regards,


sumo-user mailing list
To unsubscribe from this list, visit

Back to the top