Mercurial Hosting > traffic-intelligence
diff python/moving.py @ 949:d6c1c05d11f5
modified multithreading at the interaction level for safety computations
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 21 Jul 2017 17:52:56 -0400 |
parents | 05d4302bf67e |
children | 196a1fd498ba |
line wrap: on
line diff
--- a/python/moving.py Fri Jul 21 12:11:55 2017 -0400 +++ b/python/moving.py Fri Jul 21 17:52:56 2017 -0400 @@ -5,7 +5,7 @@ from base import VideoFilenameAddable from math import sqrt, atan2, cos, sin -from numpy import median, array, zeros, hypot, NaN, std, floor, float32, argwhere +from numpy import median, array, arange, zeros, ones, hypot, NaN, std, floor, float32, argwhere, minimum from matplotlib.pyplot import plot, text from scipy.stats import scoreatpercentile from scipy.spatial.distance import cdist @@ -1458,6 +1458,15 @@ indices, intersections = self.positions.getIntersections(p1, p2) return [t+self.getFirstInstant() for t in indices] + def computeTrajectorySimilarities(self, prototypes, lcss): + 'Computes the similarities to the prototypes using the LCSS' + if not hasattr(self, 'prototypeSimilarities'): + self.prototypeSimilarities = [] + for proto in prototypes: + lcss.similarities(proto.getMovingObject().getPositions().asArray().T, self.getPositions().asArray().T) + similarities = lcss.similarityTable[-1, :-1].astype(float) + self.prototypeSimilarities.append(similarities/minimum(arange(1.,len(similarities)+1), proto.getMovingObject().length()*ones(len(similarities)))) + @staticmethod def computePET(obj1, obj2, collisionDistanceThreshold): '''Post-encroachment time based on distance threshold