Mercurial Hosting > 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 = {} |