comparison python/moving.py @ 284:f2cf16ad798f

added LCSS for trajectories
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 21 Dec 2012 18:33:36 -0500
parents 8d44fb1756bc
children e0d41c7f53d4
comparison
equal deleted inserted replaced
283:dbe7e53334d7 284:f2cf16ad798f
168 return self.x*self.x+self.y*self.y 168 return self.x*self.x+self.y*self.y
169 169
170 def norm2(self): 170 def norm2(self):
171 '2-norm distance (Euclidean distance)' 171 '2-norm distance (Euclidean distance)'
172 return sqrt(self.norm2Squared()) 172 return sqrt(self.norm2Squared())
173
174 def norm1(self):
175 return abs(self.x)+abs(self.y)
176
177 def normMax(self):
178 return max(abs(self.x),abs(self.y))
173 179
174 def aslist(self): 180 def aslist(self):
175 return [self.x, self.y] 181 return [self.x, self.y]
176 182
177 def astuple(self): 183 def astuple(self):
365 self.iterInstantNum += 1 371 self.iterInstantNum += 1
366 return self[self.iterInstantNum-1] 372 return self[self.iterInstantNum-1]
367 373
368 def length(self): 374 def length(self):
369 return len(self.positions[0]) 375 return len(self.positions[0])
376
377 def __len__(self):
378 return self.length()
370 379
371 def addPositionXY(self, x, y): 380 def addPositionXY(self, x, y):
372 self.positions[0].append(x) 381 self.positions[0].append(x)
373 self.positions[1].append(y) 382 self.positions[1].append(y)
374 383
494 traj.addPositionXY(self.positions[0][i], self.positions[1][i]) 503 traj.addPositionXY(self.positions[0][i], self.positions[1][i])
495 return traj 504 return traj
496 505
497 # version 2: use shapely polygon contains 506 # version 2: use shapely polygon contains
498 507
508 @staticmethod
509 def norm2LCSS(t1, t2, threshold):
510 return utils.LCSS(t1, t2, threshold, Point.distanceNorm2)
511
512 @staticmethod
513 def normMaxLCSS(t1, t2, threshold):
514 return utils.LCSS(t1, t2, threshold, lambda p1, p2: (p1-p2).normMax())
515
499 ################## 516 ##################
500 # Moving Objects 517 # Moving Objects
501 ################## 518 ##################
502 519
503 userTypeNames = ['car', 520 userTypeNames = ['car',