Mercurial Hosting > traffic-intelligence
diff python/events.py @ 338:f3aceea2afbb
first safety analysis script
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 17 Jun 2013 16:26:11 -0400 |
parents | 6c9c7c956926 |
children | 9c1818a71c9c |
line wrap: on
line diff
--- a/python/events.py Sun Jun 16 23:44:36 2013 -0400 +++ b/python/events.py Mon Jun 17 16:26:11 2013 -0400 @@ -87,12 +87,27 @@ minDistance[instant] = distance.min() self.addIndicator(indicators.SeverityIndicator('Minimum Distance', minDistance)) - def computeCollisionPoints(self, predictionParameters, collisionDistanceThreshold, timeHorizon): - if self.roadUser1.features and self.roadUser2.features: - collisionPoints = prediction.computeCollisions(self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon) - self.addIndicator(indicators.SeverityIndicator('Collision Points', collisionPoints)) + def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None): + '''Computes all crossing and collision points at each common instant for two road users. ''' + self.collisionPoints={} + TTCs = {} + if computeCZ: + self.crossingZones={} + + if timeInterval: + commonTimeInterval = timeInterval else: - print('Features not associated with objects') + commonTimeInterval = self.timeInterval + for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors + self.collisionPoints[i], self.crossingZones[i] = prediction.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ, debug) + TTCs[i] = prediction.computeExpectedIndicator(self.collisionPoints[i]) + self.addIndicator(indicators.SeverityIndicator('TTC', TTCs)) + + if computeCZ: + pPETs = {} + for i in list(commonTimeInterval)[:-1]: + pPETs[i] = prediction.computeExpectedIndicator(self.crossingZones[i]) + self.addIndicator(indicators.SeverityIndicator('pPET', pPETs)) def addVideoFilename(self,videoFilename): self.videoFilename= videoFilename