Mercurial > hg > nsaunier > traffic-intelligence
comparison python/storage.py @ 1014:026f6b3b122c
Moving pull request2
| author | Wendlasida |
|---|---|
| date | Fri, 01 Jun 2018 17:32:52 -0400 |
| parents | 75af46516b2b |
| children | 75601be6019f |
comparison
equal
deleted
inserted
replaced
| 1013:d6f121ded971 | 1014:026f6b3b122c |
|---|---|
| 3 '''Various utilities to save and load data''' | 3 '''Various utilities to save and load data''' |
| 4 | 4 |
| 5 import utils, moving, events, indicators, shutil | 5 import utils, moving, events, indicators, shutil |
| 6 from base import VideoFilenameAddable | 6 from base import VideoFilenameAddable |
| 7 | 7 |
| 8 from os import path | 8 from pathlib import Path |
| 9 from copy import copy | 9 from copy import copy |
| 10 import sqlite3, logging | 10 import sqlite3, logging |
| 11 from numpy import log, min as npmin, max as npmax, round as npround, array, sum as npsum, loadtxt, floor as npfloor, ceil as npceil, linalg | 11 from numpy import log, min as npmin, max as npmax, round as npround, array, sum as npsum, loadtxt, floor as npfloor, ceil as npceil, linalg |
| 12 from pandas import read_csv, merge | 12 from pandas import read_csv, merge |
| 13 | 13 |
| 41 except sqlite3.OperationalError as error: | 41 except sqlite3.OperationalError as error: |
| 42 printDBError(error) | 42 printDBError(error) |
| 43 | 43 |
| 44 def deleteFromSqlite(filename, dataType): | 44 def deleteFromSqlite(filename, dataType): |
| 45 'Deletes (drops) some tables in the filename depending on type of data' | 45 'Deletes (drops) some tables in the filename depending on type of data' |
| 46 if path.isfile(filename): | 46 if Path(filename).is_file(): |
| 47 with sqlite3.connect(filename) as connection: | 47 with sqlite3.connect(filename) as connection: |
| 48 if dataType == 'object': | 48 if dataType == 'object': |
| 49 dropTables(connection, ['objects', 'objects_features']) | 49 dropTables(connection, ['objects', 'objects_features']) |
| 50 elif dataType == 'interaction': | 50 elif dataType == 'interaction': |
| 51 dropTables(connection, ['interactions', 'indicators']) | 51 dropTables(connection, ['interactions', 'indicators']) |
| 1305 self.scaleCyclistSpeed = config.getfloat(self.sectionHeader, 'cyc-speed-scale') | 1305 self.scaleCyclistSpeed = config.getfloat(self.sectionHeader, 'cyc-speed-scale') |
| 1306 self.meanVehicleSpeed = config.getfloat(self.sectionHeader, 'mean-veh-speed') | 1306 self.meanVehicleSpeed = config.getfloat(self.sectionHeader, 'mean-veh-speed') |
| 1307 self.stdVehicleSpeed = config.getfloat(self.sectionHeader, 'std-veh-speed') | 1307 self.stdVehicleSpeed = config.getfloat(self.sectionHeader, 'std-veh-speed') |
| 1308 | 1308 |
| 1309 def __init__(self, filename = None): | 1309 def __init__(self, filename = None): |
| 1310 if filename is not None and path.exists(filename): | 1310 if filename is not None and Path(filename).exists(): |
| 1311 self.loadConfigFile(filename) | 1311 self.loadConfigFile(filename) |
| 1312 else: | 1312 else: |
| 1313 print('Configuration filename {} could not be loaded.'.format(filename)) | 1313 print('Configuration filename {} could not be loaded.'.format(filename)) |
| 1314 | 1314 |
| 1315 def convertToFrames(self, frameRate, speedRatio = 3.6): | 1315 def convertToFrames(self, frameRate, speedRatio = 3.6): |
| 1348 self.sectionHeader = config.sections()[0] | 1348 self.sectionHeader = config.sections()[0] |
| 1349 # Tracking/display parameters | 1349 # Tracking/display parameters |
| 1350 self.videoFilename = config.get(self.sectionHeader, 'video-filename') | 1350 self.videoFilename = config.get(self.sectionHeader, 'video-filename') |
| 1351 self.databaseFilename = config.get(self.sectionHeader, 'database-filename') | 1351 self.databaseFilename = config.get(self.sectionHeader, 'database-filename') |
| 1352 self.homographyFilename = config.get(self.sectionHeader, 'homography-filename') | 1352 self.homographyFilename = config.get(self.sectionHeader, 'homography-filename') |
| 1353 if path.exists(self.homographyFilename): | 1353 if Path(self.homographyFilename).exists(): |
| 1354 self.homography = loadtxt(self.homographyFilename) | 1354 self.homography = loadtxt(self.homographyFilename) |
| 1355 else: | 1355 else: |
| 1356 self.homography = None | 1356 self.homography = None |
| 1357 self.intrinsicCameraFilename = config.get(self.sectionHeader, 'intrinsic-camera-filename') | 1357 self.intrinsicCameraFilename = config.get(self.sectionHeader, 'intrinsic-camera-filename') |
| 1358 if path.exists(self.intrinsicCameraFilename): | 1358 if Path(self.intrinsicCameraFilename).exists(): |
| 1359 self.intrinsicCameraMatrix = loadtxt(self.intrinsicCameraFilename) | 1359 self.intrinsicCameraMatrix = loadtxt(self.intrinsicCameraFilename) |
| 1360 else: | 1360 else: |
| 1361 self.intrinsicCameraMatrix = None | 1361 self.intrinsicCameraMatrix = None |
| 1362 distortionCoefficients = getValuesFromINIFile(filename, 'distortion-coefficients', '=') | 1362 distortionCoefficients = getValuesFromINIFile(filename, 'distortion-coefficients', '=') |
| 1363 self.distortionCoefficients = [float(x) for x in distortionCoefficients] | 1363 self.distortionCoefficients = [float(x) for x in distortionCoefficients] |
| 1387 self.maxLcssDistance = config.getfloat(self.sectionHeader, 'max-lcss-distance') | 1387 self.maxLcssDistance = config.getfloat(self.sectionHeader, 'max-lcss-distance') |
| 1388 self.lcssMetric = config.get(self.sectionHeader, 'lcss-metric') | 1388 self.lcssMetric = config.get(self.sectionHeader, 'lcss-metric') |
| 1389 self.minLcssSimilarity = config.getfloat(self.sectionHeader, 'min-lcss-similarity') | 1389 self.minLcssSimilarity = config.getfloat(self.sectionHeader, 'min-lcss-similarity') |
| 1390 | 1390 |
| 1391 def __init__(self, filename = None): | 1391 def __init__(self, filename = None): |
| 1392 if filename is not None and path.exists(filename): | 1392 if filename is not None and Path(filename).exists(): |
| 1393 self.loadConfigFile(filename) | 1393 self.loadConfigFile(filename) |
| 1394 else: | 1394 else: |
| 1395 print('Configuration filename {} could not be loaded.'.format(filename)) | 1395 print('Configuration filename {} could not be loaded.'.format(filename)) |
| 1396 | 1396 |
| 1397 def processVideoArguments(args): | 1397 def processVideoArguments(args): |
