コード例 #1
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)
コード例 #2
0
class EnvirocarSensorModel(db.Model):
    __tablename__ = ec_tables['sensors']
    logger.info('table name for sensors: {}'.format(__tablename__))
    sensor_id = db.Column(db.String, unique=True, primary_key=True, index=True)
    sensor_type = db.Column(db.String, nullable=False)
    car_model = db.Column(db.String, nullable=False)
    car_manufacturer = db.Column(db.String, nullable=False)
    fuel_type = db.Column(db.String, nullable=False)
    construction_year = db.Column(db.Integer, nullable=False)
    wiki_hashes = db.Column(ARRAY(db.CHAR(length=32)), nullable=True)
    track_ids = db.relationship('EnvirocarTrackModel',
                                backref='{}'.format(ec_tables['sensors']),
                                lazy='dynamic')
    sensors_statistics = db.relationship('EnvirocarSensorStatisticModel',
                                         backref='{}'.format(
                                             ec_tables['sensors']),
                                         lazy='dynamic')
    tracks_measurements = db.relationship('EnvirocarTrackMeasurementModel',
                                          backref='{}'.format(
                                              ec_tables['sensors']),
                                          lazy='dynamic')
    tracks_features = db.relationship('EnvirocarTrackFeatureModel',
                                      backref='{}'.format(
                                          ec_tables['sensors']),
                                      lazy='dynamic')

    def __repr__(self):
        return '<sensors id {}>'.format(self.sensor_id)

    def __hash__(self):
        return hash(self.sensor_id)
コード例 #3
0
class EnvirocarTrackFeatureModel(db.Model):
    __tablename__ = ec_tables['tracks_features']
    logger.info('table name for track geometries: {}'.format(__tablename__))
    track_measurement_id = db.Column(db.String,
                                     index=True,
                                     unique=True,
                                     nullable=False,
                                     primary_key=True)

    sensor_id = db.Column(db.String,
                          db.ForeignKey('{}.sensor_id'.format(
                              ec_tables['sensors'])),
                          nullable=False,
                          index=True)
    track_id = db.Column(db.String,
                         db.ForeignKey('{}.track_id'.format(
                             ec_tables['tracks'])),
                         nullable=False,
                         index=True)

    geom = db.Column(
        Geometry(geometry_type='POINT', srid=4326, spatial_index=True))

    tracks_features = db.relationship('EnvirocarTrackMeasurementModel',
                                      backref='{}'.format(
                                          ec_tables['tracks_features']),
                                      lazy='dynamic')

    def __repr__(self):
        return '<track geometries with id {}>'.format(self.country_name)

    def __hash__(self):
        return hash(self.country_name)
コード例 #4
0
class CarCategoryModel(db.Model):
    __tablename__ = wiki_category_table
    logger.info('table name for sensors: {}'.format(__tablename__))
    category_short_eu = db.Column(db.String,
                                  primary_key=True,
                                  unique=True,
                                  nullable=False,
                                  index=True)
    category_name_de = db.Column(db.String,
                                 unique=True,
                                 nullable=False,
                                 index=True)
    category_name_en = db.Column(db.String,
                                 unique=True,
                                 nullable=False,
                                 index=True)
    car_models = db.relationship('WikiCarModel',
                                 backref='{}'.format(wiki_category_table),
                                 lazy='dynamic')
    wiki_car_page_texts = db.relationship(
        'WikiCarPageTextModel',
        backref='{}'.format(wiki_category_table),
        lazy='dynamic')
    carfueldata_av_statistics = db.relationship(
        'CarFuelDataAverageCategoryStatisticsModel',
        backref='{}'.format(wiki_category_table),
        lazy='dynamic')
    average_category_statistics = db.relationship(
        'EnvirocarAverageCategoryStatisticsModel',
        backref='{}'.format(wiki_category_table),
        lazy='dynamic')

    def __repr__(self):
        return '<category wiki {}>'.format(self.category_short_eu)

    def __hash__(self):
        return hash(self.category_short_eu)
コード例 #5
0
class CountryDataModel(db.Model):
    __tablename__ = countries_table
    logger.info('table name for countries: {}'.format(__tablename__))
    country_name = db.Column(db.String,
                             unique=True,
                             primary_key=True,
                             index=True,
                             nullable=False)
    country_alpha_2 = db.Column(db.String,
                                unique=True,
                                primary_key=True,
                                index=True)
    country_alpha_3 = db.Column(db.String,
                                unique=True,
                                primary_key=True,
                                index=True,
                                nullable=True)
    country_numeric = db.Column(db.Integer,
                                primary_key=True,
                                index=True,
                                nullable=True)
    country_currency_code = db.Column(db.String,
                                      primary_key=True,
                                      index=True,
                                      nullable=True)
    country_currency_name = db.Column(db.String,
                                      primary_key=True,
                                      index=True,
                                      nullable=True)
    geom = db.Column(
        Geometry(geometry_type='MULTIPOLYGON', srid=4326, spatial_index=True))
    country_prices = db.relationship('EurostatCountryPriceModel',
                                     lazy='dynamic')

    def __repr__(self):
        return '<country_code {}>'.format(self.country_name)

    def __hash__(self):
        return hash(self.country_name)
コード例 #6
0
class EnvirocarPhenomenonModel(db.Model):
    __tablename__ = ec_tables['phenomenons']
    logger.info('table name for phenomenons: {}'.format(__tablename__))

    name = db.Column(db.String, unique=True, primary_key=True)
    unit = db.Column(db.String, nullable=False)
    sensors_statistics = db.relationship('EnvirocarSensorStatisticModel',
                                         backref='{}'.format(
                                             ec_tables['phenomenons']),
                                         lazy='dynamic')
    tracks_measurements = db.relationship('EnvirocarTrackMeasurementModel',
                                          backref='{}'.format(
                                              ec_tables['phenomenons']),
                                          lazy='dynamic')
    tracks_statistics = db.relationship('EnvirocarTrackStatisticModel',
                                        backref='{}'.format(
                                            ec_tables['phenomenons']),
                                        lazy='dynamic')
    average_vehicle_type_statistics = db.relationship(
        'EnvirocarAverageVehicleTypeStatisticModel',
        backref='{}'.format(ec_tables['phenomenons']),
        lazy='dynamic')
    average_manufacturer_statistics = db.relationship(
        'EnvirocarAverageManufacturerStatisticModel',
        backref='{}'.format(ec_tables['phenomenons']),
        lazy='dynamic')
    average_category_statistics = db.relationship(
        'EnvirocarAverageCategoryStatisticsModel',
        backref='{}'.format(ec_tables['phenomenons']),
        lazy='dynamic')

    def __repr__(self):
        return '<phenomenon name {}>'.format(self.name)

    def __hash__(self):
        return hash(self.name)