Mercurial Hosting > 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 |