Dear Vaibhav Rungta,

just a some short comments on your code:

* why do you take the extra loop writing and reading a file?
   you can easily keep record of vehicles by putting their id into
   a list or even better a set if the order is not of interest:

   all_vehicles_ever_arrived = set()
   for vv in traci.simulation.getArrivedIDList():
       all_vehicles_ever_arrived.add(vv)
   ...
   if 'v1' not in all_vehicles_ever_arrived:
      do_something_cool() #....


* speeding up vehicles, which have been stop with
   setSpeed(veh_id, speed=0.) can be resumed more
   realistically by setSpeed(veh_id, speed=-1)
   This causes the vehicle to speed up, according to its
   physics, whereas  setSpeed(veh_id, speed=20.)
   sets the vehicle speed to 20. (m/s) right in the next simulation
   step and the speed will be unchanged, until you change it to 
something else.

* you may write and read a trip file to get info's about the arrived 
vehicles.
   just run sumo with the option --tripinfo-output . The file can be 
processed in
   python by using the sumolib.

Best Marek Heinrich
simoserv GmbH

Am 09.11.2016 um 19:40 schrieb Vaibhav Rungta:
> #First interfacing program
> #TraCI
>
> import os           #OS module which provides function for interacting with
> OS
> import sys          #to communicate with other software
> import optparse     #a python module to write command line tools
> import subprocess   #allows to communicate b/w pyhton script and cmd.exe
> import random
>
> #check for environment variables
> '''
> if 'sumo-0.27.1' in os.environ:
>      tools = os.path.join(os.environ['sumo-0.27.1'], 'tools')
>      sys.path.append(tools)
> else:
>      sys.exit("please declare environment variables 'sumo-0.27.1'")
> '''
> try:
>      sys.path.append(os.path.join(os.path.dirname(
>          __file__), '..', '..', '..', '..', "tools"))  # tutorial in tests
>      sys.path.append(os.path.join(os.environ.get("sumo-0.27.1", os.path.join(
>          os.path.dirname(__file__), "..", "..", "..")), "tools"))  #
> tutorial in docs
>      from sumolib import checkBinary
> except ImportError:
>      sys.exit(
>          "please declare environment variable 'SUMO_HOME' as the root
> directory of your sumo installation (it should contain folders 'bin',
> 'tools' and 'docs')")
>
> PORT = 8813 #port used for communicating with sumo instance
>
> #sumo is started as a subprocess
> sumoBinary =
> "C:/Users/vr2002/Downloads/sumo-win64-0.27.1/sumo-0.27.1/bin/sumo-gui.exe"
> #sumoBinary is a variable which holds the path to sumo-gui, you can any
> name for this variable
> sumoProcess = subprocess.Popen([sumoBinary, "-c", "att2.sumo.cfg",
> "--remote-port", str(PORT)], stdout=sys.stdout, stderr=sys.stderr)
>
> #For any time step I am saving all the vehicle IDs in a text file and then
> verifying if the vehicle v1 is in the text file (i.e; exited system).
> #If it's in the system it's stopped irrespective of it's position depending
> on state of signal at node B2.
>
> import traci
> traci.init(PORT)
> step = 0
> while traci.simulation.getMinExpectedNumber() > 0:
>      traci.simulationStep()
>      get_id = traci.simulation.getArrivedIDList()        #list of vehicles
> exited the system in current time step
>
>      with open ("vid3.txt", "a") as vehicle_id:      #opened a text file
> named vid3 located in same folder, using with closes it automatically once
> writing work is done
>          vehicle_id.write (str(get_id) + '\n')       #stored all the vehicle
> IDs as a string
>
>      with open ("vid3.txt", "r") as read_vehicle_id:     #opened a text file
> named vid3 located in same folder,
>          veh_id = read_vehicle_id.read()                 #reading the data
> stored in text file
>
>      if 'v1' in veh_id:                                  #to verify if
> string 'v1' is present in list veh_id
>          continue
>      else:
>          if traci.trafficlights.getPhase("B2") == 0:      #signal at B2 in
> state GGrr
>              traci.vehicle.setSpeed("v1", 0)              #stops the vehicle
> 'v1'
>          else:
>              traci.vehicle.setSpeed("v1", 20)             #sets the speed of
> 'v1' to 20 units
>
>      step = step + 1
> traci.close()
>
> Regards,
> Vaibhav Rungta
> Graduate Student - Industrial and Systems Engineering
> Graduate Assistant - Toyota Production Systems Lab
> Research Assistant - University Transport Research Center
> 585-754-7133
> ------------------------------------------------------------------------------
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today. http://sdm.link/xeonphi
> _______________________________________________
> sumo-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sumo-user


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
sumo-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sumo-user

Reply via email to