Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] sumo-cadyts

> I want to double check if this last workflow works well if the observed count locations don't cover the entire network?
In my experience, yes. Without the matrix it wouldn't work very well but in combination, the locations are only a supplement to the matrix.

> when you run duaIterate for the second time, do you pass the set of routes generated by the routeSampler as the initial set of routes?
Yes. Only the first run of duaIterate uses the od2trips output. All subsequent runs use the prior routeSampler output.


Am Mo., 29. Sept. 2025 um 11:51 Uhr schrieb Rehab Shahin via sumo-user <sumo-user@xxxxxxxxxxx>:
Hi everyone,
Thanks for your response.
I want to double check if this last workflow works well if the observed count locations don't cover the entire network? That's why I start with the OD matrix. There are ~500 TAZs and 150 observed locations.
and when you run duaIterate for the second time, do you pass the set of routes generated by the routeSampler as the initial set of routes?

thanks,
Rehab

Hadean
Rehab Shahin
Research Engineer ‑ Transport Modelling and Simulation
rehab.shahin@xxxxxxxxxx
+44(0) 20 3514 1170
 | 
+1 (929) 265‑5193
LinkedIn
Twitter
YouTube
This e-mail is to be treated as confidential and the information in it may not be used or disclosed except for the purpose for which it has been sent. If you have received it by mistake please let us know and delete it from your system. E-mails are not secure and cannot be guaranteed to be error-free as they can be intercepted, amended, lost or destroyed, or contain viruses. 
Hadean Supercomputing Ltd, is registered in England with number 09808169 and has its registered office 9 Appold St, London EC2A 2AP, UK
On Mon, 29 Sept 2025 at 10:28, Jakob Erdmann via sumo-user <sumo-user@xxxxxxxxxxx> wrote:
A workflow that I recently used when provided with an medium quality OD matrix and higher-quality counting data was as a follows:

- od2trips using the matrix
- assignment with duaIterate.py to find traffic equilibrium
- (iterative) adaptation to counts:
  - running routeSampler.py with:
     - the counting data
     - the equilibrium routes as input
     - with option --init-intput.remove-overflow  (this mostly preserves the input but clones/removes some of the existing routes to match counts)
     - with option --min-count X  (where X is a bit lower than the average number of induction loops (edgeCount locations) passed by a route (this prevents fulfilling counts with only short routes)
  - running duaIterate.py to make sure the added routes are in equilibrium 

In my case 2 manual iterations of routeSampler and duaIterate were sufficient to have equilibrium routes that matched counts. Due to the nature of the algorithm, most of the original matrix was preserved.
Your experience may vary depending on how much the matrix and the counts are in agreement with each other.

The process is helped if your scenario doesn't try to model massive congestion. This is because routeSampler still has a problem with interpreting counts from jams: https://github.com/eclipse-sumo/sumo/issues/16762
(The other tools such as flowrouter and dfrouter have the same problem with jam-counts). Cadyts is probably more suitable for heavily jammed counts.

regards,
Jakob


Am Fr., 26. Sept. 2025 um 17:29 Uhr schrieb Pedro Oliveira via sumo-user <sumo-user@xxxxxxxxxxx>:
Good afternoon,

The SUMO developers might have a better answer than I did.

But, in my opinion, if you have traffic count data, you could use routesampler.py to generate the simulation instead of starting with the matrix. In this case, the matrix can be generated at the end, using route2OD.
To obtain the initial routes for using routesampler, Jakob recommended (and it worked):
randomTrip route output with the --marouter option for obtaining initial routes.

However, if you need to actually start the simulation with the matrix, you need to be sure about the allocation method (all or nothing, balanced, etc.), which is typically a considerable challenge for multipath networks. I know that SUMO has a way to assign weights to certain edges to attract traffic, but I haven't used it yet. There are also calibrators, which seem to me to be additional to force traffic on a certain edge, but I'm honestly not sure about that (https://sumo.dlr.de/docs/Simulation/Calibrator.html) and I don't know how to use them.

Sds,

Pedro Oliveira
Em sex., 26 de set. de 2025 às 11:57, yun-pang.floetteroed--- via sumo-user <sumo-user@xxxxxxxxxxx> escreveu:

Hi,

 

Due to license reason Cadyts is not within the SUMO package. You should be able to download the respective jar-file at https://people.kth.se/~gunnarfl/cadyts.html  You can place it either in the sumo\bin directory alongside the other executable files, or in a different location. If you choose the latter, make sure to update the system path so that cadytsIterate.py can locate it. Just try it!

 

Regards,

Yun-Pang

Von: Rehab Abdellatif <eng.rehab.s@xxxxxxxxx>
Gesendet: Freitag, 26. September 2025 14:54
An: Flötteröd, Yun-Pang <yun-pang.floetteroed@xxxxxx>
Cc: sumo-user@xxxxxxxxxxx
Betreff: Re: [sumo-user] sumo-cadyts

 

Hi,

 

Thanks so much for your response. The document is very helpful.

I wanted to double check if I have to install Cadyts separately before running the script, or is it already part of sumo?

 

thanks,

Rehab

 

On Thu, 25 Sept 2025 at 17:19, <yun-pang.floetteroed@xxxxxx> wrote:

Hi,

 

Please check here: Cadyts - SUMO Documentation. It helps you to prepare the traffic measurement (observed counts) file and it also provides the information how to run cadytsIterate.py.

 

You might need to turn on the duarouter option --keep-all-routes to get route alternatives as many as possible. It should/could be helpful to increase the calibration accuracy, since cadyts only considers the routes in the given route alternative file.

You can choose either to keep the amount of the original traffic demand or to adjust it according to the provided traffic counts. For the latter one, you need to set the demand scale (-S), e.g. 1.5 or 2 . Trips will then be cloned accordingly. The cloned trips will be used by Cadyts according to traffic flows and given counts. If the demand scale is set to high, you may create unrealistic traffic jams in simulation.

 

Some related experiences gained when using cadytsIterate.py can be found SUMO_proceedings.pdf.

 

Regards,

Yun-Pang

 

Von: sumo-user <sumo-user-bounces@xxxxxxxxxxx> Im Auftrag von Rehab Abdellatif via sumo-user
Gesendet: Donnerstag, 25. September 2025 13:35
An: Sumo project User discussions <sumo-user@xxxxxxxxxxx>
Cc: Rehab Abdellatif <eng.rehab.s@xxxxxxxxx>
Betreff: [sumo-user] sumo-cadyts

 

Hi,

 

I'm trying to calibrate a model by using cadytsIterate.py but the information in the documentation isn't clear enough for me.

I have:

1. The original OD matrix, which is used to create a trip file.

2. A *.rou.alt.xml file which is the output of running duaIterate.py using the OD matrix from 1.

3. observed counts on some links, in the edge_data format here.

<data>

  <interval begin="0" end="3600" id="observed">

    <edge id="-807471204" entered="209" />

    <edge id="-305546124" entered="955" />

   </interval>

</data>

 

 

 

What I need to do is to adjust the demand such that it matches the provided observed counts to the best it can be. (trying to achieve GEH<5 in at least 85% of them)

 

Could you please provide some details on the right command/parameters and the correct formats of the data mentioned above?
Is it expected to change the original OD matrix? or it preserves the matrix and just redistributes the routes between the O-D?

 

thanks in advance,

Rehab

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

Não contém vírus.www.avast.com
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top