Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)