class EnvirocarSensorStatisticModel(db.Model): __tablename__ = ec_tables['sensors_statistics'] logger.info('table name for sensor statistics: {}'.format(__tablename__)) hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) sensor_id = db.Column(db.String, db.ForeignKey('{}.sensor_id'.format( ec_tables['sensors'])), nullable=False, index=True) phenomenon_name = db.Column(db.String, db.ForeignKey('{}.name'.format( ec_tables['phenomenons'])), nullable=False, index=True) max = db.Column(db.Float(asdecimal=True), nullable=True) avg = db.Column(db.Float(asdecimal=True), nullable=True) min = db.Column(db.Float(asdecimal=True), nullable=True) # Now some statistics --> numb = number of … used for the statistics numb_measurements = db.Column(db.Integer, nullable=True) numb_tracks = db.Column(db.Integer, nullable=True) numb_users = db.Column(db.Integer, nullable=True) numb_sensors = db.Column(db.Integer, nullable=True) def __repr__(self): return '<sensor statistics with id {}>'.format(self.sensor_id) def __hash__(self): return hash(self.sensor_id)
class EnvirocarAverageVehicleTypeStatisticModel(db.Model): __tablename__ = ec_tables['average_vehicle_type_statistics'] hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) vehicle_type = db.Column(db.String, nullable=False, index=True) fuel_type = db.Column(db.String, nullable=False, index=True) phenomenon_name = db.Column(db.String, db.ForeignKey('{}.name'.format( ec_tables['phenomenons'])), nullable=False, index=True) max = db.Column(db.Float(asdecimal=True)) average = db.Column(db.Float(asdecimal=True)) min = db.Column(db.Float(asdecimal=True)) measurements = db.Column(db.Integer, nullable=False) numb_sensors = db.Column(db.Integer, nullable=False)
class EnvirocarTrackMeasurementModel(db.Model): __tablename__ = ec_tables['tracks_measurements'] logger.info('table name for track measurements: {}'.format(__tablename__)) hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) track_measurement_id = db.Column(db.String, db.ForeignKey( '{}.track_measurement_id'.format( ec_tables['tracks_features'])), nullable=False, index=True) track_id = db.Column(db.String, db.ForeignKey('{}.track_id'.format( ec_tables['tracks'])), nullable=False, index=True) sensor_id = db.Column(db.String, db.ForeignKey('{}.sensor_id'.format( ec_tables['sensors'])), nullable=False, index=True) phenomenon_name = db.Column(db.String, db.ForeignKey('{}.name'.format( ec_tables['phenomenons'])), nullable=False, index=True) phenomenon_value = db.Column(db.Float(asdecimal=True), nullable=True) date = db.Column(db.DateTime, nullable=False, index=True) def __repr__(self): return '<track measurements with id {}>'.format(self.track_id) def __hash__(self): return hash(self.track_id)
class EnvirocarTrackModel(db.Model): __tablename__ = ec_tables['tracks'] logger.info('table name for tracks: {}'.format(__tablename__)) track_id = db.Column(db.String, unique=True, primary_key=True, index=True) sensor_id = db.Column(db.String, db.ForeignKey('{}.sensor_id'.format( ec_tables['sensors'])), nullable=False, index=True) track_length = db.Column(db.Float(asdecimal=True)) geom = db.Column(Geometry(geometry_type='LINESTRING', srid=4326, spatial_index=True), nullable=True) tracks_statistics = db.relationship('EnvirocarTrackStatisticModel', backref='{}'.format( ec_tables['tracks']), lazy='dynamic') tracks_measurements = db.relationship('EnvirocarTrackMeasurementModel', backref='{}'.format( ec_tables['tracks']), lazy='dynamic') tracks_features = db.relationship('EnvirocarTrackFeatureModel', backref='{}'.format(ec_tables['tracks']), lazy='dynamic') def __repr__(self): return '<track {}>'.format(self.track_id) def __hash__(self): return hash(self.track_id)