Mercurial > hg > nsaunier > traffic-intelligence
comparison python/moving.py @ 661:dc70d9e711f5
some method name change and new methods for features in objects (MovingObject) and methods to access indicator values in interactions
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 18 May 2015 13:53:25 +0200 |
| parents | 994dd644f6ab |
| children | 72174e66aba5 |
comparison
equal
deleted
inserted
replaced
| 660:994dd644f6ab | 661:dc70d9e711f5 |
|---|---|
| 984 super(MovingObject, self).__init__(num, timeInterval) | 984 super(MovingObject, self).__init__(num, timeInterval) |
| 985 self.positions = positions | 985 self.positions = positions |
| 986 self.velocities = velocities | 986 self.velocities = velocities |
| 987 self.geometry = geometry | 987 self.geometry = geometry |
| 988 self.userType = userType | 988 self.userType = userType |
| 989 self.features = [] | 989 self.features = None |
| 990 # compute bounding polygon from trajectory | 990 # compute bounding polygon from trajectory |
| 991 | 991 |
| 992 @staticmethod | 992 @staticmethod |
| 993 def generate(p, v, timeInterval): | 993 def generate(p, v, timeInterval): |
| 994 positions, velocities = Trajectory.generate(p, v, int(timeInterval.length())) | 994 positions, velocities = Trajectory.generate(p, v, int(timeInterval.length())) |
| 1103 self.userType = userType | 1103 self.userType = userType |
| 1104 | 1104 |
| 1105 def setFeatures(self, features): | 1105 def setFeatures(self, features): |
| 1106 self.features = [features[i] for i in self.featureNumbers] | 1106 self.features = [features[i] for i in self.featureNumbers] |
| 1107 | 1107 |
| 1108 def getFeatures(self): | |
| 1109 return self.features | |
| 1110 | |
| 1111 def hasFeatures(self): | |
| 1112 return (self.features is not None) | |
| 1113 | |
| 1114 def getFeature(self, i): | |
| 1115 if self.hasFeatures() and i<len(self.features): | |
| 1116 return self.features[i] | |
| 1117 else: | |
| 1118 return None | |
| 1119 | |
| 1108 def getSpeeds(self): | 1120 def getSpeeds(self): |
| 1109 return self.getVelocities().norm() | 1121 return self.getVelocities().norm() |
| 1110 | 1122 |
| 1111 def getSpeedIndicator(self): | 1123 def getSpeedIndicator(self): |
| 1112 from indicators import SeverityIndicator | 1124 from indicators import SeverityIndicator |
| 1129 | 1141 |
| 1130 def getYCoordinates(self): | 1142 def getYCoordinates(self): |
| 1131 return self.positions.getYCoordinates() | 1143 return self.positions.getYCoordinates() |
| 1132 | 1144 |
| 1133 def plot(self, options = '', withOrigin = False, timeStep = 1, withFeatures = False, **kwargs): | 1145 def plot(self, options = '', withOrigin = False, timeStep = 1, withFeatures = False, **kwargs): |
| 1134 if withFeatures: | 1146 if withFeatures and self.hasFeatures(): |
| 1135 for f in self.features: | 1147 for f in self.getFeatures(): |
| 1136 f.positions.plot('r', True, timeStep, **kwargs) | 1148 f.positions.plot('r', True, timeStep, **kwargs) |
| 1137 self.positions.plot('bx-', True, timeStep, **kwargs) | 1149 self.positions.plot('bx-', True, timeStep, **kwargs) |
| 1138 else: | 1150 else: |
| 1139 self.positions.plot(options, withOrigin, timeStep, **kwargs) | 1151 self.positions.plot(options, withOrigin, timeStep, **kwargs) |
| 1140 | 1152 |
