Mercurial Hosting > traffic-intelligence
diff python/moving.py @ 526:21bdeb29f855
corrected bug in initialization of lists and loading trajectories from vissim files
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 20 Jun 2014 17:45:32 -0400 |
parents | 1dced8932b08 |
children | 37830a831818 |
line wrap: on
line diff
--- a/python/moving.py Fri Jun 20 00:20:29 2014 -0400 +++ b/python/moving.py Fri Jun 20 17:45:32 2014 -0400 @@ -100,7 +100,11 @@ def __getitem__(self, i): if not self.empty(): - return self.first+i + if isinstance(i, int): + return self.first+i + else: + raise TypeError, "Invalid argument type." + #elif isinstance( key, slice ): def __iter__(self): self.iterInstantNum = -1 @@ -434,14 +438,18 @@ def length(self): return self.__len__() + def __getitem__(self, i): + if isinstance(i, int): + return Point(self.positions[0][i], self.positions[1][i]) + else: + raise TypeError, "Invalid argument type." + #elif isinstance( key, slice ): + def __str__(self): return ' '.join([self.__getitem__(i).__str__() for i in xrange(self.length())]) def __repr__(self): - return str(self) - - def __getitem__(self, i): - return Point(self.positions[0][i], self.positions[1][i]) + return self.__str__() def __iter__(self): self.iterInstantNum = 0 @@ -567,7 +575,6 @@ return True return False - def wiggliness(self): return self.cumulatedDisplacement()/float(Point.distanceNorm2(self.__getitem__(0),self.__getitem__(self.length()-1))) @@ -625,12 +632,22 @@ longitudinal coordinate is stored as first coordinate (exterior name S) lateral coordiante is stored as second coordinate''' - def __init__(self, S = [], Y = [], lanes = []): - self.positions = [S,Y] - self.lanes = lanes + def __init__(self, S = None, Y = None, lanes = None): + if S == None or Y == None: + self.positions = [[],[]] + else: + self.positions = [S,Y] + if lanes == None: + self.lanes = [] + else: + self.lanes = lanes def __getitem__(self,i): - return [self.positions[0][i], self.positions[1][i], self.lanes[i]] + if isinstance(i, int): + return [self.positions[0][i], self.positions[1][i], self.lanes[i]] + else: + raise TypeError, "Invalid argument type." + #elif isinstance( key, slice ): def getSCoordinates(self): return self.getXCoordinates()