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)
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)
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))
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')
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])
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')
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')