Mercurial > hg > nsaunier > traffic-intelligence
comparison python/metadata.py @ 426:334e1151828b
corrected creation and connection to database + helper function to generate sites and camera views
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Thu, 31 Oct 2013 16:59:34 -0400 |
| parents | a31dde19caa8 |
| children | 343cfd185ca6 |
comparison
equal
deleted
inserted
replaced
| 425:a31dde19caa8 | 426:334e1151828b |
|---|---|
| 1 # from moving import Point | 1 # from moving import Point |
| 2 | 2 |
| 3 from datetime import datetime | 3 from datetime import datetime |
| 4 from os import path | 4 from os import path |
| 5 | 5 |
| 6 from sqlalchemy import Column, Integer, Float, DateTime, String, ForeignKey | 6 from sqlalchemy import create_engine, Column, Integer, Float, DateTime, String, ForeignKey |
| 7 from sqlalchemy.orm import relationship, backref | 7 from sqlalchemy.orm import relationship, backref, sessionmaker |
| 8 from sqlalchemy.ext.declarative import declarative_base | 8 from sqlalchemy.ext.declarative import declarative_base |
| 9 | 9 |
| 10 from utils import datetimeFormat | 10 from utils import datetimeFormat |
| 11 | 11 |
| 12 Base = declarative_base() | 12 Base = declarative_base() |
| 114 | 114 |
| 115 # class Analysis(Base): # parameters necessary for processing the data: free form | 115 # class Analysis(Base): # parameters necessary for processing the data: free form |
| 116 # eg bounding box depends on camera view, tracking configuration depends on camera view | 116 # eg bounding box depends on camera view, tracking configuration depends on camera view |
| 117 # results: sqlite | 117 # results: sqlite |
| 118 | 118 |
| 119 def createDatabases(engine): | 119 def createDatabase(filename): |
| 120 'creates a session to query the filename' | |
| 121 engine = create_engine('sqlite:///'+filename) | |
| 120 Base.metadata.create_all(engine) | 122 Base.metadata.create_all(engine) |
| 123 Session = sessionmaker(bind=engine) | |
| 124 return Session() | |
| 121 | 125 |
| 122 def connectDatabaser(filename): | 126 def connectDatabase(filename): |
| 123 'creates a session to query the filename' | 127 'creates a session to query the filename' |
| 124 engine = create_engine('sqlite:///'+filename) | 128 engine = create_engine('sqlite:///'+filename) |
| 125 Session = sessionmaker(bind=engine) | 129 Session = sessionmaker(bind=engine) |
| 126 return Session() | 130 return Session() |
| 131 | |
| 132 def initializeSites(session, directoryName): | |
| 133 '''Initializes default site objects and Camera Views | |
| 134 | |
| 135 eg somedirectory/montreal/ contains intersection1, intersection2, etc. | |
| 136 The site names would be somedirectory/montreal/intersection1, somedirectory/montreal/intersection2, etc.''' | |
| 137 from os import listdir, path | |
| 138 sites = [] | |
| 139 cameraViews = [] | |
| 140 names = listdir(directoryName) | |
| 141 for name in names: | |
| 142 if path.isdir(directoryName+'/'+name): | |
| 143 sites.append(Site(directoryName+'/'+name, None)) | |
| 144 cameraViews.append(CameraView(-1, None, None, sites[-1], None)) | |
| 145 session.add_all(sites) | |
| 146 session.add_all(cameraViews) | |
| 147 session.commit() | |
| 148 # TODO crawler for video files? |
