Mercurial > hg > nsaunier > traffic-intelligence
comparison scripts/safety-analysis.py @ 948:584b9405e494
added safety analysis parameters for motion patterns
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Fri, 21 Jul 2017 12:11:55 -0400 |
| parents | e5970606066f |
| children | d6c1c05d11f5 |
comparison
equal
deleted
inserted
replaced
| 947:053484e08947 | 948:584b9405e494 |
|---|---|
| 54 prototypes = storage.loadPrototypesFromSqlite(params.databaseFilename) | 54 prototypes = storage.loadPrototypesFromSqlite(params.databaseFilename) |
| 55 else: | 55 else: |
| 56 prototypes = storage.loadPrototypesFromSqlite(args.prototypeDatabaseFilename) | 56 prototypes = storage.loadPrototypesFromSqlite(args.prototypeDatabaseFilename) |
| 57 for p in prototypes: | 57 for p in prototypes: |
| 58 p.getMovingObject().computeCumulativeDistances() | 58 p.getMovingObject().computeCumulativeDistances() |
| 59 predictionParameters = prediction.PrototypePredictionParameters(prototypes, params.nPredictedTrajectories, 2., 0.4, 'cityblock', 10, params.constantSpeedPrototypePrediction, params.useFeaturesForPrediction) | 59 predictionParameters = prediction.PrototypePredictionParameters(prototypes, params.nPredictedTrajectories, params.maxLcssDistance, params.minLcssSimilarity, params.lcssMetric, params.minFeatureTime, params.constantSpeedPrototypePrediction, params.useFeaturesForPrediction) |
| 60 # else: | 60 # else: |
| 61 # no else required, since parameters is required as argument | 61 # no else required, since parameters is required as argument |
| 62 | 62 |
| 63 # evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed, | 63 # evasiveActionPredictionParameters = prediction.EvasiveActionPredictionParameters(params.maxPredictedSpeed, |
| 64 # params.nPredictedTrajectories, | 64 # params.nPredictedTrajectories, |
| 66 # params.maxExtremeAcceleration, | 66 # params.maxExtremeAcceleration, |
| 67 # params.maxExtremeSteering, | 67 # params.maxExtremeSteering, |
| 68 # params.useFeaturesForPrediction) | 68 # params.useFeaturesForPrediction) |
| 69 | 69 |
| 70 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp')) | 70 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp')) |
| 71 # if params.useFeaturesForPrediction: | |
| 72 # features = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'feature') # needed if normal adaptation | |
| 73 # for obj in objects: | |
| 74 # obj.setFeatures(features) | |
| 75 | 71 |
| 76 interactions = events.createInteractions(objects) | 72 interactions = events.createInteractions(objects) |
| 77 for inter in interactions: | 73 for inter in interactions: |
| 74 print('processing interaction {}'.format(inter.getNum()) | |
| 78 inter.computeIndicators() | 75 inter.computeIndicators() |
| 79 if not args.noMotionPrediction: | 76 if not args.noMotionPrediction: |
| 80 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses, debug = True) | 77 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses) |
| 81 | 78 |
| 82 if args.computePET: | 79 if args.computePET: |
| 83 for inter in interactions: | 80 for inter in interactions: |
| 84 inter.computePET(params.collisionDistance) | 81 inter.computePET(params.collisionDistance) |
| 85 | 82 |
