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
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
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.

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_network(id, network)[source]
add_node(id, type=None)[source]
add_sensor(id, links)[source]
add_termination_zone(id, links)[source]
adj
get_borders(id: symupy.tsc.network.Link)[source]
get_nodes_attributes(attr)[source]
get_regions(id: symupy.tsc.network.Node)[source]
nodes
sensors
termination_zone
class symupy.tsc.network.NetworkElement(id: Any = None)[source]

Bases: object

id: Any = None
class symupy.tsc.network.Node(id: Any = None, links: list = <factory>, type: str = '')[source]

Bases: symupy.tsc.network.NetworkElement

type: str = ''
class symupy.tsc.network.Sensor(id: Any = None, links: list = <factory>, mesure: list = <factory>)[source]

Bases: object

id: Any = None
mesure: list
class symupy.tsc.network.TerminationZone(id: Any = None, links: list = <factory>)[source]

Bases: object

id: Any = None
class symupy.tsc.network.Zone(id: Any = None, links: list = <factory>)[source]

Bases: symupy.tsc.network.NetworkElement

symupy.tsc.ve2xnetworks module

class symupy.tsc.ve2xnetworks.V2INetwork[source]

Bases: symupy.tsc.ve2xnetworks.V2XNetwork

register_element(element)[source]
class symupy.tsc.ve2xnetworks.V2VNetwork[source]

Bases: symupy.tsc.ve2xnetworks.V2XNetwork

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

compute_control()[source]

Compute automatic control

property control
set_manual_control(value, controlvar='acceleration')[source]
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
ordinate: float = 0.0
speed: float = 25.0
update()[source]

Updates data from publisher

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

update_list()[source]

Update vehicle data according to an update in the request.

Module contents