Mercurial Hosting > traffic-intelligence
diff python/prediction.py @ 946:e5970606066f
bug fix on list filtering (cannot remove while iterating) and motion prediction keeping the same features
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 21 Jul 2017 11:25:20 -0400 |
parents | 05d4302bf67e |
children | 584b9405e494 |
line wrap: on
line diff
--- a/python/prediction.py Thu Jul 20 14:29:46 2017 -0400 +++ b/python/prediction.py Fri Jul 21 11:25:20 2017 -0400 @@ -575,10 +575,16 @@ predictedTrajectories = [] if instant-obj.getFirstInstant()+1 >= self.minFeatureTime: if self.useFeatures and obj.hasFeatures(): - # get current features existing for the most time, sort on first instant of feature and take n first - firstInstants = [(f,f.getFirstInstant()) for f in obj.getFeatures() if f.existsAtInstant(instant)] + if not hasattr(obj, 'currentPredictionFeatures'): + obj.currentPredictionFeatures = [] + else: + obj.currentPredictionFeatures[:] = [f for f in obj.currentPredictionFeatures if f.existsAtInstant(instant)] + firstInstants = [(f,f.getFirstInstant()) for f in obj.getFeatures() if f.existsAtInstant(instant) and f not in obj.currentPredictionFeatures] firstInstants.sort(key = lambda t: t[1]) - for f,t1 in firstInstants[:min(self.nPredictedTrajectories, len(firstInstants))]: + for f,t1 in firstInstants[:min(self.nPredictedTrajectories, len(firstInstants), self.nPredictedTrajectories-len(obj.currentPredictionFeatures))]: + obj.currentPredictionFeatures.append(f) + print len(obj.currentPredictionFeatures), self.nPredictedTrajectories + for f in obj.currentPredictionFeatures: self.addPredictedTrajectories(predictedTrajectories, f, instant) else: self.addPredictedTrajectories(predictedTrajectories, obj, instant)