comparison scripts/safety-analysis.py @ 1252:fe35473acee3

adding method to compute PET using polygon for the outline of a vehicle (bird eye view of the vehicle)
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 22 Mar 2024 14:33:25 -0400
parents 14140b55e580
children
comparison
equal deleted inserted replaced
1251:2b1c8fe8f7e4 1252:fe35473acee3
88 88
89 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp')) 89 objects = storage.loadTrajectoriesFromSqlite(params.databaseFilename, 'object', args.nObjects, withFeatures = (params.useFeaturesForPrediction or predictionMethod == 'ps' or predictionMethod == 'mp'))
90 90
91 interactions = events.createInteractions(objects) 91 interactions = events.createInteractions(objects)
92 if args.nProcesses == 1: 92 if args.nProcesses == 1:
93 processed = events.computeIndicators(interactions, not args.noMotionPrediction, args.computePET, predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, False, None) 93 processed = events.computeIndicators(interactions, not args.noMotionPrediction, args.computePET, predictionParameters, params.collisionDistance, False, params.predictionTimeHorizon, params.crossingZones, False, None)
94 else: 94 else:
95 pool = Pool(processes = args.nProcesses) 95 pool = Pool(processes = args.nProcesses)
96 nInteractionPerProcess = int(np.ceil(len(interactions)/float(args.nProcesses))) 96 nInteractionPerProcess = int(np.ceil(len(interactions)/float(args.nProcesses)))
97 jobs = [pool.apply_async(events.computeIndicators, args = (interactions[i*nInteractionPerProcess:(i+1)*nInteractionPerProcess], not args.noMotionPrediction, args.computePET, predictionParameters, params.collisionDistance, params.predictionTimeHorizon, params.crossingZones, False, None)) for i in range(args.nProcesses)] 97 jobs = [pool.apply_async(events.computeIndicators, args = (interactions[i*nInteractionPerProcess:(i+1)*nInteractionPerProcess], not args.noMotionPrediction, args.computePET, predictionParameters, params.collisionDistance, False, params.predictionTimeHorizon, params.crossingZones, False, None)) for i in range(args.nProcesses)]
98 processed = [] 98 processed = []
99 for job in jobs: 99 for job in jobs:
100 processed += job.get() 100 processed += job.get()
101 pool.close() 101 pool.close()
102 storage.saveIndicatorsToSqlite(params.databaseFilename, processed) 102 storage.saveIndicatorsToSqlite(params.databaseFilename, processed)