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.

Thank you


Best Regards

Vishal



________________________________
From: sumo-user 
<sumo-user-boun...@eclipse.org<mailto:sumo-user-boun...@eclipse.org>> on behalf 
of Jakob Erdmann <namdre.s...@gmail.com<mailto:namdre.s...@gmail.com>>
Sent: Thursday, January 27, 2022 11:47:51 AM
To: Sumo project User discussions
Subject: Re: [sumo-user] Calibrating OD with edge count data

Hello,
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)
Dynamic User Assignment - SUMO 
Documentation<https://sumo.dlr.de/docs/Demand/Dynamic_User_Assignment.html#oneshot-assignment>
sumo.dlr.de<http://sumo.dlr.de>


- 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)
[https://opengraph.githubassets.com/ba517d389cb126d25b730f44991d6015f4ef3bffa40cbdd128b432918a597edf/eclipse/sumo/issues/10058]<https://github.com/eclipse/sumo/issues/10058>

route2OD.py allow writing edgeRelations instead of tazRelations · Issue #10058 
· eclipse/sumo · GitHub<https://github.com/eclipse/sumo/issues/10058>
github.com<http://github.com>
to be used as routeSampler.py input via option --od-files


- 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
[https://opengraph.githubassets.com/994e3d4087c41a0d4de849cb723d4eb8c8c01123842d8eee00afbe16ac8058df/eclipse/sumo/issues/6890]<https://github.com/eclipse/sumo/issues/6890>

routeSampler: allow modelling origin-destination restrictions for TAZ · Issue 
#6890 · eclipse/sumo · GitHub<https://github.com/eclipse/sumo/issues/6890>
github.com<http://github.com>
related to #6888 but with taz-ids instead of edges. (Requires loading a 
taz-file as well)


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

regards,
Jakob





Am Do., 27. Jan. 2022 um 09:45 Uhr schrieb Schaniel Joel 
<joe...@student.ethz.ch<mailto:joe...@student.ethz.ch>>:

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 routeSampler.py 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 routeSampler.py

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 duaIterate.py, creating a 
set of routes in the dynamic user equilibrium.
But the second point seems to be tricky. In the 
documentary<https://sumo.dlr.de/docs/Tools/Turns.html#origin-destination_restrictions>,
 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,

Joel

_______________________________________________
sumo-user mailing list
sumo-user@eclipse.org<mailto:sumo-user@eclipse.org>
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/sumo-user

Reply via email to