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