|Re: [sumo-user] Calibrating OD with edge count data|
Dear Jakob and Joel,
I am working on a similar problem so wanted to jump into this discussion. But I am using a different optimizer than the routesampler.py.
This problem pertains to the class of problems popularly known as (Indirect) OD demand estimation. So basically I am using another optimizer (extended-SPSA) that is exogenous to the SUMO, and interacts with given OD inputs + other SUMO parameters to match the count outputs. The final result is a calibrated or updated OD matrix and other parameters.
I assume routesampler also does something similar, but it would be great if there were couple of lines in the docs on its optimization approach. I tried to understand the code though.
I hope to make the codes open in the near future.
From: sumo-user <sumo-user-bounces@xxxxxxxxxxx> on behalf of Jakob Erdmann <namdre.sumo@xxxxxxxxx>
Sent: Thursday, January 27, 2022 11:47:51 AM
To: Sumo project User discussions
Subject: 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 https://sumo.dlr.de/docs/Demand/Dynamic_User_Assignment.html#oneshot-assignment)
- 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 routeSampler.py 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. https://github.com/eclipse/sumo/issues/10058)
- 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 https://github.com/eclipse/sumo/issues/6890
- 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>:
Back to the top