Mercurial > hg > nsaunier > traffic-intelligence
comparison scripts/safety-analysis.py @ 857:6d89520e269f
minor modifications to safety-analysis
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Thu, 06 Oct 2016 17:16:31 -0400 |
| parents | 806df5f61c03 |
| children | 8ba82b371eea |
comparison
equal
deleted
inserted
replaced
| 856:e310577cc0b8 | 857:6d89520e269f |
|---|---|
| 10 # todo: very slow if too many predicted trajectories | 10 # todo: very slow if too many predicted trajectories |
| 11 # add computation of probality of unsucessful evasive action | 11 # add computation of probality of unsucessful evasive action |
| 12 | 12 |
| 13 parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene') | 13 parser = argparse.ArgumentParser(description='The program processes indicators for all pairs of road users in the scene') |
| 14 parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file', required = True) | 14 parser.add_argument('--cfg', dest = 'configFilename', help = 'name of the configuration file', required = True) |
| 15 parser.add_argument('-n', dest = 'nObjects', help = 'number of objects to analyse', type = int) | |
| 16 # TODO analyze only | |
| 15 parser.add_argument('--prediction-method', dest = 'predictionMethod', help = 'prediction method (constant velocity (vector computation), constant velocity, normal adaptation, point set prediction)', choices = ['cvd', 'cv', 'na', 'ps']) | 17 parser.add_argument('--prediction-method', dest = 'predictionMethod', help = 'prediction method (constant velocity (vector computation), constant velocity, normal adaptation, point set prediction)', choices = ['cvd', 'cv', 'na', 'ps']) |
| 16 parser.add_argument('--display-cp', dest = 'displayCollisionPoints', help = 'display collision points', action = 'store_true') | 18 parser.add_argument('--display-cp', dest = 'displayCollisionPoints', help = 'display collision points', action = 'store_true') |
| 17 parser.add_argument('-n', dest = 'nProcesses', help = 'number of processes to run in parallel', type = int, default = 1) | 19 parser.add_argument('--nthreads', dest = 'nProcesses', help = 'number of processes to run in parallel', type = int, default = 1) |
| 18 args = parser.parse_args() | 20 args = parser.parse_args() |
| 19 | 21 |
| 20 params = storage.ProcessParameters(args.configFilename) | 22 params = storage.ProcessParameters(args.configFilename) |
| 21 | 23 |
| 22 # parameters for prediction methods | 24 # parameters for prediction methods |
| 23 if args.predictionMethod: | 25 if args.predictionMethod is not None: |
| 24 predictionMethod = args.predictionMethod | 26 predictionMethod = args.predictionMethod |
| 25 else: | 27 else: |
| 26 predictionMethod = params.predictionMethod | 28 predictionMethod = params.predictionMethod |
| 27 | 29 |
| 28 def accelerationDistribution(): | 30 def accelerationDistribution(): |
| 49 # params.minExtremeAcceleration, | 51 # params.minExtremeAcceleration, |
| 50 # params.maxExtremeAcceleration, | 52 # params.maxExtremeAcceleration, |
| 51 # params.maxExtremeSteering, | 53 # params.maxExtremeSteering, |
| 52 # params.useFeaturesForPrediction) | 54 # params.useFeaturesForPrediction) |
| 53 | 55 |
| 54 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'object') | 56 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = params.useFeaturesForPrediction) |
| 55 if params.useFeaturesForPrediction: | 57 # if params.useFeaturesForPrediction: |
| 56 features = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'feature') # needed if normal adaptation | 58 # features = storage.loadTrajectoriesFromSqlite(params.databaseFilename,'feature') # needed if normal adaptation |
| 57 for obj in objects: | 59 # for obj in objects: |
| 58 obj.setFeatures(features) | 60 # obj.setFeatures(features) |
| 59 | 61 |
| 60 interactions = events.createInteractions(objects) | 62 interactions = events.createInteractions(objects) |
| 61 for inter in interactions: | 63 for inter in interactions: |
| 62 inter.computeIndicators() | 64 inter.computeIndicators() |
| 63 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses) | 65 inter.computeCrossingsCollisions(predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, nProcesses = args.nProcesses) |
