Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] getting Trajectory using Traci

Hello dear Jakob,
Actually, my goal is to compare two travel times in two different time intervals. I mean:
for every 60 seconds:
     for each edge:
         compute travel tine
         store travel time
         compare it with the previous 60 seconds
         if comparison exceed a threshold
              change speed
         else
               continue simulation 
so, for this purpose what is your opinion, can I get travel time for every 60 seconds?
               

         

On Fri, Mar 4, 2022 at 3:23 PM Jakob Erdmann <namdre.sumo@xxxxxxxxx> wrote:
By calling simulationStep within the loop 'for id in traci.vehicle.getIDList()' vehicles may leave the simulation area and thereby become unavailable for the iteration.
You could store the positions of all vehicles once, the call simulationStep once and then compute whatever you wish to compute for all vehicles that are still in the simulation.
However, I don't think that your code computes something useful. The travel time in one time step is always equal to the duration of one time step (the avgTT value that you compute may be less since you are only looking at x, not y).

Am Do., 3. März 2022 um 10:06 Uhr schrieb amir kr <amirhkr1995@xxxxxxxxx>:
hello Jakob, 
yes but I want to calculate travel time in each time step and optimize it and I think fcd output can not change vehicles' positions dynamically.
to compute travel time for each vehicle in Traci I used this code:
    while step < 14000:
        traci.simulationStep()
        for id in traci.vehicle.getIDList():
            pos0 =traci.vehicle.getPosition(id)[0]
            speed0 =traci.vehicle.getSpeed(id)
            step += 0.4
            traci.simulationStep()
            pos1 =traci.vehicle.getPosition(id)[0]
            speed1 =traci.vehicle.getSpeed(id)
            if speed1 == 0:
                avgTT = 0
            else:
                avgTT =(pos1-pos0)/speed1
            avgTT_list.append(avgTT)
            print(avgTT_list)
        step += 0.4
but after some time step sumo raise this error 
    raise TraCIException(err, prefix[1], _RESULTS[prefix[2]])
traci.exceptions.TraCIException: Vehicle '1.3' is not known.
how can I fix it and do you have any suggestions for calculating the travel time of each vehicle in each time step?

On Wed, Mar 2, 2022 at 10:00 AM Jakob Erdmann <namdre.sumo@xxxxxxxxx> wrote:
Have you considered using fcd-output?
The simplest (though not the most efficient) way to retrieve data from all vehicles is by looping over the list of all ids:

for vehID in traci.vehicle.getIDList():
   traci.vehicle.getPosition(vehID)

Am Di., 1. März 2022 um 14:59 Uhr schrieb amir kr <amirhkr1995@xxxxxxxxx>:
Hello everyone,
I want to get the position of all vehicles in each step time but when I want to use traci.vehicle.getPosition(VehID) I do not know what to put instead of VehID because I want to get the position of all vehicles. how can I fix it ?
best regards,
Amir,
_______________________________________________
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
_______________________________________________
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