comparison python/prediction.py @ 611:233867934190

corrected bug
author MohamedGomaa
date Thu, 04 Dec 2014 13:37:55 -0500
parents 0dc36203973d
children 306db0f3c7a2
comparison
equal deleted inserted replaced
610:0dc36203973d 611:233867934190
180 '''returns the lists of collision points and crossing zones''' 180 '''returns the lists of collision points and crossing zones'''
181 if usePrototypes: 181 if usePrototypes:
182 prototypeTrajectories1=getPrototypeTrajectory(obj1,route1,currentInstant,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype) 182 prototypeTrajectories1=getPrototypeTrajectory(obj1,route1,currentInstant,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)
183 prototypeTrajectories2= getPrototypeTrajectory(obj2,route2,currentInstant,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype) 183 prototypeTrajectories2= getPrototypeTrajectory(obj2,route2,currentInstant,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)
184 predictedTrajectories1 = predictionParams.generatePredictedTrajectories(obj1, currentInstant,prototypeTrajectories1) 184 predictedTrajectories1 = predictionParams.generatePredictedTrajectories(obj1, currentInstant,prototypeTrajectories1)
185 predictedTrajectories2 = predictionParams.generatePredictedTrajectories(obj2, currentInstant,prototypeTrajectories2) 185 predictedTrajectories2 = predictionParams.generatePredictedTrajectories(obj2, currentInstant,prototypeTrajectories2)
186 else: 186 else:
187 predictedTrajectories1 = predictionParams.generatePredictedTrajectories(obj1, currentInstant) 187 predictedTrajectories1 = predictionParams.generatePredictedTrajectories(obj1, currentInstant)
188 predictedTrajectories2 = predictionParams.generatePredictedTrajectories(obj2, currentInstant) 188 predictedTrajectories2 = predictionParams.generatePredictedTrajectories(obj2, currentInstant)
189 189
190 collisionPoints = [] 190 collisionPoints = []
226 else: 226 else:
227 commonTimeInterval = obj1.commonTimeInterval(obj2) 227 commonTimeInterval = obj1.commonTimeInterval(obj2)
228 if nProcesses == 1: 228 if nProcesses == 1:
229 if usePrototypes: 229 if usePrototypes:
230 firstInstant= next( (x for x in xrange(commonTimeInterval.first,commonTimeInterval.last) if x-obj1.getFirstInstant() >= acceptPartialLength and x-obj2.getFirstInstant() >= acceptPartialLength), commonTimeInterval.last) 230 firstInstant= next( (x for x in xrange(commonTimeInterval.first,commonTimeInterval.last) if x-obj1.getFirstInstant() >= acceptPartialLength and x-obj2.getFirstInstant() >= acceptPartialLength), commonTimeInterval.last)
231 commonTimeIntervalList1= list(xrange(firstInstant,commonTimeInterval.last)) 231 commonTimeIntervalList1= list(xrange(firstInstant,commonTimeInterval.last-1)) # do not look at the 1 last position/velocities, often with errors
232 commonTimeIntervalList2= list(xrange(firstInstant,commonTimeInterval.last,step)) 232 commonTimeIntervalList2= list(xrange(firstInstant,commonTimeInterval.last-1,step)) # do not look at the 1 last position/velocities, often with errors
233 for i in commonTimeIntervalList2[:-1]: # do not look at the 1 last position/velocities, often with errors 233 for i in commonTimeIntervalList2:
234 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype) 234 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)
235 if len(cp) != 0: 235 if len(cp) != 0:
236 collisionPoints[i] = cp 236 collisionPoints[i] = cp
237 if len(cz) != 0: 237 if len(cz) != 0:
238 crossingZones[i] = cz 238 crossingZones[i] = cz
239 if collisionPoints!={} or crossingZones!={}: 239 if collisionPoints!={} or crossingZones!={}:
240 for i in commonTimeIntervalList1[:-1]: 240 for i in commonTimeIntervalList1:
241 if i not in commonTimeIntervalList2: 241 if i not in commonTimeIntervalList2:
242 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype) 242 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)
243 if len(cp) != 0: 243 if len(cp) != 0:
244 collisionPoints[i] = cp 244 collisionPoints[i] = cp
245 if len(cz) != 0: 245 if len(cz) != 0:
246 crossingZones[i] = cz 246 crossingZones[i] = cz
247 247 else:
248 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors 248 for i in list(commonTimeInterval)[:-1]: # do not look at the 1 last position/velocities, often with errors
249 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype) 249 i, cp, cz = computeCrossingsCollisionsAtInstant(predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)
250 if len(cp) != 0: 250 if len(cp) != 0:
251 collisionPoints[i] = cp 251 collisionPoints[i] = cp
252 if len(cz) != 0: 252 if len(cz) != 0:
253 crossingZones[i] = cz 253 crossingZones[i] = cz
254 else: 254 else:
255 from multiprocessing import Pool 255 from multiprocessing import Pool
256 pool = Pool(processes = nProcesses) 256 pool = Pool(processes = nProcesses)
257 jobs = [pool.apply_async(computeCrossingsCollisionsAtInstant, args = (predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)) for i in list(commonTimeInterval)[:-1]] 257 jobs = [pool.apply_async(computeCrossingsCollisionsAtInstant, args = (predictionParams, i, obj1, obj2, collisionDistanceThreshold, timeHorizon, computeCZ, debug,usePrototypes,route1,route2,prototypes,secondStepPrototypes,nMatching,objects,noiseEntryNums,noiseExitNums,minSimilarity,mostMatched,useDestination,useSpeedPrototype)) for i in list(commonTimeInterval)[:-1]]
258 #results = [j.get() for j in jobs] 258 #results = [j.get() for j in jobs]