Mercurial Hosting > traffic-intelligence
changeset 551:dc3739ac2371
rearranged all distance computations between points
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Tue, 08 Jul 2014 16:59:35 -0400 |
parents | 5668af2ff515 |
children | ca6bded754ac |
files | python/moving.py |
diffstat | 1 files changed, 9 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/python/moving.py Tue Jul 08 16:33:45 2014 -0400 +++ b/python/moving.py Tue Jul 08 16:59:35 2014 -0400 @@ -812,30 +812,23 @@ plot(list(self.getTimeInterval()), speeds) @staticmethod - def distances(obj1, obj2, instant): + def distances(obj1, obj2, instant1, _instant2 = None): from scipy.spatial.distance import cdist - positions1 = [f.getPositionAtInstant(instant).astuple() for f in obj1.features if f.existsAtInstant(instant)] - positions2 = [f.getPositionAtInstant(instant).astuple() for f in obj2.features if f.existsAtInstant(instant)] - return cdist(positions1, positions2, metric = 'euclidean') - - @staticmethod - def minDistance(obj1, obj2, instant): - return MovingObject.distances(obj1, obj2, instant).min() - - @staticmethod - def distances2(obj1, obj2, instant1,instant2): - from scipy.spatial.distance import cdist + if _instant2 == None: + instant2 = instant1 + else: + instant2 = _instant2 positions1 = [f.getPositionAtInstant(instant1).astuple() for f in obj1.features if f.existsAtInstant(instant1)] positions2 = [f.getPositionAtInstant(instant2).astuple() for f in obj2.features if f.existsAtInstant(instant2)] return cdist(positions1, positions2, metric = 'euclidean') @staticmethod - def minDistance2(obj1, obj2, instant1,instant2): - return MovingObject.distances2(obj1, obj2, instant1,instant2).min() + def minDistance(obj1, obj2, instant1, instant2 = None): + return MovingObject.distances(obj1, obj2, instant1, instant2).min() @staticmethod - def maxDistance(obj1, obj2, instant): - return MovingObject.distances(obj1, obj2, instant).max() + def maxDistance(obj1, obj2, instant, instant2 = None): + return MovingObject.distances(obj1, obj2, instant1, instant2).max() def maxSize(self): '''Returns the max distance between features @@ -977,7 +970,6 @@ # what to do: threshold for most common type? self.setUserType() return possibleUserTypes - @staticmethod def collisionCourseDotProduct(movingObject1, movingObject2, instant): 'A positive result indicates that the road users are getting closer'