Mercurial Hosting > traffic-intelligence
comparison python/moving.py @ 653:107f1ad02b69
compilation with C++11 and test function for movingobject distance
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 07 May 2015 13:25:31 +0200 |
parents | bfaa6b95dae2 |
children | 784298512b60 |
comparison
equal
deleted
inserted
replaced
652:3b13ec964476 | 653:107f1ad02b69 |
---|---|
1153 axis('equal') | 1153 axis('equal') |
1154 figure(2) | 1154 figure(2) |
1155 plot(list(self.getTimeInterval()), speeds) | 1155 plot(list(self.getTimeInterval()), speeds) |
1156 | 1156 |
1157 @staticmethod | 1157 @staticmethod |
1158 def minMaxDistance(obj1, obj2): | |
1159 '''Computes the min max distance used for feature grouping''' | |
1160 commonTimeInterval = obj1.commonTimeInterval(obj2) | |
1161 if not commonTimeInterval.empty(): | |
1162 minDistance = (obj1.getPositionAtInstant(commonTimeInterval.first)-obj2.getPositionAtInstant(commonTimeInterval.first)).norm2() | |
1163 maxDistance = minDistance | |
1164 for t in list(commonTimeInterval)[1:]: | |
1165 d = (obj1.getPositionAtInstant(t)-obj2.getPositionAtInstant(t)).norm2() | |
1166 if d<minDistance: | |
1167 minDistance = d | |
1168 elif d>maxDistance: | |
1169 maxDistance = d | |
1170 return int(commonTimeInterval.length()), minDistance, maxDistance | |
1171 else: | |
1172 return int(commonTimeInterval.length()), None, None | |
1173 | |
1174 @staticmethod | |
1158 def distances(obj1, obj2, instant1, _instant2 = None): | 1175 def distances(obj1, obj2, instant1, _instant2 = None): |
1176 '''Returns the distances between all features of the 2 objects | |
1177 at the same instant instant1 | |
1178 or at instant1 and instant2''' | |
1159 from scipy.spatial.distance import cdist | 1179 from scipy.spatial.distance import cdist |
1160 if _instant2 is None: | 1180 if _instant2 is None: |
1161 instant2 = instant1 | 1181 instant2 = instant1 |
1162 else: | 1182 else: |
1163 instant2 = _instant2 | 1183 instant2 = _instant2 |