Python_scripts/maj_site.py

58 lines
1.7 KiB
Python

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