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