class MatchedWikiEnvirocarModel(db.Model): __tablename__ = misc_tables['wikipedia_envirocar_match_table'] logger.info( 'table name for matched wikicar envirocar: {}'.format(__tablename__)) object_hash = db.Column(db.CHAR(length=32), primary_key=True, unique=True) envirocar_sensor_id = db.Column(db.String, nullable=True, index=True) car_hash_id = db.Column(db.CHAR(length=32), nullable=False, index=True)
class EurostatCountryPriceModel(db.Model): __tablename__ = es_tables['country_prices'] hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) date = db.Column(db.DateTime, nullable=False, index=True) country_alpha_2 = db.Column( db.String, db.ForeignKey('{}.country_alpha_2'.format(countries_table)), nullable=False, index=True) taux = db.Column(db.Float) euro_price = db.Column(db.Integer, nullable=True) euro_ht = db.Column(db.Numeric, nullable=True) euro_ttc = db.Column(db.Numeric, nullable=True) euro_unit = db.Column(db.String, nullable=False) euro_quantity = db.Column(db.Integer, nullable=False) diesel_ht = db.Column(db.Numeric, nullable=True) diesel_ttc = db.Column(db.Numeric, nullable=True) diesel_unit = db.Column(db.String, nullable=False) diesel_quantity = db.Column(db.Integer, nullable=False) def __repr__(self): return '<CountryPrice date {}>'.format(self.date) def __hash__(self): return hash(self.date)
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 EnvirocarTrackStatisticModel(db.Model): __tablename__ = ec_tables['tracks_statistics'] logger.info('table name for track statistics: {}'.format(__tablename__)) hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) track_id = db.Column(db.String, db.ForeignKey('{}.track_id'.format( ec_tables['tracks'])), 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.Float(asdecimal=True), nullable=True) numb_users = db.Column(db.Float(asdecimal=True), nullable=True) numb_sensors = db.Column(db.Float(asdecimal=True), nullable=True) def __repr__(self): return '<track statistics with id {}>'.format(self.track_id) def __hash__(self): return hash(self.track_id)
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)
class CarfuelDataCarModel(db.Model): __tablename__ = cfd_tables['carfueldata_cars'] logger.info( 'table name for carfueldata car models: {}'.format(__tablename__)) hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) logger.info('table name for sensors: {}'.format(__tablename__)) manufacturer = db.Column(db.String, nullable=False, index=True) model = db.Column(db.String, nullable=False) description = db.Column(db.String, nullable=False) transmission = db.Column(db.String, nullable=False) engine_capacity = db.Column(db.String, nullable=False) fuel_type = db.Column(db.String, nullable=False) e_consumption_miles_per_kWh = db.Column(db.Float, nullable=True) e_consumption_wh_per_km = db.Column(db.Float, nullable=True) maximum_range_km = db.Column(db.Float, nullable=True) maximum_range_miles = db.Column(db.Float, nullable=True) metric_urban_cold = db.Column(db.Float, nullable=True) metric_extra_urban = db.Column(db.Float, nullable=True) metric_combined = db.Column(db.Float, nullable=True) imperial_urban_cold = db.Column(db.Float, nullable=True) imperial_extra_urban = db.Column(db.Float, nullable=True) imperial_combined = db.Column(db.Float, nullable=True) co2_g_per_km = db.Column(db.Float, nullable=True) fuel_cost_6000_miles = db.Column(db.Float, nullable=True) fuel_cost_12000_miles = db.Column(db.Float, nullable=True) electricity_cost = db.Column(db.Float, nullable=True) total_cost_per_12000_miles = db.Column(db.Float, nullable=True) euro_standard = db.Column(db.String, nullable=True) noise_level_dB_a_ = db.Column(db.Float, nullable=True) emissions_co_mg_per_km = db.Column(db.Float, nullable=True) thc_emissions_mg_per_km = db.Column(db.Float, nullable=True) emissions_nox_mg_per_km = db.Column(db.Float, nullable=True) thc_plus_nox_emissions_mg_per_km = db.Column(db.Float, nullable=True) particulates_no_mg_per_km = db.Column(db.Float, nullable=True) rde_nox_urban = db.Column(db.Float, nullable=True) rde_nox_combined = db.Column(db.Float, nullable=True) date_of_change = db.Column(db.Date, nullable=False) wiki_hashes = db.Column(ARRAY(db.CHAR(length=32)), nullable=True) year = db.Column(db.Integer, nullable=True) def __repr__(self): return '<sensors id {}>'.format(self.sensor_id) def __hash__(self): return hash(self.sensor_id)
class CarFuelDataAverageCategoryStatisticsModel(db.Model): __tablename__ = misc_tables['cfd_average_category_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, nullable=False, index=True) value = db.Column(db.Float, nullable=False) numb_cars = db.Column(db.Integer, nullable=False) year = db.Column(db.Integer, nullable=False, index=True) category_short_eu = db.Column( db.String, db.ForeignKey('{}.category_short_eu'.format(wiki_category_table)))
class WikiCarPageTextModel(db.Model): __tablename__ = misc_tables['wikicar_page_texts'] hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) wiki_name = db.Column(db.String, nullable=False, index=True) brand_name = db.Column(db.String, nullable=False, index=True) car_name = db.Column(db.String, nullable=False, index=True) page_language = db.Column(db.String, nullable=False, index=True) page_text = db.Column(db.String, nullable=True) category_short_eu = db.Column( db.String, db.ForeignKey('{}.category_short_eu'.format(wiki_category_table)), nullable=True, index=True)
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 WikiCarModel(db.Model): __tablename__ = wiki_car_table logger.info('table name for sensors: {}'.format(__tablename__)) hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) wiki_name = db.Column(db.String, nullable=False, index=True) category_short_eu = db.Column( db.String, db.ForeignKey('{}.category_short_eu'.format(wiki_category_table)), nullable=True, index=True) brand_name = db.Column(db.String, nullable=False, index=True) car_name = db.Column(db.String, nullable=False, index=True) page_id = db.Column(db.Integer, nullable=True) page_language = db.Column(db.String, nullable=True) def __repr__(self): return '<car wiki name {}>'.format(self.wiki_name) def __hash__(self): return hash(self.wiki_name)
class EurostatGeneralPriceModel(db.Model): __tablename__ = es_tables['general_prices'] hash_id = db.Column(db.CHAR(length=32), primary_key=True, unique=True) date = db.Column(db.DateTime, nullable=False, primary_key=True, unique=True) euro_price = db.Column(db.Integer, nullable=True) euro_ht = db.Column(db.Numeric, nullable=True) euro_ttc = db.Column(db.Numeric, nullable=True) euro_unit = db.Column(db.String, nullable=False) euro_quantity = db.Column(db.Integer, nullable=False) diesel_ht = db.Column(db.Numeric, nullable=True) diesel_ttc = db.Column(db.Numeric, nullable=True) diesel_unit = db.Column(db.String, nullable=False) diesel_quantity = db.Column(db.Integer, nullable=False) def __repr__(self): return '<general price date {}>'.format(self.date) def __hash__(self): return hash(self.date)