Mercurial Hosting > traffic-intelligence
diff python/traffic_engineering.py @ 652:3b13ec964476
removed useless and buggy code
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 24 Apr 2015 17:02:47 +0200 |
parents | 850ed17c7b2f |
children | 15e244d2a1b5 |
line wrap: on
line diff
--- a/python/traffic_engineering.py Fri Apr 17 17:33:32 2015 +0200 +++ b/python/traffic_engineering.py Fri Apr 24 17:02:47 2015 +0200 @@ -26,54 +26,36 @@ totalTime += h return headways -class Vehicle: - '''Generic vehicle class - 1D coordinates for now''' - class PredictedTrajectory1D(prediction.PredictedTrajectory): - def __init__(self, initialPosition, initialSpeed, control, maxSpeed = None): - self.control = control - self.maxSpeed = maxSpeed - self.probability = None - self.predictedPositions = {0: moving.Point(initialPosition)} - self.predictedSpeedOrientations = {0: moving.NormAngle(initialSpeed, 0)} - - def setAcceleration(self, acceleration): - self.control = moving.NormAngle(acceleration, 0) - - def getControl(self): - return self.control +class RoadUser: + '''Simple example of inheritance to plot different road users ''' + def __init__(self, position, velocity): + 'Both fields are 2D numpy arrays' + self.position = position.astype(float) + self.velocity = velocity.astype(float) + + def move(self, deltaT): + self.position += deltaT*self.velocity + + def draw(self, init = False): + from matplotlib.pyplot import plot + if init: + self.plotLine = plot(self.position[0], self.position[1], self.getDescriptor())[0] + else: + self.plotLine.set_data(self.position[0], self.position[1]) - def __init__(self, initialPosition = 0, initialSpeed = 0, acceleration = 0, prt = 2.5, leader = None): - self.positions = PredictedTrajectory1D(initialPosition, initialSpeed) - - self.prt = prt - self.leader = leader - # todo add microModel (Treiber) - - def setAcceleration(self, acceleration): - self.positions.setAcceleration(acceleration) +class PassengerVehicle(RoadUser): + def getDescriptor(self): + return 'dr' - def updatePosition(self, dt): # knowledge of time outside of vehicle ?? - speed = self.speed - self.speed += self.acceleration*dt - self.position += speed*dt - if self.log: - self.positions.append(self.position) - self.speeds.append(self.speed) - self.accelerations.append(self.acceleration) +class Pedestrian(RoadUser): + def getDescriptor(self): + return 'xb' - def updateAcceleration(self, dt): - '''Updates acceleration and speed as a function of leader - and other factors''' - pass +class Cyclist(RoadUser): + def getDescriptor(self): + return 'og' - def update(self, dt): - self.updatePosition(dt) - self.updateAcceleration(dt) # function of leader - - def printStats(self): - print('{0} {1} {2}'.format(self.position, self.speed, self.acceleration)) ######################### # fundamental diagram