comparison 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
comparison
equal deleted inserted replaced
337:dc2e68e936c7 338:f3aceea2afbb
85 positions2 = [f.getPositionAtInstant(instant).astuple() for f in self.roadUser2.features if f.existsAtInstant(instant)] 85 positions2 = [f.getPositionAtInstant(instant).astuple() for f in self.roadUser2.features if f.existsAtInstant(instant)]
86 distance = cdist(positions1, positions2, metric = 'euclidean') 86 distance = cdist(positions1, positions2, metric = 'euclidean')
87 minDistance[instant] = distance.min() 87 minDistance[instant] = distance.min()
88 self.addIndicator(indicators.SeverityIndicator('Minimum Distance', minDistance)) 88 self.addIndicator(indicators.SeverityIndicator('Minimum Distance', minDistance))
89 89
90 def computeCollisionPoints(self, predictionParameters, collisionDistanceThreshold, timeHorizon): 90 def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None):
91 if self.roadUser1.features and self.roadUser2.features: 91 '''Computes all crossing and collision points at each common instant for two road users. '''
92 collisionPoints = prediction.computeCollisions(self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon) 92 self.collisionPoints={}
93 self.addIndicator(indicators.SeverityIndicator('Collision Points', collisionPoints)) 93 TTCs = {}
94 if computeCZ:
95 self.crossingZones={}
96
97 if timeInterval:
98 commonTimeInterval = timeInterval
94 else: 99 else:
95 print('Features not associated with objects') 100 commonTimeInterval = self.timeInterval
101 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors
102 self.collisionPoints[i], self.crossingZones[i] = prediction.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ, debug)
103 TTCs[i] = prediction.computeExpectedIndicator(self.collisionPoints[i])
104 self.addIndicator(indicators.SeverityIndicator('TTC', TTCs))
105
106 if computeCZ:
107 pPETs = {}
108 for i in list(commonTimeInterval)[:-1]:
109 pPETs[i] = prediction.computeExpectedIndicator(self.crossingZones[i])
110 self.addIndicator(indicators.SeverityIndicator('pPET', pPETs))
96 111
97 def addVideoFilename(self,videoFilename): 112 def addVideoFilename(self,videoFilename):
98 self.videoFilename= videoFilename 113 self.videoFilename= videoFilename
99 114
100 def addInteractionType(self,interactionType): 115 def addInteractionType(self,interactionType):