Mercurial > hg > nsaunier > 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): |
