symupy.tsc package¶
Submodules¶
symupy.tsc.dynamics module¶
- class symupy.tsc.dynamics.VehicleDynamic(time_step=1.0, veh_dyn=<function dynamic_2nd_ego>)[source]¶
Bases:
object
- symupy.tsc.dynamics.dynamic_2nd_ego(state: numpy.array, control: numpy.array, parameters={'engine_tau': 0.2, 'time_step': {'comportementflux': 'iti', 'date': 'today', 'debut': 'ST_TIME_STR', 'fin': 'ED_TIME_STR', 'id': 'simID', 'loipoursuite': 'exacte', 'pasdetemps': '1.0', 'proc_deceleration': 'false', 'seed': '1', 'titre': 'default_simulation'}}) numpy.array [source]¶
Update vehicle state in 2nd order dynamics
- symupy.tsc.dynamics.dynamic_3rd_ego(state: numpy.array, control: numpy.array, parameters={'engine_tau': 0.2, 'time_step': {'comportementflux': 'iti', 'date': 'today', 'debut': 'ST_TIME_STR', 'fin': 'ED_TIME_STR', 'id': 'simID', 'loipoursuite': 'exacte', 'pasdetemps': '1.0', 'proc_deceleration': 'false', 'seed': '1', 'titre': 'default_simulation'}}) numpy.array [source]¶
Update vehicle state in 3rd order dynamics
symupy.tsc.journey module¶
- class symupy.tsc.journey.Journey(trips: list = <factory>, origin: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None, destination: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None)[source]¶
Bases:
object
- destination: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None¶
- origin: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None¶
- trips: list¶
- class symupy.tsc.journey.Path(links: list = <factory>, length: float = -1)[source]¶
Bases:
object
- length: float = -1¶
- links: list¶
- class symupy.tsc.journey.State(time: str = None, speed: float = 0, acceleration: float = 0, curvilinear_abscissa: float = 0, absolute_position: list = <factory>, link: str = None, lane: int = None)[source]¶
Bases:
object
- absolute_position: list¶
- acceleration: float = 0¶
- curvilinear_abscissa: float = 0¶
- lane: int = None¶
- link: str = None¶
- speed: float = 0¶
- time: str = None¶
- class symupy.tsc.journey.Trip(states: list = <factory>, vehicle: symupy.tsc.vehicles.Vehicle = None, mode: str = None, path: symupy.tsc.journey.Path = None, departure_time: str = None, arrival_time: str = None, origin: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None, destination: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None)[source]¶
Bases:
object
- arrival_time: str = None¶
- departure_time: str = None¶
- destination: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None¶
- mode: str = None¶
- origin: Union[symupy.tsc.network.Node, symupy.tsc.network.Link, symupy.tsc.network.Zone] = None¶
- path: symupy.tsc.journey.Path = None¶
- states: list¶
- vehicle: symupy.tsc.vehicles.Vehicle = None¶
symupy.tsc.network module¶
Network¶
This module contains representation for different traffic objects related to the road infrastructure.
- class symupy.tsc.network.Link(id: Any = None, downstream_node: symupy.tsc.network.Node = None, downstream_coords: numpy.ndarray = None, upstream_node: symupy.tsc.network.Node = None, upstream_coords: numpy.ndarray = None, nb_lanes: int = 1, authorized_mode: str = 'all', internal_points: list = <factory>, speed_limit: float = None)[source]¶
Bases:
symupy.tsc.network.NetworkElement
- authorized_mode: str = 'all'¶
- downstream_coords: numpy.ndarray = None¶
- downstream_node: symupy.tsc.network.Node = None¶
- internal_points: list¶
- nb_lanes: int = 1¶
- speed_limit: float = None¶
- upstream_coords: numpy.ndarray = None¶
- upstream_node: symupy.tsc.network.Node = None¶
- class symupy.tsc.network.Network(id, links=[], nodes=[], sensors=[])[source]¶
Bases:
symupy.tsc.network.NetworkElement
- add_link(id, upstream_node, downstream_node, upstream_coords, downstream_coords, speed_limit=None, nb_lanes=1, authorized_mode='all')[source]¶
- adj¶
- get_borders(id: symupy.tsc.network.Link)[source]¶
- get_regions(id: symupy.tsc.network.Node)[source]¶
- links¶
- nodes¶
- sensors¶
- termination_zone¶
- class symupy.tsc.network.Node(id: Any = None, links: list = <factory>, type: str = '')[source]¶
Bases:
symupy.tsc.network.NetworkElement
- links: list¶
- type: str = ''¶
- class symupy.tsc.network.Sensor(id: Any = None, links: list = <factory>, mesure: list = <factory>)[source]¶
Bases:
object
- id: Any = None¶
- links: list¶
- mesure: list¶
- class symupy.tsc.network.TerminationZone(id: Any = None, links: list = <factory>)[source]¶
Bases:
object
- id: Any = None¶
- links: list¶
- class symupy.tsc.network.Zone(id: Any = None, links: list = <factory>)[source]¶
Bases:
symupy.tsc.network.NetworkElement
- links: list¶
symupy.tsc.ve2xnetworks module¶
- class symupy.tsc.ve2xnetworks.V2XNetwork[source]¶
Bases:
object
- register_vehicle(veh: symupy.tsc.vehicles.Vehicle)[source]¶
symupy.tsc.vehicle_control module¶
A class to take control over vehicles
- class symupy.tsc.vehicle_control.VehicleControl(vehicle: symupy.tsc.vehicles.Vehicle, mode: str = 'manual', time: float = 1.0)[source]¶
Bases:
object
Controls a single vehicle
- property control¶
- class symupy.tsc.vehicle_control.VehicleGroupControl(controls: List[symupy.tsc.vehicle_control.VehicleControl] = <factory>)[source]¶
Bases:
object
Control of group of vehicles of the same class
- controls: List[symupy.tsc.vehicle_control.VehicleControl]¶
symupy.tsc.vehicles module¶
Vehicle Model¶
This module implements a vehicle model.
Vehicle model acts as an instance to trace individual vehicle data and modify vehicle behavior according to given dynamics
- class symupy.tsc.vehicles.Vehicle(request, **kwargs)[source]¶
Bases:
symupy.runtime.logic.subscriber.Subscriber
Vehicle class defined for storing data on a single vehicle:
You need a Publisher from where the vehicle is going to take data:
- Parameters
request (Publisher) – Parser or object publishing data
- Retunrns:
vehicle (Vehicle): A Dataclass with vehicle parameters
Variable
Description
abscissa
Current coordinate on y axis
acceleration
Current acceleration
distance
Current distance traveled on link
elevation
Current elevation
lane
Current lane
link
Current road vehicle is traveling
ordinate
Current coordinate x axis
speed
Current speed
vehid
Vehicle id
vehtype
Vehicle class
Example
This is one example on how to register a new vehicle
>>> req = SimulatorRequest() >>> veh = Vehicle(req) >>> req.dispatch() # This will update vehicle data
When having multiple vehicles please indicate the vehid before launching the dispatch method. This is because the vehicle object is looks for a vehicle id within the data.
Example
This is one example on how to register two vehicles
>>> req = SimulatorRequest() >>> veh1 = Vehicle(req, vehid=0) >>> veh2 = Vehicle(req, vehid=1) >>> req.dispatch() # This will update vehicle data on both vehicles
- abscissa: float = 0.0¶
- acceleration: float = 0.0¶
- counter = count(0)¶
- distance: float = 0.0¶
- driven: bool = False¶
- elevation: float = 0.0¶
- lane: int = 1¶
- link: str = 'Zone_001'¶
- ordinate: float = 0.0¶
- speed: float = 25.0¶
- vehid: int = 0¶
- vehtype: str = ''¶
- property x¶
Vehicle state vector (x,v,a)
- class symupy.tsc.vehicles.VehicleList(request)[source]¶
Bases:
symupy.runtime.logic.sorted_frozen_set.SortedFrozenSet
Class defining a set of vehicles. This class is based on a sorted frozen set and supports multiple operations in between sets. You can define a list based on a simluator request and the list will update automatically via a single method.
- Parameters
request (Publisher) – Publisher of information
Example
- Define a list of vehicles to trace the requests ::
>>> simrequest = SimulatorRequest() >>> simrequest.query = one_vehicle_xml >>> vl = VehicleList(simrequest) >>> simrequest.query = second_vehicle_xml >>> vl.update_list() # This updates manually
The list could be eventually updated as an observer but for simplicity reasons it is kept like this.
- property acceleration: pandas.core.series.Series¶
Returns all vehicle’s accelerations
- property distance: pandas.core.series.Series¶
Returns all vehicle’s accelerations
- release(veh: symupy.tsc.vehicles.Vehicle)[source]¶
Moves a vehicle to a free list so that it is not considered in the
- Parameters
r (VehType) – Vehicle object
- property speed: pandas.core.series.Series¶
Returns all vehicle’s accelerations