Mercurial > hg > nsaunier > traffic-intelligence
comparison python/storage.py @ 607:84690dfe5560
add some functions for behaviour analysis
| author | MohamedGomaa |
|---|---|
| date | Tue, 25 Nov 2014 22:49:47 -0500 |
| parents | 36605d843be5 |
| children | 0954aaf28231 |
comparison
equal
deleted
inserted
replaced
| 606:75ad9c0d6cc3 | 607:84690dfe5560 |
|---|---|
| 165 labels[route][p]=[] | 165 labels[route][p]=[] |
| 166 labels[route][p].append(row[0]) | 166 labels[route][p].append(row[0]) |
| 167 | 167 |
| 168 connection.close() | 168 connection.close() |
| 169 return labels | 169 return labels |
| 170 def writeSpeedPrototypeToSqlite(prototypes,nmatching, outFilename): | |
| 171 """ to match the format of second layer prototypes""" | |
| 172 connection = sqlite3.connect(outFilename) | |
| 173 cursor = connection.cursor() | |
| 174 | |
| 175 cursor.execute("CREATE TABLE IF NOT EXISTS \"speedprototypes\"(spdprototype_id INTEGER,prototype_id INTEGER,routeID_start INTEGER, routeID_end INTEGER, nMatching INTEGER, PRIMARY KEY(spdprototype_id))") | |
| 176 | |
| 177 for route in prototypes.keys(): | |
| 178 if prototypes[route]!={}: | |
| 179 for i in prototypes[route]: | |
| 180 if prototypes[route][i]!= []: | |
| 181 for j in prototypes[route][i]: | |
| 182 cursor.execute("insert into speedprototypes (spdprototype_id,prototype_id, routeID_start, routeID_end, nMatching) values (?,?,?,?,?)",(j,i,route[0],route[1],nmatching[j])) | |
| 183 | |
| 184 connection.commit() | |
| 185 connection.close() | |
| 186 | |
| 187 def loadSpeedPrototypeFromSqlite(filename): | |
| 188 """ | |
| 189 This function loads the prototypes table in the database of name <filename>. | |
| 190 """ | |
| 191 prototypes = {} | |
| 192 nMatching={} | |
| 193 connection = sqlite3.connect(filename) | |
| 194 cursor = connection.cursor() | |
| 195 | |
| 196 try: | |
| 197 cursor.execute('SELECT * from speedprototypes order by spdprototype_id,prototype_id, routeID_start, routeID_end, nMatching') | |
| 198 except sqlite3.OperationalError as error: | |
| 199 utils.printDBError(error) | |
| 200 return [] | |
| 201 | |
| 202 for row in cursor: | |
| 203 route=(row[2],row[3]) | |
| 204 if route not in prototypes.keys(): | |
| 205 prototypes[route]={} | |
| 206 if row[1] not in prototypes[route].keys(): | |
| 207 prototypes[route][row[1]]=[] | |
| 208 prototypes[route][row[1]].append(row[0]) | |
| 209 nMatching[row[0]]=row[4] | |
| 210 | |
| 211 connection.close() | |
| 212 return prototypes,nMatching | |
| 213 | |
| 170 | 214 |
| 171 def writeRoutesToSqlite(Routes, outputFilename): | 215 def writeRoutesToSqlite(Routes, outputFilename): |
| 172 """ This function writes the activity path define by start and end IDs""" | 216 """ This function writes the activity path define by start and end IDs""" |
| 173 connection = sqlite3.connect(outputFilename) | 217 connection = sqlite3.connect(outputFilename) |
| 174 cursor = connection.cursor() | 218 cursor = connection.cursor() |
| 792 for sectionName in config.sections(): | 836 for sectionName in config.sections(): |
| 793 configDict[sectionName] = SceneParameters(config, sectionName) | 837 configDict[sectionName] = SceneParameters(config, sectionName) |
| 794 return configDict | 838 return configDict |
| 795 | 839 |
| 796 | 840 |
| 841 | |
| 797 if __name__ == "__main__": | 842 if __name__ == "__main__": |
| 798 import doctest | 843 import doctest |
| 799 import unittest | 844 import unittest |
| 800 suite = doctest.DocFileSuite('tests/storage.txt') | 845 suite = doctest.DocFileSuite('tests/storage.txt') |
| 801 unittest.TextTestRunner().run(suite) | 846 unittest.TextTestRunner().run(suite) |
