예제 #1
0
class TyporefSHS(DB.Model):
    __tablename__ = 'typoref'
    __table_args__ = {'schema': 'ref_habitat', 'extend_existing': True}

    cd_typo = DB.Column(DB.Integer,
                        primary_key=True,
                        server_default=DB.FetchedValue())
class Habref(DB.Model):
    __tablename__ = 'habref'
    __table_args__ = {'schema': 'ref_habitat', 'extend_existing': True}

    cd_hab = DB.Column(DB.Integer,
                       primary_key=True,
                       server_default=DB.FetchedValue())
    fg_validite = DB.Column(DB.String(20), nullable=False)
    cd_typo = DB.Column(DB.ForeignKey('ref_habitat.typoref.cd_typo',
                                      ondelete='CASCADE',
                                      onupdate='CASCADE'),
                        nullable=False)
    lb_code = DB.Column(DB.String(50))
    lb_hab_fr = DB.Column(DB.String(255))
    lb_hab_fr_complet = DB.Column(DB.String(255))
    lb_hab_en = DB.Column(DB.String(255))
    lb_auteur = DB.Column(DB.String(255))
    niveau = DB.Column(DB.Integer)
    lb_niveau = DB.Column(DB.String(100))
    cd_hab_sup = DB.Column(DB.Integer, nullable=False)
    path_cd_hab = DB.Column(DB.String(2000))
    france = DB.Column(DB.String(5))
    lb_description = DB.Column(DB.String(4000))

    typoref = DB.relationship('Typoref',
                              primaryjoin='Habref.cd_typo == Typoref.cd_typo',
                              backref='habrefs')
class TNomenclature(DB.Model):
    __tablename__ = 't_nomenclatures'
    __table_args__ = {'schema': 'ref_nomenclatures', 'extend_existing': True}

    id_nomenclature = DB.Column(DB.Integer,
                                primary_key=True,
                                server_default=DB.FetchedValue())
    mnemonique = DB.Column(DB.String(255))
    label_default = DB.Column(DB.String(255), nullable=False)
class CorVisitTaxon(DB.Model):
    __tablename__ = 'cor_visit_taxons'
    __table_args__ = {'schema': 'pr_monitoring_habitat_territory'}

    id_cor_visite_taxons = DB.Column(DB.Integer,
                                     nullable=False,
                                     server_default=DB.FetchedValue(),
                                     primary_key=True)
    id_base_visit = DB.Column(
        DB.ForeignKey('gn_monitoring.t_base_visits.id_base_visit',
                      ondelete='CASCADE',
                      onupdate='CASCADE'))
    cd_nom = DB.Column(DB.Integer)
class CorListHabitat(DB.Model):
    __tablename__ = 'cor_list_habitat'
    __table_args__ = {'schema': 'ref_habitat', 'extend_existing': True}

    id_cor_list = DB.Column(DB.Integer,
                            primary_key=True,
                            server_default=DB.FetchedValue())
    id_list = DB.Column(DB.ForeignKey('ref_habitat.habref.bib_list_habitat',
                                      onupdate='CASCADE'),
                        nullable=False)
    cd_hab = DB.Column(DB.ForeignKey('ref_habitat.habref.cd_hab',
                                     onupdate='CASCADE'),
                       nullable=False)
예제 #6
0
class TPlot(DB.Model):
    __tablename__ = 't_plots'
    __table_args__ = {'schema': 'pr_monitoring_habitat_station'}

    id_plot = DB.Column(DB.Integer,
                        primary_key=True,
                        server_default=DB.FetchedValue())
    id_transect = DB.Column(DB.ForeignKey(
        'pr_monitoring_habitat_station.t_transects.id_transect',
        ondelete='CASCADE',
        onupdate='CASCADE'),
                            nullable=False)
    code_plot = DB.Column(DB.String(50))
    distance_plot = DB.Column(DB.Integer)
예제 #7
0
class CorRelevePlotStrat(DB.Model):
    __tablename__ = 'cor_releve_plot_strats'
    __table_args__ = {'schema': 'pr_monitoring_habitat_station'}

    id_releve_plot_strat = DB.Column(DB.Integer,
                                     primary_key=True,
                                     server_default=DB.FetchedValue())
    id_releve_plot = DB.Column(DB.ForeignKey(
        'pr_monitoring_habitat_station.t_releve_plots.id_releve_plot',
        onupdate='CASCADE'),
                               nullable=False)
    id_nomenclature_strate = DB.Column(DB.ForeignKey(
        'ref_nomenclatures.t_nomenclatures.id_nomenclature',
        onupdate='CASCADE'),
                                       nullable=False)
    cover_pourcentage = DB.Column(DB.Integer)
class CorHabitatTaxon(DB.Model):
    __tablename__ = 'cor_habitat_taxon'
    __table_args__ = {'schema': 'pr_monitoring_habitat_territory'}

    id_cor_habitat_taxon = DB.Column(DB.Integer,
                                     primary_key=True,
                                     server_default=DB.FetchedValue())
    id_habitat = DB.Column(DB.ForeignKey('ref_habitat.habref.cd_hab',
                                         onupdate='CASCADE'),
                           nullable=False)
    cd_nom = DB.Column(DB.Integer, nullable=False)

    #taxref = DB.relationship('Taxref', primaryjoin='CorHabitatTaxon.cd_nom == Taxref.cd_nom', backref='cor_habitat_taxons')
    habref = DB.relationship(
        'Habref',
        primaryjoin='CorHabitatTaxon.id_habitat == Habref.cd_hab',
        backref='cor_habitat_taxons')
class Typoref(DB.Model):
    __tablename__ = 'typoref'
    __table_args__ = {'schema': 'ref_habitat', 'extend_existing': True}

    cd_typo = DB.Column(DB.Integer,
                        primary_key=True,
                        server_default=DB.FetchedValue())
    cd_table = DB.Column(DB.String(255))
    lb_nom_typo = DB.Column(DB.String(100))
    nom_jeu_donnees = DB.Column(DB.String(255))
    date_creation = DB.Column(DB.String(255))
    date_mise_jour_table = DB.Column(DB.String(255))
    date_mise_jour_metadonnees = DB.Column(DB.String(255))
    auteur_typo = DB.Column(DB.String(4000))
    auteur_table = DB.Column(DB.String(4000))
    territoire = DB.Column(DB.String(4000))
    organisme = DB.Column(DB.String(255))
    langue = DB.Column(DB.String(255))
    presentation = DB.Column(DB.String(4000))
예제 #10
0
class CorHabTaxon(DB.Model):
    __tablename__ = 'cor_hab_taxon'
    __table_args__ = (DB.UniqueConstraint('id_habitat', 'cd_nom'), {
        'schema': 'pr_monitoring_habitat_station'
    })

    id_cor_hab_taxon = DB.Column(DB.Integer,
                                 primary_key=True,
                                 server_default=DB.FetchedValue())
    # cd_nom = DB.Column(DB.ForeignKey('taxonomie.taxref.cd_nom', onupdate='CASCADE'), nullable=False)
    cd_nom = DB.Column(DB.Integer, nullable=False)
    id_habitat = DB.Column(DB.ForeignKey('ref_habitat.habref.cd_hab',
                                         onupdate='CASCADE'),
                           nullable=False)
    # taxref = DB.relationship('Taxref', primaryjoin='CorHabTaxon.cd_nom == Taxref.cd_nom', backref='cor_hab_taxons')
    habref = DB.relationship(
        'HabrefSHS',
        primaryjoin='CorHabTaxon.id_habitat == HabrefSHS.cd_hab',
        backref='cor_hab_taxons')
예제 #11
0
class TTransect(DB.Model):
    __tablename__ = 't_transects'
    __table_args__ = {'schema': 'pr_monitoring_habitat_station'}

    id_transect = DB.Column(DB.Integer,
                            primary_key=True,
                            server_default=DB.FetchedValue())
    id_base_site = DB.Column(DB.ForeignKey(
        'gn_monitoring.t_base_sites.id_base_site',
        ondelete='CASCADE',
        onupdate='CASCADE'),
                             nullable=False)
    transect_label = DB.Column(DB.String(50))
    geom_start = DB.Column(Geometry('POINT', 4326))
    geom_end = DB.Column(Geometry('POINT', 4326))
    id_nomenclature_plot_position = DB.Column(DB.Integer, nullable=False)
    cd_hab = DB.Column(DB.ForeignKey('ref_habitat.habref.cd_hab',
                                     onupdate='CASCADE'),
                       nullable=False)
    plot_size = DB.Column(DB.String(50))

    # habref = DB.relationship('HabrefSHS', primaryjoin='TTransect.cd_hab == HabrefSHS.cd_hab', backref='t_transects')
    t_base_site = DB.relationship('TBaseSites')
    cor_plots = DB.relationship("TPlot", backref='t_plots')

    def get_geofeature(self, recursif=False):
        line = self.points_to_linestring()
        feature = Feature(
            id=str(self.id_base_site),
            geometry=line,
            properties=self.as_dict(recursif),
        )
        return feature

    def points_to_linestring(self):
        point1 = (DB.session.scalar(geo_funcs.ST_X(self.geom_start)),
                  DB.session.scalar(geo_funcs.ST_Y(self.geom_start)))
        point2 = (DB.session.scalar(geo_funcs.ST_X(self.geom_end)),
                  DB.session.scalar(geo_funcs.ST_Y(self.geom_end)))
        return LineString([point1, point2])
예제 #12
0
class CorTransectVisitPerturbation(DB.Model):
    __tablename__ = 'cor_transect_visit_perturbation'
    __table_args__ = {'schema': 'pr_monitoring_habitat_station'}

    id_cor_transect_visit_perturb = DB.Column(DB.Integer,
                                              primary_key=True,
                                              server_default=DB.FetchedValue())
    id_base_visit = DB.Column(DB.ForeignKey(
        'gn_monitoring.t_base_visits.id_base_visit',
        ondelete='CASCADE',
        onupdate='CASCADE'),
                              nullable=False)
    id_nomenclature_perturb = DB.Column(DB.ForeignKey(
        'ref_nomenclatures.t_nomenclatures.id_nomenclature',
        onupdate='CASCADE'),
                                        nullable=False)

    #t_base_visit = DB.relationship('TBaseVisits', primaryjoin='CorTransectVisitPerturbation.id_base_visit == TBaseVisits.id_base_visit', backref='cor_transect_visit_perturbations')
    t_nomenclature = DB.relationship(
        'TNomencla',
        primaryjoin=
        'CorTransectVisitPerturbation.id_nomenclature_perturb == TNomencla.id_nomenclature',
        backref='cor_perturb_nomencla')
예제 #13
0
class TRelevePlot(DB.Model):
    __tablename__ = 't_releve_plots'
    __table_args__ = {'schema': 'pr_monitoring_habitat_station'}

    id_releve_plot = DB.Column(DB.Integer,
                               primary_key=True,
                               server_default=DB.FetchedValue())
    id_plot = DB.Column(DB.ForeignKey(
        'pr_monitoring_habitat_station.t_plots.id_plot',
        ondelete='CASCADE',
        onupdate='CASCADE'),
                        nullable=False)
    id_base_visit = DB.Column(DB.ForeignKey(
        'gn_monitoring.t_base_visits.id_base_visit',
        ondelete='CASCADE',
        onupdate='CASCADE'),
                              nullable=False)
    excretes_presence = DB.Column(DB.Boolean)

    cor_releve_strats = DB.relationship('CorRelevePlotStrat',
                                        backref='id_releve_plot_s')
    cor_releve_taxons = DB.relationship("CorRelevePlotTaxon",
                                        backref='id_releve_plot_t')