# HG changeset patch # User Nicolas Saunier # Date 1530721477 14400 # Node ID 5621e4ad24282e1f5bdfc95dbb4062f27e7d0d7a # Parent d24deb61f5507f138d4d94d9102dff870098aa52 removing prefix option to loadtrajectories from SQLite diff -r d24deb61f550 -r 5621e4ad2428 scripts/learn-motion-patterns.py --- a/scripts/learn-motion-patterns.py Wed Jul 04 00:30:40 2018 -0400 +++ b/scripts/learn-motion-patterns.py Wed Jul 04 12:24:37 2018 -0400 @@ -151,4 +151,3 @@ if (args.learn or args.assign) and args.saveSimilarities: np.savetxt(utils.removeExtension(args.databaseFilename)+'-prototype-similarities.txt.gz', similarities, '%.4f') - diff -r d24deb61f550 -r 5621e4ad2428 scripts/process.py --- a/scripts/process.py Wed Jul 04 00:30:40 2018 -0400 +++ b/scripts/process.py Wed Jul 04 12:24:37 2018 -0400 @@ -120,6 +120,9 @@ pool.close() pool.join() +elif args.process == 'prototype': # motion pattern learning + pass + elif args.process == 'interaction': # safety analysis TODO make function in safety analysis script if args.predictionMethod == 'cvd': diff -r d24deb61f550 -r 5621e4ad2428 trafficintelligence/storage.py --- a/trafficintelligence/storage.py Wed Jul 04 00:30:40 2018 -0400 +++ b/trafficintelligence/storage.py Wed Jul 04 12:24:37 2018 -0400 @@ -240,19 +240,15 @@ userTypes[row[0]] = row[1] return userTypes -def loadTrajectoriesFromSqlite(filename, trajectoryType, objectNumbers = None, withFeatures = False, timeStep = None, tablePrefix = None): +def loadTrajectoriesFromSqlite(filename, trajectoryType, objectNumbers = None, withFeatures = False, timeStep = None): '''Loads the trajectories (in the general sense, either features, objects (feature groups) or bounding box series) The number loaded is either the first objectNumbers objects, or the indices in objectNumbers from the database''' objects = [] with sqlite3.connect(filename) as connection: - if tablePrefix is None: - prefix = '' - else: - prefix = tablePrefix + '_' - objects = loadTrajectoriesFromTable(connection, prefix+'positions', trajectoryType, objectNumbers, timeStep) - objectVelocities = loadTrajectoriesFromTable(connection, prefix+'velocities', trajectoryType, objectNumbers, timeStep) + objects = loadTrajectoriesFromTable(connection, 'positions', trajectoryType, objectNumbers, timeStep) + objectVelocities = loadTrajectoriesFromTable(connection, 'velocities', trajectoryType, objectNumbers, timeStep) if len(objectVelocities) > 0: for o,v in zip(objects, objectVelocities): @@ -324,6 +320,12 @@ printDBError(error) return None +def loadObjectTrajectoriesFromSqlite(): + '''Loads object trajectories + either simply objects or features (defaults to loadTrajectoriesFromSqlite) + or the longest features for each object ''' + + def addCurvilinearTrajectoriesFromSqlite(filename, objects): '''Adds curvilinear positions (s_coordinate, y_coordinate, lane) from a database to an existing MovingObject dict (indexed by each objects's num)''' @@ -350,7 +352,7 @@ if len(missingObjectNumbers) > 0: print('List of missing objects to attach corresponding curvilinear trajectories: {}'.format(missingObjectNumbers)) -def saveTrajectoriesToTable(connection, objects, trajectoryType, tablePrefix = None): +def saveTrajectoriesToTable(connection, objects, trajectoryType): 'Saves trajectories in table tableName' cursor = connection.cursor() # Parse feature and/or object structure and commit to DB @@ -366,14 +368,10 @@ elif trajectoryType == 'feature': features = objects # Setup feature queries - if tablePrefix is None: - prefix = '' - else: - prefix = tablePrefix+'_' - createTrajectoryTable(cursor, prefix+"positions") - createTrajectoryTable(cursor, prefix+"velocities") - positionQuery = insertTrajectoryQuery(prefix+"positions") - velocityQuery = insertTrajectoryQuery(prefix+"velocities") + createTrajectoryTable(cursor, "positions") + createTrajectoryTable(cursor, "velocities") + positionQuery = insertTrajectoryQuery("positions") + velocityQuery = insertTrajectoryQuery("velocities") # Setup object queries if trajectoryType == 'object': createObjectsTable(cursor)