comparison python/events.py @ 559:806df5f61c03

adapted safety-analysis script to use multi-threading
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 15 Jul 2014 01:25:33 -0400
parents a80ef6931fd8
children 07b1bd0785cd
comparison
equal deleted inserted replaced
558:a80ef6931fd8 559:806df5f61c03
109 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[2], distances)) 109 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[2], distances))
110 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[4], velocityAngles)) 110 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[4], velocityAngles))
111 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[5], speedDifferentials)) 111 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[5], speedDifferentials))
112 112
113 # if we have features, compute other indicators 113 # if we have features, compute other indicators
114 if self.roadUser1.features != None and self.roadUser2.features != None: 114 if len(self.roadUser1.features) != 0 and len(self.roadUser2.features) != 0:
115 minDistance={} 115 minDistance={}
116 for instant in self.timeInterval: 116 for instant in self.timeInterval:
117 minDistance[instant] = moving.MovingObject.minDistance(self.roadUser1, self.roadUser2, instant) 117 minDistance[instant] = moving.MovingObject.minDistance(self.roadUser1, self.roadUser2, instant)
118 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[3], minDistance)) 118 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[3], minDistance))
119 119
125 125
126 if timeInterval: 126 if timeInterval:
127 commonTimeInterval = timeInterval 127 commonTimeInterval = timeInterval
128 else: 128 else:
129 commonTimeInterval = self.timeInterval 129 commonTimeInterval = self.timeInterval
130 self.collisionPoints, self.crossingZones = prediction.computeCrossingsCollisions(normalAdaptationPredictionParameters, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug, nProcesses) 130 self.collisionPoints, self.crossingZones = prediction.computeCrossingsCollisions(predictionParameters, self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug, commonTimeInterval, nProcesses)
131 # for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors
132 # i, self.collisionPoints[i], self.crossingZones[i] = predictionParameters.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug)
133 # if len(self.collisionPoints[i]) > 0:
134 for i, cp in self.collisionPoints.iteritems(): 131 for i, cp in self.collisionPoints.iteritems():
135 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(cp) 132 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(cp)
136 # add probability of collision, and probability of successful evasive action 133 # add probability of collision, and probability of successful evasive action
137 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs)) 134 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs))
138 135