Re: [sumo-dev] Adding a Traci simulation command to get the closest junction in a current route relatively to another junction

In sumo, vehicle routes are organized around roads (or rather edges) rather than junctions.
If you can rephrase your problem in terms of edges the the solution becomes quite simple.

edges = traci.vehicle.getRoute(vehID)
remainingEdges = edges[traci.vehicle.getRouteIndex(vehID):]

then for each of the remaining edges you can compute the traveltime to your destination (edge) Z

stage = traci.simulation.findRoute(fromEdge, toEdge)
travelTime = stage.travelTime

If you need to do the same thing with junctions, then you can use sumolib (http://sumo.dlr.de/wiki/Tools/Sumolib) to read the network graph of edges and junctions. This allows you to identify the target junction for each of the remaining edges (edge.getToNode()). You then just need to pick a suitable target edge from all edges that are incoming to your target junction Z (node.getIncoming()).

regards,
Jakob

Am Do., 10. Jan. 2019 um 10:39 Uhr schrieb Arslane Hamza Cherif <arslane.hamzacherif@xxxxxxxxx>:
Hello Dear sumo-dev,

First of all, excuse me if I am missing something or doing it wrong, it is the first time that I contribute to an open-source project, but of course not the first time that I use SUMO,

In fact, I had worked during the six last years with SUMO and Veins, and I really appreciate these tools, 2 years ago I was looking for a solution to my problem, and I realised that It was impossible with an old version of SUMO, so I switched to a solution based on Python, SumoLib and Networkx API.

Now lets me explain the problem, and how I think that is possible to solve it (I will appreciate any help in this sense, to guide me for my first contribution)

Problem: Say for instance that you have a VehX that follows a specific route that is passing by multiple junctions (e.g: Junctions: A, B, C, D), what I want is to identify the closest one relative to another junction Z that is not in the current route of the vehicle. I asked the question two years ago here: https://sourceforge.net/p/sumo/mailman/message/35079189/

However, at that time I was using an old version of SUMO that does not include the command (0x83) (http://sumo.dlr.de/wiki/TraCI/Simulation_Value_Retrieval)

Maybe it is possible to implement a new command that will achieve this by:
1. Identifying the junctions in a current route of VehX
2. Computing the driving distance (or air distance if needed) between junctions (A,Z), (B,Z), (C,Z) & (D,Z)
3. Returning the junction with the shortest distance among the 4 junctions
So, any advice on how I can do it ? from where can I start?

Thank you very much for your time,

Best Regards,
Arslane HAMZA-CHERIF

Le mer. 9 janv. 2019 à 10:55, Arslane Hamza Cherif <hc.arslan90@xxxxxxxxx> a écrit :
Hello Dear sumo-dev,

First of all, excuse me if I am missing something or doing it wrong, it is the first time that I contribute to an open-source project, but of course not the first time that I use SUMO,

In fact, I had worked during the six last years with SUMO and Veins, and I really appreciate these tools, 2 years ago I was looking for a solution to my problem, and I realised that It was impossible with an old version of SUMO, so I switched to a solution based on Python, SumoLib and Networkx API.

Now lets me explain the problem, and how I think that is possible to solve it (I will appreciate any help in this sense, to guide me for my first contribution)

Problem: Say for instance that you have a VehX that follows a specific route that is passing by multiple junctions (e.g: Junctions: A, B, C, D), what I want is to identify the closest one relative to another junction Z that is not in the current route of the vehicle. I asked the question two years ago here: https://sourceforge.net/p/sumo/mailman/message/35079189/

However, at that time I was using an old version of SUMO that does not include the command (0x83) (http://sumo.dlr.de/wiki/TraCI/Simulation_Value_Retrieval)

Maybe it is possible to implement a new command that will achieve this by:
1. Identifying the junctions in a current route of VehX
2. Computing the driving distance (or air distance if needed) between junctions (A,Z), (B,Z), (C,Z) & (D,Z)
3. Returning the junction with the shortest distance among the 4 junctions
So, any advice on how I can do it ? from where can I start?

Thank you very much for your time,

Best Regards,
Arslane HAMZA-CHERIF
_______________________________________________
sumo-dev mailing list
sumo-dev@xxxxxxxxxxx