Mercurial > hg > nsaunier > traffic-intelligence
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 = {} |
