comparison python/events.py @ 558:a80ef6931fd8

updated safety-analysis to test multiprocessing
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 14 Jul 2014 17:44:09 -0400
parents 21bdeb29f855
children 806df5f61c03
comparison
equal deleted inserted replaced
557:b91f33e098ee 558:a80ef6931fd8
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
120 def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None): 120 def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None, nProcesses = 1):
121 '''Computes all crossing and collision points at each common instant for two road users. ''' 121 '''Computes all crossing and collision points at each common instant for two road users. '''
122 self.collisionPoints={} 122 self.collisionPoints={}
123 self.crossingZones={} 123 self.crossingZones={}
124 TTCs = {} 124 TTCs = {}
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 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors 130 self.collisionPoints, self.crossingZones = prediction.computeCrossingsCollisions(normalAdaptationPredictionParameters, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug, nProcesses)
131 self.collisionPoints[i], self.crossingZones[i] = predictionParameters.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug) 131 # for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors
132 if len(self.collisionPoints[i]) > 0: 132 # i, self.collisionPoints[i], self.crossingZones[i] = predictionParameters.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug)
133 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(self.collisionPoints[i]) 133 # if len(self.collisionPoints[i]) > 0:
134 for i, cp in self.collisionPoints.iteritems():
135 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(cp)
134 # add probability of collision, and probability of successful evasive action 136 # add probability of collision, and probability of successful evasive action
135 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs)) 137 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs))
136 138
137 if computeCZ: 139 if computeCZ:
138 pPETs = {} 140 pPETs = {}