Mercurial > hg > nsaunier > traffic-intelligence
comparison python/events.py @ 664:455f9b93819c
added capability to set a videofilename to movingobject and interaction, renames interactiontype to collision in interaction
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Wed, 20 May 2015 12:04:22 +0200 |
| parents | 72174e66aba5 |
| children | 15e244d2a1b5 |
comparison
equal
deleted
inserted
replaced
| 663:65a867942eee | 664:455f9b93819c |
|---|---|
| 7 | 7 |
| 8 import multiprocessing | 8 import multiprocessing |
| 9 import itertools | 9 import itertools |
| 10 | 10 |
| 11 import moving, prediction, indicators, utils, cvutils | 11 import moving, prediction, indicators, utils, cvutils |
| 12 from storage import VideoFilenameAddable | |
| 12 __metaclass__ = type | 13 __metaclass__ = type |
| 13 | 14 |
| 14 def findRoute(prototypes,objects,i,j,noiseEntryNums,noiseExitNums,minSimilarity= 0.3, spatialThreshold=1.0, delta=180): | 15 def findRoute(prototypes,objects,i,j,noiseEntryNums,noiseExitNums,minSimilarity= 0.3, spatialThreshold=1.0, delta=180): |
| 15 if i[0] not in noiseEntryNums: | 16 if i[0] not in noiseEntryNums: |
| 16 prototypesRoutes= [ x for x in sorted(prototypes.keys()) if i[0]==x[0]] | 17 prototypesRoutes= [ x for x in sorted(prototypes.keys()) if i[0]==x[0]] |
| 39 if useDestination: | 40 if useDestination: |
| 40 if route not in prototypes.keys(): | 41 if route not in prototypes.keys(): |
| 41 route= findRoute(prototypes,objects,route,obj.getNum(),noiseEntryNums,noiseExitNums) | 42 route= findRoute(prototypes,objects,route,obj.getNum(),noiseEntryNums,noiseExitNums) |
| 42 return route | 43 return route |
| 43 | 44 |
| 44 class Interaction(moving.STObject): | 45 class Interaction(moving.STObject, VideoFilenameAddable): |
| 45 '''Class for an interaction between two road users | 46 '''Class for an interaction between two road users |
| 46 or a road user and an obstacle | 47 or a road user and an obstacle |
| 47 | 48 |
| 48 link to the moving objects | 49 link to the moving objects |
| 49 contains the indicators in a dictionary with the names as keys | 50 contains the indicators in a dictionary with the names as keys |
| 229 | 230 |
| 230 def computePET(self, collisionDistanceThreshold): | 231 def computePET(self, collisionDistanceThreshold): |
| 231 # TODO add crossing zone | 232 # TODO add crossing zone |
| 232 self.pet = moving.MovingObject.computePET(self.roadUser1, self.roadUser2, collisionDistanceThreshold) | 233 self.pet = moving.MovingObject.computePET(self.roadUser1, self.roadUser2, collisionDistanceThreshold) |
| 233 | 234 |
| 234 def addVideoFilename(self,videoFilename): | 235 def setCollision(self, collision): |
| 235 self.videoFilename = videoFilename | 236 '''indicates if it is a collision: argument should be boolean''' |
| 236 | 237 self.collision = collision |
| 237 def addInteractionType(self,interactionType): | 238 |
| 238 ''' interaction types: conflict or collision if they are known''' | 239 def isCollision(self): |
| 239 self.interactionType = interactionType | 240 if hasattr(self, 'collision'): |
| 241 return self.collision | |
| 242 else: | |
| 243 return None | |
| 240 | 244 |
| 241 def getCrossingZones(self, predictionMethodName): | 245 def getCrossingZones(self, predictionMethodName): |
| 242 if self.crossingZones is not None: | 246 if self.crossingZones is not None: |
| 243 return self.crossingZones[predictionMethodName] | 247 return self.crossingZones[predictionMethodName] |
| 244 else: | 248 else: |
