Mercurial Hosting > 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 |