comparison python/events.py @ 937:b67a784beb69

work started on prototype prediction
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 17 Jul 2017 01:38:06 -0400
parents e2452abba0e7
children b1e8453c207c
comparison
equal deleted inserted replaced
936:56cc8a1f7082 937:b67a784beb69
217 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[3], minDistances, mostSevereIsMax = False)) 217 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[3], minDistances, mostSevereIsMax = False))
218 218
219 def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None, nProcesses = 1, usePrototypes=False, route1= (-1,-1), route2=(-1,-1), prototypes={}, secondStepPrototypes={}, nMatching={}, objects=[], noiseEntryNums=[], noiseExitNums=[], minSimilarity=0.1, mostMatched=None, useDestination=True, useSpeedPrototype=True, acceptPartialLength=30, step=1): 219 def computeCrossingsCollisions(self, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ = False, debug = False, timeInterval = None, nProcesses = 1, usePrototypes=False, route1= (-1,-1), route2=(-1,-1), prototypes={}, secondStepPrototypes={}, nMatching={}, objects=[], noiseEntryNums=[], noiseExitNums=[], minSimilarity=0.1, mostMatched=None, useDestination=True, useSpeedPrototype=True, acceptPartialLength=30, step=1):
220 '''Computes all crossing and collision points at each common instant for two road users. ''' 220 '''Computes all crossing and collision points at each common instant for two road users. '''
221 TTCs = {} 221 TTCs = {}
222 collisionProbabilities = {}
222 if usePrototypes: 223 if usePrototypes:
223 route1= getRoute(self.roadUser1,prototypes,objects,noiseEntryNums,noiseExitNums,useDestination) 224 route1= getRoute(self.roadUser1,prototypes,objects,noiseEntryNums,noiseExitNums,useDestination)
224 route2= getRoute(self.roadUser2,prototypes,objects,noiseEntryNums,noiseExitNums,useDestination) 225 route2= getRoute(self.roadUser2,prototypes,objects,noiseEntryNums,noiseExitNums,useDestination)
225 226
226 if timeInterval is not None: 227 if timeInterval is not None:
227 commonTimeInterval = timeInterval 228 commonTimeInterval = timeInterval
228 else: 229 else:
229 commonTimeInterval = self.timeInterval 230 commonTimeInterval = self.timeInterval
230 self.collisionPoints, crossingZones = predictionParameters.computeCrossingsCollisions(self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug, commonTimeInterval, nProcesses,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype,acceptPartialLength, step) 231 self.collisionPoints, crossingZones = predictionParameters.computeCrossingsCollisions(self.roadUser1, self.roadUser2, collisionDistanceThreshold, timeHorizon, computeCZ, debug, commonTimeInterval, nProcesses,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype,acceptPartialLength, step)
231 for i, cp in self.collisionPoints.iteritems(): 232 for i, cps in self.collisionPoints.iteritems():
232 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(cp) 233 TTCs[i] = prediction.SafetyPoint.computeExpectedIndicator(cps)
234 collisionProbabilities[i] = sum([p.probability for p in cps])
233 if len(TTCs) > 0: 235 if len(TTCs) > 0:
234 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs, mostSevereIsMax=False)) 236 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[7], TTCs, mostSevereIsMax=False))
237 self.addIndicator(indicators.SeverityIndicator(Interaction.indicatorNames[6], collisionProbabilities))
235 238
236 # crossing zones and pPET 239 # crossing zones and pPET
237 if computeCZ: 240 if computeCZ:
238 self.crossingZones = crossingZones 241 self.crossingZones = crossingZones
239 pPETs = {} 242 pPETs = {}