예제 #1
0
class EarthquakeEvents(DB.Model):
    """
    Class representation of earthquake_events table
    """

    __tablename__ = "earthquake_events"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    eq_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    ts = DB.Column(DB.DateTime)
    magnitude = DB.Column(DB.Float(4, 2))
    depth = DB.Column(DB.Float(5, 2))
    latitude = DB.Column(DB.Float(9, 6))
    longitude = DB.Column(DB.Float(9, 6))
    critical_distance = DB.Column(DB.Float(6, 3))
    issuer = DB.Column(DB.String(20))
    processed = DB.Column(DB.Integer, nullable=False)

    def __repr__(self):
        return (
            f"Type <{self.__class__.__name__}> EQ_ID: {self.eq_id}"
            f" Magnitude: {self.magnitude} Depth: {self.depth}"
            f" Critical Distance: {self.critical_distance} issuer: {self.issuer}"
        )
예제 #2
0
class Markers(DB.Model):
    """
    Class representation of markers table
    """

    __tablename__ = "markers"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    marker_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    site_id = DB.Column(DB.Integer,
                        DB.ForeignKey("commons_db.sites.site_id"),
                        nullable=False)
    description = DB.Column(DB.String(50))
    latitude = DB.Column(DB.Float(9, 6))
    longitude = DB.Column(DB.Float(9, 6))
    in_use = DB.Column(DB.Boolean)

    site = DB.relationship("Sites",
                           backref=DB.backref("markers", lazy="dynamic"),
                           lazy="select")

    def __repr__(self):
        return (f"Type <{self.__class__.__name__}> Marker ID: {self.marker_id}"
                f" Site ID: {self.site_id} Description: {self.description}"
                f" In Use: {self.in_use}")
예제 #3
0
class EarthquakeAlerts(DB.Model):
    """
    Class representation of earthquake_alerts table
    """

    __tablename__ = "earthquake_alerts"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    ea_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    eq_id = DB.Column(DB.Integer,
                      DB.ForeignKey("senslopedb.earthquake_events.eq_id"),
                      nullable=False)
    site_id = DB.Column(DB.Integer,
                        DB.ForeignKey("commons_db.sites.site_id"),
                        nullable=False)
    distance = DB.Column(DB.Float(5, 3), nullable=False)

    eq_event = DB.relationship("EarthquakeEvents",
                               backref=DB.backref("eq_alerts",
                                                  lazy="subquery"),
                               lazy="select")
    site = DB.relationship("Sites",
                           backref=DB.backref("eq_alerts", lazy="dynamic"),
                           lazy="select")

    def __repr__(self):
        return (f"Type <{self.__class__.__name__}> EQ Alert ID: {self.ea_id}"
                f" Site ID: {self.site_id} Distance: {self.distance}")
예제 #4
0
class RainfallPriorities(DB.Model):
    """
    Class representation of rainfall_priorities table
    """

    __tablename__ = "rainfall_priorities"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    priority_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    rain_id = DB.Column(DB.Integer,
                        DB.ForeignKey("senslopedb.rainfall_gauges.rain_id"),
                        nullable=False)
    site_id = DB.Column(DB.Integer,
                        DB.ForeignKey("commons_db.sites.site_id"),
                        nullable=False)
    distance = DB.Column(DB.Float(5, 2), nullable=False)

    site = DB.relationship("Sites",
                           backref=DB.backref("rainfall_priorities",
                                              lazy="dynamic"),
                           lazy="subquery")

    rainfall_gauge = DB.relationship("RainfallGauges",
                                     backref=DB.backref("rainfall_priorities",
                                                        lazy="dynamic"),
                                     lazy="subquery")

    def __repr__(self):
        return (
            f"Type <{self.__class__.__name__}> Priority ID: {self.priority_id}"
            f" Rain ID: {self.rain_id} Distance: {self.distance}")
예제 #5
0
class RainfallThresholds(DB.Model):
    """
    Class representation of rainfall_thresholds table
    """

    __tablename__ = "rainfall_thresholds"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    rt_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    site_id = DB.Column(DB.Integer,
                        DB.ForeignKey("commons_db.sites.site_id"),
                        nullable=False)
    threshold_name = DB.Column(DB.String(12), nullable=False)
    threshold_value = DB.Column(DB.Float(8, 5), nullable=False)

    site = DB.relationship("Sites",
                           backref=DB.backref("rainfall_thresholds",
                                              lazy="dynamic"),
                           lazy="subquery")

    def __repr__(self):
        return (
            f"Type <{self.__class__.__name__}> Rain Threshold ID: {self.rt_id}"
            f" Site ID: {self.site_id} Thres Name: {self.threshold_name}"
            f" Threshold Value: {self.threshold_value}")
예제 #6
0
class OldMonitoringEQ(UserMixin, DB.Model):
    """
    Class representation of public_alert_eq table
    """

    __tablename__ = "public_alert_eq"

    id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    trigger_id = DB.Column(DB.Integer, DB.ForeignKey(
        "public_alert_trigger.trigger_id"))
    magnitude = DB.Column(DB.Float(2, 1))
    latitude = DB.Column(DB.Float(9, 6))
    longitude = DB.Column(DB.Float(9, 6))

    trigger = DB.relationship(OldMonitoringTriggers, backref=DB.backref(
        "eq_details", lazy="subquery", uselist=False))

    def __repr__(self):
        return (f"Type <{self.__class__.__name__}> ID: {self.id}"
                f" Magnitude: {self.magnitude} Trigger ID: {self.trigger_id}")
예제 #7
0
class MonitoringEarthquake(UserMixin, DB.Model):
    """
    Class representation of monitoring_earthquake table
    """

    __tablename__ = "monitoring_earthquake"
    __bind_key__ = "ewi_db"
    __table_args__ = {"schema": "ewi_db"}

    eq_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    magnitude = DB.Column(DB.Float(2, 1), nullable=False)
    latitude = DB.Column(DB.Float(9, 6), nullable=False)
    longitude = DB.Column(DB.Float(9, 6), nullable=False)

    trigger_misc = DB.relationship(
        "MonitoringTriggersMisc",
        backref="eq",
        primaryjoin="MonitoringTriggersMisc.eq_id==MonitoringEarthquake.eq_id")

    def __repr__(self):
        return (f"Type <{self.__class__.__name__}> EQ ID: {self.eq_id}"
                f" Magnitude: {self.magnitude}")
예제 #8
0
class RainfallGauges(DB.Model):
    """
    Class representation of rainfall_gauges table
    """

    __tablename__ = "rainfall_gauges"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    rain_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    gauge_name = DB.Column(DB.String(5), nullable=False)
    data_source = DB.Column(DB.String(8), nullable=False)
    latitude = DB.Column(DB.Float(9, 6), nullable=False)
    longitude = DB.Column(DB.Float(9, 6), nullable=False)
    date_activated = DB.Column(DB.DateTime, nullable=False)
    date_deactivated = DB.Column(DB.DateTime)

    def __repr__(self):
        return (
            f"Type <{self.__class__.__name__}> Rain Gauge ID: {self.rain_id}"
            f" Gauge Name: {self.gauge_name} Date Activated: {self.date_activated}"
        )
예제 #9
0
class RainfallAlerts(DB.Model):
    """
    Class representation of rainfall_alerts table
    """

    __tablename__ = "rainfall_alerts"
    __bind_key__ = "senslopedb"
    __table_args__ = {"schema": "senslopedb"}

    ra_id = DB.Column(DB.Integer, primary_key=True, nullable=False)
    ts = DB.Column(DB.DateTime, nullable=False)
    site_id = DB.Column(DB.Integer,
                        DB.ForeignKey("commons_db.sites.site_id"),
                        nullable=False)
    rain_id = DB.Column(DB.Integer,
                        DB.ForeignKey("senslopedb.rainfall_gauges.rain_id"),
                        nullable=False)
    rain_alert = DB.Column(DB.String(2))
    cumulative = DB.Column(DB.Float(5, 2))
    threshold = DB.Column(DB.Float(5, 2))

    site = DB.relationship("Sites",
                           backref=DB.backref("rainfall_alerts",
                                              lazy="dynamic"),
                           lazy="subquery")

    rainfall_gauge = DB.relationship("RainfallGauges",
                                     backref=DB.backref("rainfall_alerts",
                                                        lazy="dynamic"),
                                     lazy="subquery")

    def __repr__(self):
        return (
            f"Type <{self.__class__.__name__}> Rain Alert ID: {self.ra_id}"
            f" TS: {self.ts} Site ID: {self.site_id}"
            f" Rain Alert: {self.rain_alert} Cumulative: {self.cumulative}")