annotate python/metadata.py @ 491:343cfd185ca6

minor changes and reaarrangements
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 16 Apr 2014 17:43:53 -0400
parents 334e1151828b
children 1262faae12e7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
1 # from moving import Point
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
2
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
3 from datetime import datetime
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
4 from os import path
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
5
426
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
6 from sqlalchemy import create_engine, Column, Integer, Float, DateTime, String, ForeignKey
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
7 from sqlalchemy.orm import relationship, backref, sessionmaker
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
8 from sqlalchemy.ext.declarative import declarative_base
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
9
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
10 from utils import datetimeFormat
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
11
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
12 Base = declarative_base()
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
13
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
14 class Site(Base):
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
15 __tablename__ = 'sites'
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
16 id = Column(Integer, primary_key=True)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
17 name = Column(String) # same as path, relative to the database position
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
18 description = Column(String) # longer names, eg intersection of road1 and road2
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
19 xcoordinate = Column(Float) # ideally moving.Point, but needs to be
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
20 ycoordinate = Column(Float)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
21
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
22 def __init__(self, name, description = "", xcoordinate = None, ycoordinate = None):
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
23 self.name = name
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
24 self.description = description
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
25 self.xcoordinate = xcoordinate
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
26 self.ycoordinate = ycoordinate
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
27
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
28 def getFilename(self):
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
29 return self.name
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
30
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
31 class EnvironementalFactors(Base):
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
32 '''Represents any environmental factors that may affect the results, in particular
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
33 * changing weather conditions
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
34 * changing road configuration, geometry, signalization, etc.
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
35 ex: sunny, rainy, before counter-measure, after counter-measure'''
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
36 __tablename__ = 'environmental_factors'
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
37 id = Column(Integer, primary_key=True)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
38 startTime = Column(DateTime)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
39 endTime = Column(DateTime)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
40 description = Column(String) # eg sunny, before, after
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
41 siteId = Column(Integer, ForeignKey('sites.id'))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
42
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
43 site = relationship("Site", backref=backref('environmental_factors', order_by = id))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
44
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
45 def __init__(self, startTime, endTime, description, site):
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
46 'startTime is passed as string in utils.datetimeFormat, eg 2011-06-22 10:00:39'
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
47 self.startTime = datetime.strptime(startTime, datetimeFormat)
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
48 self.endTime = datetime.strptime(endTime, datetimeFormat)
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
49 self.description = description
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
50 self.site = site
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
51
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
52 class CameraView(Base):
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
53 __tablename__ = 'camera_views'
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
54 id = Column(Integer, primary_key=True)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
55 frameRate = Column(Float)
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
56 homographyFilename = Column(String) # path to homograph filename, relative to the site name
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
57 cameraCalibrationFilename = Column(String) # path to full camera calibration, relative to the site name
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
58 siteId = Column(Integer, ForeignKey('sites.id'))
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
59 homographyDistanceUnit = Column(String, default = 'm') # make sure it is default in the database
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
60 configurationFilename = Column(String) # path to configuration .cfg file, relative to site name
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
61
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
62 site = relationship("Site", backref=backref('camera_views', order_by = id))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
63
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
64 def __init__(self, frameRate, homographyFilename, cameraCalibrationFilename, site, configurationFilename):
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
65 self.frameRate = frameRate
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
66 self.homographyFilename = homographyFilename
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
67 self.site = site
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
68 self.configurationFilename = configurationFilename
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
69
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
70 def getHomographyFilename(self, relativeToSiteFilename = True):
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
71 if relativeToSiteFilename:
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
72 return self.site.getFilename()+path.sep+self.homographyFilename
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
73 else:
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
74 return self.homographyFilename
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
75
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
76 class VideoSequence(Base):
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
77 __tablename__ = 'video_sequences'
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
78 id = Column(Integer, primary_key=True)
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
79 name = Column(String) # path relative to the the site name
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
80 startTime = Column(DateTime)
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
81 duration = Column(Float) # video sequence duration
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
82 durationUnit = Column(String, default = 's')
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
83 siteId = Column(Integer, ForeignKey('sites.id'))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
84 cameraViewId = Column(Integer, ForeignKey('camera_views.id'))
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
85 configurationFilename = Column(String)
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
86
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
87 site = relationship("Site", backref=backref('video_sequences', order_by = id))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
88 cameraView = relationship("CameraView", backref=backref('video_sequences', order_by = id))
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
89
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
90 def __init__(self, name, startTime, duration, site, cameraView, configurationFilename = None):
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
91 'startTime is passed as string in utils.datetimeFormat, eg 2011-06-22 10:00:39'
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
92 self.name = name
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
93 self.startTime = datetime.strptime(startTime, datetimeFormat)
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
94 self.duration = duration
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
95 self.site = site
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
96 self.cameraView = cameraView
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
97 self.configurationFilename = configurationFilename
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
98
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
99 def getVideoSequenceFilename(self, relativeToSiteFilename = True):
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
100 if relativeToSiteFilename:
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
101 return self.site.getFilename()+path.sep+self.name
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
102 else:
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
103 return self.name
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
104
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
105 #def getConfigurationFilename(self):
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
106 #'returns the local configuration filename, or the one of the camera view otherwise'
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
107
422
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
108 # add class for Analysis: foreign key VideoSequenceId, dataFilename, configFilename (get the one from camera view by default), mask? (no, can be referenced in the tracking cfg file)
67c7ff5d6b26 added new fields for units, getting filenames
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 421
diff changeset
109
420
def795d1120f first work on video metadata
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff changeset
110 # class SiteDescription(Base): # list of lines and polygons describing the site, eg for sidewalks, center lines
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
111
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
112 # class Analysis(Base): # parameters necessary for processing the data: free form
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
113 # eg bounding box depends on camera view, tracking configuration depends on camera view
424
e74a09bddb6d new fields
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 422
diff changeset
114 # results: sqlite
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
115
426
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
116 def createDatabase(filename):
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
117 'creates a session to query the filename'
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
118 engine = create_engine('sqlite:///'+filename)
421
4fce27946c60 first example of video metadata using sqlalchemy
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 420
diff changeset
119 Base.metadata.create_all(engine)
426
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
120 Session = sessionmaker(bind=engine)
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
121 return Session()
425
a31dde19caa8 connect function
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 424
diff changeset
122
426
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
123 def connectDatabase(filename):
425
a31dde19caa8 connect function
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 424
diff changeset
124 'creates a session to query the filename'
a31dde19caa8 connect function
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 424
diff changeset
125 engine = create_engine('sqlite:///'+filename)
a31dde19caa8 connect function
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 424
diff changeset
126 Session = sessionmaker(bind=engine)
a31dde19caa8 connect function
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 424
diff changeset
127 return Session()
426
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
128
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
129 def initializeSites(session, directoryName):
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
130 '''Initializes default site objects and Camera Views
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
131
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
132 eg somedirectory/montreal/ contains intersection1, intersection2, etc.
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
133 The site names would be somedirectory/montreal/intersection1, somedirectory/montreal/intersection2, etc.'''
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
134 from os import listdir, path
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
135 sites = []
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
136 cameraViews = []
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
137 names = listdir(directoryName)
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
138 for name in names:
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
139 if path.isdir(directoryName+'/'+name):
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
140 sites.append(Site(directoryName+'/'+name, None))
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
141 cameraViews.append(CameraView(-1, None, None, sites[-1], None))
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
142 session.add_all(sites)
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
143 session.add_all(cameraViews)
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
144 session.commit()
334e1151828b corrected creation and connection to database + helper function to generate sites and camera views
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents: 425
diff changeset
145 # TODO crawler for video files?