Mercurial Hosting > traffic-intelligence
changeset 580:1262faae12e7
alignments may be stored in metadata
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 29 Aug 2014 01:32:11 -0400 |
parents | 05c927c6d3cf |
children | 10e8a9f2bd9f |
files | python/metadata.py |
diffstat | 1 files changed, 37 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/python/metadata.py Thu Aug 28 23:50:30 2014 -0400 +++ b/python/metadata.py Fri Aug 29 01:32:11 2014 -0400 @@ -13,7 +13,7 @@ class Site(Base): __tablename__ = 'sites' - id = Column(Integer, primary_key=True) + idx = Column(Integer, primary_key=True) name = Column(String) # same as path, relative to the database position description = Column(String) # longer names, eg intersection of road1 and road2 xcoordinate = Column(Float) # ideally moving.Point, but needs to be @@ -34,13 +34,13 @@ * changing road configuration, geometry, signalization, etc. ex: sunny, rainy, before counter-measure, after counter-measure''' __tablename__ = 'environmental_factors' - id = Column(Integer, primary_key=True) + idx = Column(Integer, primary_key=True) startTime = Column(DateTime) endTime = Column(DateTime) description = Column(String) # eg sunny, before, after - siteId = Column(Integer, ForeignKey('sites.id')) + siteIdx = Column(Integer, ForeignKey('sites.idx')) - site = relationship("Site", backref=backref('environmental_factors', order_by = id)) + site = relationship("Site", backref=backref('environmental_factors', order_by = idx)) def __init__(self, startTime, endTime, description, site): 'startTime is passed as string in utils.datetimeFormat, eg 2011-06-22 10:00:39' @@ -51,15 +51,15 @@ class CameraView(Base): __tablename__ = 'camera_views' - id = Column(Integer, primary_key=True) + idx = Column(Integer, primary_key=True) frameRate = Column(Float) homographyFilename = Column(String) # path to homograph filename, relative to the site name cameraCalibrationFilename = Column(String) # path to full camera calibration, relative to the site name - siteId = Column(Integer, ForeignKey('sites.id')) + siteIdx = Column(Integer, ForeignKey('sites.idx')) homographyDistanceUnit = Column(String, default = 'm') # make sure it is default in the database configurationFilename = Column(String) # path to configuration .cfg file, relative to site name - site = relationship("Site", backref=backref('camera_views', order_by = id)) + site = relationship("Site", backref=backref('camera_views', order_by = idx)) def __init__(self, frameRate, homographyFilename, cameraCalibrationFilename, site, configurationFilename): self.frameRate = frameRate @@ -73,19 +73,44 @@ else: return self.homographyFilename +class Alignment(Base): + __tablename__ = 'alignments' + idx = Column(Integer, primary_key=True) + cameraViewIdx = Column(Integer, ForeignKey('camera_views.idx')) + + cameraView = relationship("CameraView", backref=backref('alignments', order_by = idx)) + + def __init__(self, cameraView): + self.cameraView = cameraView + +class Point(Base): + __tablename__ = 'points' + alignmentIdx = Column(Integer, ForeignKey('alignments.idx'), primary_key=True) + index = Column(Integer, primary_key=True) # order of points in this alignment + x = Column(Float) + y = Column(Float) + + alignment = relationship("Alignment", backref=backref('points', order_by = index)) + + def __init__(self, alignmentIdx, index, x, y): + self.alignmentIdx = alignmentIdx + self.index = index + self.x = x + self.y = y + class VideoSequence(Base): __tablename__ = 'video_sequences' - id = Column(Integer, primary_key=True) + idx = Column(Integer, primary_key=True) name = Column(String) # path relative to the the site name startTime = Column(DateTime) duration = Column(Float) # video sequence duration durationUnit = Column(String, default = 's') - siteId = Column(Integer, ForeignKey('sites.id')) - cameraViewId = Column(Integer, ForeignKey('camera_views.id')) + siteIdx = Column(Integer, ForeignKey('sites.idx')) + cameraViewIdx = Column(Integer, ForeignKey('camera_views.idx')) configurationFilename = Column(String) - site = relationship("Site", backref=backref('video_sequences', order_by = id)) - cameraView = relationship("CameraView", backref=backref('video_sequences', order_by = id)) + site = relationship("Site", backref=backref('video_sequences', order_by = idx)) + cameraView = relationship("CameraView", backref=backref('video_sequences', order_by = idx)) def __init__(self, name, startTime, duration, site, cameraView, configurationFilename = None): 'startTime is passed as string in utils.datetimeFormat, eg 2011-06-22 10:00:39'