Initial commit

This commit is contained in:
2021-10-08 15:14:47 +02:00
commit ca58cfaccb
39 changed files with 2601 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
Binary file not shown.
Binary file not shown.
+144
View File
@@ -0,0 +1,144 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
#Nom : : sites.py
#Description :
#Copyright : 2021, CEN38
#Auteur : Colas Geier
#Version : 1.0
from ..tools import _get_table
from ..pers.pers import _get_table,_merge_author,_merge_relation
from ..params import con
from ..pers import pers
schema = 'sites'
auteur = pers.get_auteur()
organisme = pers.get_organisme()
lst_tab = con.dialect.get_table_names(con,schema=schema)
columns_sitetab = con.dialect.get_columns(con,schema=schema,table_name='sites')
columns_geomtab = con.dialect.get_columns(con,schema=schema,table_name='r_sites_geom')
#####################################
### schema sites ###
#####################################
def _get_typ_milieux(ids=None, nom=None):
table = 'type_milieu'
df = _get_table(con, schema, table, ids=ids, nom=nom)
return df
def _get_typo_sdage(ids=None, nom=None):
table = 'typo_sdage'
df = _get_table(con, schema, table, ids=ids, nom=nom)
return df
def _get_typ_site(ids=None, nom=None):
table = 'type_site'
df = _get_table(con, schema, table, ids=ids, nom=nom)
return df
def get_sitesInfos(ids=None, nom=None, columns=None, with_nameOrga=False, details=False,
params_col={}, milieu=None, statut='actif'):
from pandas import merge
drop = []
table = 'sites'
typ_milieux = _get_typ_milieux()
typo_sdage = _get_typo_sdage()
typ_site = _get_typ_site()
if milieu:
m = _get_typ_milieux(nom=milieu)
params_col = {**params_col, 'id_type_milieu':m.id[0].astype(str)}
df = _get_table(con, schema, table, ids=ids, nom=nom, cols=columns, params_col=params_col, statut=statut)
if not df.empty:
# récupération des auteurs
if 'id_auteur' in df.columns:
df.drop(columns='id_auteur', inplace=True)
df = _merge_relation(df=df,table='r_sites_auteur',schema=schema, left_id='id',right_id='id_site')
df = _merge_author(df=df, col_aut='id_auteur', orga=with_nameOrga)
# merge type_site
if 'id_type_site' in df.columns:
df = merge(df, typ_site, how='left', left_on='id_type_site', right_on='id', suffixes=('','_y') ) \
.drop(columns=['id_type_site', 'id_y']) \
.rename(columns={'nom_y': 'type_site', 'description': 'desc_type_site'})
drop += ['desc_type_site']
# merge typo_sdage
if 'id_typo_sdage' in df.columns:
df = merge(df, typo_sdage, how='left', left_on='id_typo_sdage', right_on='id', suffixes=('','_y') ) \
.drop(columns=['id_typo_sdage', 'id_y']) \
.rename(columns={'nom_y': 'typo_sdage', 'description': 'desc_typo_sdage'})
drop += ['desc_typo_sdage']
# merge type_milieu
if 'id_type_milieu' in df.columns:
df = merge(df, typ_milieux, how='left', left_on='id_type_milieu', right_on='id', suffixes=('','_y') ) \
.drop(columns=['id_type_milieu', 'id_y']) \
.rename(columns={'nom_y': 'type_milieu', 'description': 'desc_type_milieu', 'nom_court': 'nom_court_milieu'})
drop += ['desc_type_milieu', 'nom_court_milieu']
if not details:
df.drop(columns=drop, inplace=True)
return df.sort_values('id')
def get_sitesGeom(id_site=None, nom_site=None, columns=None, last_update=False,
with_nameOrga=False, params_col={}, milieu=None, statut='actif'):
if columns:
if not isinstance(columns, list): columns = [columns]
if 'id' not in columns: columns.insert(0,'id')
if 'id_site' not in columns: columns.insert(1,'id_site')
if 'geom' not in columns: columns.insert(2,'geom')
if milieu:
m = _get_typ_milieux(nom=milieu)
params_col = {**params_col, 'id_type_milieu':m.id[0].astype(str)}
table = 'sites'
df = _get_table(con, schema, table, ids=id_site, nom=nom_site, cols='id', params_col=params_col, statut=statut)
idSite = df.id.tolist()
if 'id_type_milieu' in params_col.keys():
del params_col['id_type_milieu']
if idSite:
if 'id_site' in params_col.keys() : params_col['id_site'] = idSite
else: params_col = {**params_col, 'id_site':idSite}
table = 'r_sites_geom'
# df = _get_table(con, schema, table, params_col={'id_site':idSite}, cols=columns)
df = _get_table(con, schema, table, params_col=params_col, cols=columns)
if last_update:
df.sort_values(['id_site','date'], inplace=True)
df.reset_index(inplace=True, drop=True)
df.drop_duplicates(subset=['id_site'], keep='last', inplace=True)
df.reset_index(inplace=True, drop=True)
if 'id_auteur' in df.columns:
df.drop(columns='id_auteur', inplace=True)
df = _merge_relation(df=df,table='r_geomsites_auteur',schema=schema, left_id='id',right_id='id_geom_site')
df = _merge_author(df=df, col_aut='id_auteur', orga=with_nameOrga)
if 'auteur' in df.columns:
df.rename(columns={'auteur': 'auteur_geom'}, inplace=True)
return df
def new_site(df):
from ..tools.sites import tab_sites
final_col = [col['name'] for col in columns_sitetab]
aut = df['auteur']
# lst_site = ['38RD0146','38RD0147','38RD0148','38RD0149','38RD0150','38RD0151','38RD0152',
# '38RD0153','38RD0155','38RD0156','38RD0157','38RD0158','38RD0159','38RD0160',
# '38RD0161','38RD0162','38RD0163','38RD0164','38RD0165']
# df = zh.get_sitesInfos(id_site=lst_site)
# df.loc[df.auteur=='INCONNU','auteur'] = 'Gereco Environnement'