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