Mercurial Hosting > traffic-intelligence
changeset 306:93d851d0d21e
bug correction, minor work on indicators
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 02 Apr 2013 15:27:42 -0400 |
parents | ca9131968bce |
children | f7ca78a11ea6 539e2b4cfaa3 |
files | python/events.py python/indicators.py python/ubc_utils.py |
diffstat | 3 files changed, 9 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/python/events.py Fri Mar 29 21:20:12 2013 -0400 +++ b/python/events.py Tue Apr 02 15:27:42 2013 -0400 @@ -3,6 +3,7 @@ Interactions, pedestrian crossing...''' import numpy as np +from numpy import arccos import multiprocessing import itertools @@ -50,17 +51,19 @@ deltap = self.movingObject1.getPositionAtInstant(instant)-self.movingObject2.getPositionAtInstant(instant) deltav = self.movingObject2.getVelocityAtInstant(instant)-self.movingObject1.getVelocityAtInstant(instant) collisionCourseDotProducts[instant] = moving.Point.dot(deltap, deltav) - distances[instant] = deltap.norm2() + distances[instant] = deltap.norm2() # todo compute closest feature distance, if features speedDifferentials[instant] = deltav.norm2() if collisionCourseDotProducts[instant] > 0: - collisionCourseCosines[instant] = collisionCourseDotProducts[instant]/(distances[instant]*speedDifferentials[instant]) + collisionCourseCosines[instant] = arccos(collisionCourseDotProducts[instant]/(distances[instant]*speedDifferentials[instant])) + # todo shorten the time intervals based on the interaction definition - # todos change cosines to angles self.addIndicator(indicators.SeverityIndicator('Collision Course Dot Product', collisionCourseDotProducts)) self.addIndicator(indicators.SeverityIndicator('Distance', distances)) self.addIndicator(indicators.SeverityIndicator('Speed Differential', speedDifferentials)) self.addIndicator(indicators.SeverityIndicator('Collision Course Cosine', collisionCourseCosines)) + # todo test for interaction instants and interval, compute indicators + def createInteractions(objects): '''Create all interactions of two co-existing road users
--- a/python/indicators.py Fri Mar 29 21:20:12 2013 -0400 +++ b/python/indicators.py Tue Apr 02 15:27:42 2013 -0400 @@ -18,7 +18,7 @@ def __init__(self, name, values, timeInterval=None, maxValue = None): self.name = name - self.isCosine = name.find('Cosine') + self.isCosine = (name.find('Cosine') >= 0) if timeInterval: assert len(values) == timeInterval.length() self.timeInterval = timeInterval @@ -78,7 +78,7 @@ (no transformation otherwise)''' from numpy import arccos values = self.getValues() - if self.isCosine >= 0: + if self.isCosine: return [arccos(c) for c in values] else: return values
--- a/python/ubc_utils.py Fri Mar 29 21:20:12 2013 -0400 +++ b/python/ubc_utils.py Tue Apr 02 15:27:42 2013 -0400 @@ -170,7 +170,7 @@ def loadInteractions(filename, nInteractions = -1): 'Loads interactions from the old UBC traffic event format' - from event import Interaction + from events import Interaction from indicators import SeverityIndicator file = utils.openCheck(filename) if (not file): @@ -184,7 +184,6 @@ inter = Interaction(interactionNum, TimeInterval(parsedLine[1],parsedLine[2]), parsedLine[3], parsedLine[4], categoryNum = parsedLine[5]) indicatorFrameNums = [int(n) for n in lines[1].split(' ')] - inter.indicators = [] for indicatorNum,line in enumerate(lines[2:]): values = {} for i,v in enumerate([float(n) for n in line.split(' ')]):