from pycen import con_bdcen,con_fon,update_to_sql from pycen.tools import Polygons_to_MultiPolygon import geopandas as gpd PATHIN = '/media/colas/SRV/FICHIERS/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/LEZE/PG2022/' FILEIN = 'LEZE_zonage_2022.shp' SITE_NAME = 'LEZE' SITE_TYPE = '' site = gpd.read_file(PATHIN+FILEIN) tab = 'sites' sch = 'sites' key = 'site_id' con = con_fon geom_name = 'geom_ecolo' if FILEIN == 'LEZE_zonage_2022.shp': site = gpd.GeoDataFrame( data={key:SITE_NAME,geom_name:gpd.GeoSeries(site.unary_union)},geometry=geom_name,crs=2154 ) if site.geometry.name != geom_name: site.rename_geometry(geom_name, inplace=True) if 'Polygon' in site.geom_type.unique(): site = Polygons_to_MultiPolygon(site,geom_name) # if SITE_TYPE == 'ZO' and con.url.database == 'bd_cen': # zi = gpd.read_postgis("SELECT * FROM sites.sites WHERE site_id = '%s_ZI'"%SITE_NAME,con) # site = site.overlay(zi, how='difference') # site.rename_geometry(geom_name, inplace=True) if con.url.database == 'bd_cen': if SITE_TYPE != '': site[key] = '_'.join([SITE_NAME,SITE_TYPE]) else : site[key] = SITE_NAME update_to_sql( df= site[[key,geom_name]], con=con, table_name=tab, schema_name=sch, key_name=key ) elif con.url.database == 'bd-cen-38': from datetime import datetime as dt site[key] = SITE_NAME site['type_zonage'] = SITE_TYPE site['date_maj'] = dt.now().date().isoformat() update_to_sql( df= site[[key,'type_zonage','date_maj',geom_name]], con=con, table_name=tab, schema_name=sch, key_name=[key,'type_zonage'] )