comparison python/storage.py @ 915:13434f5017dd

work to save trajectory assignment to origin and destinations
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 04 Jul 2017 17:03:29 -0400
parents 1cd878812529
children 89cc05867c4c
comparison
equal deleted inserted replaced
914:f228fd649644 915:13434f5017dd
505 elif dataType == 'interaction': 505 elif dataType == 'interaction':
506 dropTables(connection, ['interactions', 'indicators']) 506 dropTables(connection, ['interactions', 'indicators'])
507 elif dataType == 'bb': 507 elif dataType == 'bb':
508 dropTables(connection, ['bounding_boxes']) 508 dropTables(connection, ['bounding_boxes'])
509 elif dataType == 'pois': 509 elif dataType == 'pois':
510 dropTables(connection, ['gaussians2d']) 510 dropTables(connection, ['gaussians2d', 'objects_pois'])
511 elif dataType == 'prototype': 511 elif dataType == 'prototype':
512 dropTables(connection, ['prototypes']) 512 dropTables(connection, ['prototypes'])
513 else: 513 else:
514 print('Unknown data type {} to delete from database'.format(dataType)) 514 print('Unknown data type {} to delete from database'.format(dataType))
515 connection.close() 515 connection.close()
643 connection.commit() 643 connection.commit()
644 except sqlite3.OperationalError as error: 644 except sqlite3.OperationalError as error:
645 printDBError(error) 645 printDBError(error)
646 connection.close() 646 connection.close()
647 647
648 def savePOIAssignments(filename, objects):
649 'save the od fields of objects'
650 connection = sqlite3.connect(filename)
651 cursor = connection.cursor()
652 try:
653 cursor.execute('CREATE TABLE IF NOT EXISTS objects_pois (object_id INTEGER, origin_poi_id INTEGER, destination_poi_id INTEGER, PRIMARY KEY(object_id))')
654 for o in objects:
655 cursor.execute('INSERT INTO objects_pois VALUES({},{},{})'.format(o.getNum(), o.od[0], o.od[1]))
656 connection.commit()
657 except sqlite3.OperationalError as error:
658 printDBError(error)
659 connection.close()
660
648 def loadPOIs(filename): 661 def loadPOIs(filename):
649 'Loads all 2D Gaussians in the database' 662 'Loads all 2D Gaussians in the database'
650 from sklearn import mixture # todo if not avalaible, load data in duck-typed class with same fields 663 from sklearn import mixture # todo if not avalaible, load data in duck-typed class with same fields
651 from ast import literal_eval 664 from ast import literal_eval
652 connection = sqlite3.connect(filename) 665 connection = sqlite3.connect(filename)
696 ######################### 709 #########################
697 # saving and loading for scene interpretation (Mohamed Gomaa Mohamed's PhD) 710 # saving and loading for scene interpretation (Mohamed Gomaa Mohamed's PhD)
698 ######################### 711 #########################
699 712
700 def writePrototypesToSqlite(prototypes,nMatching, outputFilename): 713 def writePrototypesToSqlite(prototypes,nMatching, outputFilename):
701 """ prototype dataset is a dictionary with keys== routes, values== prototypes Ids """ 714 ''' prototype dataset is a dictionary with keys== routes, values== prototypes Ids '''
702 connection = sqlite3.connect(outputFilename) 715 connection = sqlite3.connect(outputFilename)
703 cursor = connection.cursor() 716 cursor = connection.cursor()
704 717
705 cursor.execute("CREATE TABLE IF NOT EXISTS prototypes (prototype_id INTEGER,routeIDstart INTEGER,routeIDend INTEGER, nMatching INTEGER, PRIMARY KEY(prototype_id))") 718 cursor.execute('CREATE TABLE IF NOT EXISTS prototypes (prototype_id INTEGER,routeIDstart INTEGER,routeIDend INTEGER, nMatching INTEGER, PRIMARY KEY(prototype_id))')
706 719
707 for route in prototypes.keys(): 720 for route in prototypes.keys():
708 if prototypes[route]!=[]: 721 if prototypes[route]!=[]:
709 for i in prototypes[route]: 722 for i in prototypes[route]:
710 cursor.execute("insert into prototypes (prototype_id, routeIDstart,routeIDend, nMatching) values (?,?,?,?)",(i,route[0],route[1],nMatching[route][i])) 723 cursor.execute('insert into prototypes (prototype_id, routeIDstart,routeIDend, nMatching) values (?,?,?,?)',(i,route[0],route[1],nMatching[route][i]))
711 724
712 connection.commit() 725 connection.commit()
713 connection.close() 726 connection.close()
714 727
715 def readPrototypesFromSqlite(filename): 728 def readPrototypesFromSqlite(filename):
716 """ 729 '''
717 This function loads the prototype file in the database 730 This function loads the prototype file in the database
718 It returns a dictionary for prototypes for each route and nMatching 731 It returns a dictionary for prototypes for each route and nMatching
719 """ 732 '''
720 prototypes = {} 733 prototypes = {}
721 nMatching={} 734 nMatching={}
722 735
723 connection = sqlite3.connect(filename) 736 connection = sqlite3.connect(filename)
724 cursor = connection.cursor() 737 cursor = connection.cursor()