#!/usr/bin/env python3 # -*- coding: UTF-8 -*- #Nom : multi_auteurTOrelation_table.py #Description : #Copyright : 2021, CEN38 #Auteur : Colas Geier #Version : 1.0 import pycen import pandas as pd import geopandas as gpd from sqlalchemy import create_engine from geoalchemy2 import Geometry # Parametres bdd OUT user = 'colas_g' pwd = 'adm1n*38*' adr = '192.168.60.10' base = 'bd_cen' con = create_engine('postgresql+psycopg2://{0}:{1}@{2}/{3}'.format(user,pwd,adr,base), echo=False) aut = pycen.sites().auteur aut.loc[aut.prenom.isna(),'auteur'] = aut.nom aut.loc[~aut.prenom.isna(),'auteur'] = aut.nom + ' ' + aut.prenom df = pycen.sites().get_sitesInfos() df_aut = df[['id', 'auteur']] df_aut.set_index('id', inplace=True) df_aut = df_aut.auteur.str.split(' \& ',expand=True) df_rSitAut = pd.DataFrame(columns=['auteur']) for col in df_aut.columns: tmp = pd.DataFrame(data=df_aut.loc[~df_aut[col].isna(),col], copy=True) tmp.columns = ['auteur'] df_rSitAut = pd.concat([df_rSitAut, tmp]) df_rSitAut.auteur.replace(aut.auteur.tolist(),aut.id.tolist(), inplace=True) df_rSitAut.columns = ['id_auteur'] df_rSitAut.index.name = 'id_site' df_rSitAut.reset_index(inplace=True) df_rSitAut.to_sql( name='r_sites_auteur', con = con, schema='sites', index=False, if_exists='append', ) df = pycen.sites().get_sitesGeom() df_aut = df[['id', 'auteur']] df_aut.set_index('id', inplace=True) df_aut = df_aut.auteur.str.split(' \& ',expand=True) df_rSitAut = pd.DataFrame(columns=['auteur']) for col in df_aut.columns: tmp = pd.DataFrame(data=df_aut.loc[~df_aut[col].isna(),col], copy=True) tmp.columns = ['auteur'] df_rSitAut = pd.concat([df_rSitAut, tmp]) df_rSitAut.auteur.replace(aut.auteur.tolist(),aut.id.tolist(), inplace=True) df_rSitAut.columns = ['id_auteur'] df_rSitAut.index.name = 'id_geom_site' df_rSitAut.reset_index(inplace=True) df_rSitAut.to_sql( name='r_geomsites_auteur', con = con, schema='sites', index=False, if_exists='append', )