Mercurial Hosting > traffic-intelligence
comparison python/moving.py @ 49:1fb5606506ae
re-arrangement
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Sat, 25 Sep 2010 11:33:07 -0400 |
parents | 6d11d9e7ad4e |
children | c354d41ef7cd |
comparison
equal
deleted
inserted
replaced
48:8aed225f71d8 | 49:1fb5606506ae |
---|---|
133 | 133 |
134 def norm2(self): | 134 def norm2(self): |
135 '2-norm distance (Euclidean distance)' | 135 '2-norm distance (Euclidean distance)' |
136 return sqrt(self.norm2Squared()) | 136 return sqrt(self.norm2Squared()) |
137 | 137 |
138 @staticmethod | |
138 def distanceNorm2(p1, p2): | 139 def distanceNorm2(p1, p2): |
139 return (p1-p2).norm2() | 140 return (p1-p2).norm2() |
140 | 141 |
141 def aslist(self): | 142 def aslist(self): |
142 return [self.x, self.y] | 143 return [self.x, self.y] |
222 '''Returns the list of the norms at each instant''' | 223 '''Returns the list of the norms at each instant''' |
223 # def add(x, y): return x+y | 224 # def add(x, y): return x+y |
224 # sq = map(add, [x*x for x in self.positions[0]], [y*y for y in self.positions[1]]) | 225 # sq = map(add, [x*x for x in self.positions[0]], [y*y for y in self.positions[1]]) |
225 # return sqrt(sq) | 226 # return sqrt(sq) |
226 return [hypot(x,y) for x,y in zip(self.positions[0], self.positions[1])] | 227 return [hypot(x,y) for x,y in zip(self.positions[0], self.positions[1])] |
228 | |
229 def cumulatedDisplacement(self): | |
230 displacement = 0 | |
231 for i in xrange(self.length()-1): | |
232 displacement += Point.distanceNorm2(self.__getitem__(i),self.__getitem__(i+1)) | |
233 return displacement | |
234 | |
235 def wiggliness(self): | |
236 return self.cumulatedDisplacement()/float(Point.distanceNorm2(self.__getitem__(0),self.__getitem__(self.length()-1))) | |
227 | 237 |
228 def getTrajectoryInInterval(self, inter): | 238 def getTrajectoryInInterval(self, inter): |
229 if inter.first >=0 and inter.last<= self.length(): | 239 if inter.first >=0 and inter.last<= self.length(): |
230 return Trajectory([self.positions[0][inter.first:inter.last], | 240 return Trajectory([self.positions[0][inter.first:inter.last], |
231 self.positions[1][inter.first:inter.last]]) | 241 self.positions[1][inter.first:inter.last]]) |
268 def getPositions(self): | 278 def getPositions(self): |
269 return self.positions | 279 return self.positions |
270 | 280 |
271 def getVelocities(self): | 281 def getVelocities(self): |
272 return self.velocities | 282 return self.velocities |
283 | |
284 def getSpeeds(self): | |
285 return self.getVelocities().norm() | |
273 | 286 |
274 def getPositionAt(self, i): | 287 def getPositionAt(self, i): |
275 return self.positions[i] | 288 return self.positions[i] |
276 | 289 |
277 def getVelocityAt(self, i): | 290 def getVelocityAt(self, i): |