Mercurial > hg > nsaunier > traffic-intelligence
comparison python/events.py @ 341:2f39c4ed0b62
first version of indicator saving to sqlite
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Thu, 20 Jun 2013 14:31:24 -0400 |
| parents | 1046b7346886 |
| children | e5fe0e6d48a1 |
comparison
equal
deleted
inserted
replaced
| 340:1046b7346886 | 341:2f39c4ed0b62 |
|---|---|
| 6 from numpy import arccos | 6 from numpy import arccos |
| 7 | 7 |
| 8 import multiprocessing | 8 import multiprocessing |
| 9 import itertools | 9 import itertools |
| 10 | 10 |
| 11 import moving | 11 import moving, prediction, indicators, utils |
| 12 import prediction | |
| 13 import indicators | |
| 14 | 12 |
| 15 __metaclass__ = type | 13 __metaclass__ = type |
| 16 | 14 |
| 17 class Interaction(moving.STObject): | 15 class Interaction(moving.STObject): |
| 18 '''Class for an interaction between two road users | 16 '''Class for an interaction between two road users |
| 29 | 27 |
| 30 indicatorNames = ['Collision Course Dot Product', | 28 indicatorNames = ['Collision Course Dot Product', |
| 31 'Collision Course Angle', | 29 'Collision Course Angle', |
| 32 'Distance', | 30 'Distance', |
| 33 'Minimum Distance', | 31 'Minimum Distance', |
| 34 'Speed Differential'] | 32 'Velocity Angle', |
| 33 'Speed Differential', | |
| 34 'Collision Probability', | |
| 35 'Time to Collision', | |
| 36 'Probability of Successful Evasive Action', | |
| 37 'predicted Post Encroachment Time'] | |
| 38 | |
| 39 indicatorNameToIndices = utils.inverseEnumeration(indicatorNames) | |
| 40 | |
| 41 indicatorShortNames = ['', | |
| 42 'CCAng', | |
| 43 'Dist', | |
| 44 'MinDist', | |
| 45 'VA', | |
| 46 'SD', | |
| 47 'PoC', | |
| 48 'TTC', | |
| 49 'P(SEA)', | |
| 50 'pPET'] | |
| 35 | 51 |
| 36 def __init__(self, num = None, timeInterval = None, roaduserNum1 = None, roaduserNum2 = None, roadUser1 = None, roadUser2 = None, categoryNum = None): | 52 def __init__(self, num = None, timeInterval = None, roaduserNum1 = None, roaduserNum2 = None, roadUser1 = None, roadUser2 = None, categoryNum = None): |
| 37 moving.STObject.__init__(self, num, timeInterval) | 53 moving.STObject.__init__(self, num, timeInterval) |
| 38 self.roadUserNumbers = set([roaduserNum1, roaduserNum2]) | 54 self.roadUserNumbers = set([roaduserNum1, roaduserNum2]) |
| 39 self.roadUser1 = roadUser1 | 55 self.roadUser1 = roadUser1 |
| 101 else: | 117 else: |
| 102 commonTimeInterval = self.timeInterval | 118 commonTimeInterval = self.timeInterval |
| 103 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors | 119 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors |
| 104 self.collisionPoints[i], self.crossingZones[i] = prediction.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ, debug) | 120 self.collisionPoints[i], self.crossingZones[i] = prediction.computeCrossingsCollisionsAtInstant(i, self.roadUser1, self.roadUser2, predictionParameters, collisionDistanceThreshold, timeHorizon, computeCZ, debug) |
| 105 TTCs[i] = prediction.computeExpectedIndicator(self.collisionPoints[i]) | 121 TTCs[i] = prediction.computeExpectedIndicator(self.collisionPoints[i]) |
| 122 # add probability of collision, and probability of successful evasive action | |
| 106 self.addIndicator(indicators.SeverityIndicator('TTC', TTCs)) | 123 self.addIndicator(indicators.SeverityIndicator('TTC', TTCs)) |
| 107 | 124 |
| 108 if computeCZ: | 125 if computeCZ: |
| 109 pPETs = {} | 126 pPETs = {} |
| 110 for i in list(commonTimeInterval)[:-1]: | 127 for i in list(commonTimeInterval)[:-1]: |
