Python_scripts/3_AZALEE/get_ps_byhab.py

68 lines
2.1 KiB
Python

from pycen import ps,con_bdcen
import geopandas as gpd
# Liste des habitats souhaités
list_habs = ['35.21','35.23','34.12','64.11','64.12']
habs = '|'.join(list_habs)
# v_pelouseseches
dfps = ps.v_pelouseseches()
cb_col = dfps.columns[dfps.columns.str.startswith('cb_hab')]
cdate = dfps.columns[dfps.columns.str.contains('date')]
for c in cdate:
dfps[c] = gpd.pd.to_datetime(dfps[c])
dfps['date'] = dfps[cdate].max(axis=1)
dfps['auteur'] = None
for c in cdate:
typ = c.removeprefix('date')
dfps.loc[dfps[c].eq(dfps.date),'auteur'] = dfps[dfps[c].eq(dfps.date)]['auteur'+typ]
dfps.drop(
columns=[*cdate,*'auteur' + cdate.str.removeprefix('date')],
inplace=True
)
df = gpd.GeoDataFrame()
for c in cb_col:
res = dfps[dfps[c].str.contains(habs,na=False)].copy()
df = gpd.pd.concat([df,res])
df.drop_duplicates(inplace=True)
print('Extract %s unités parcellaires ...'%df.shape[0])
# PB_codehab_nonPresent_dans_corineBiotope
sql = 'SELECT * FROM pelouse_seche."PB_codehab_nonPresent_dans_corineBiotope"'
dfpb = gpd.read_postgis(sql,con_bdcen)
dfps['date'] = gpd.pd.to_datetime(dfps['date'])
dfpb.rename(columns={
'id_site' : 'site_code',
'pratiques':'pratique',
'niv_embrous':'embrouss',
'recouvmnt':'recouvrement',
'remarques':'rmq_site',
'code_hab1':'cb_hab1',
'code_hab2':'cb_hab2',
'code_hab3':'cb_hab3',
'code_hab4':'cb_hab4',
'code_hab5':'cb_hab5',
}, inplace=True)
samecol = dfpb.columns[dfpb.columns.isin(dfps.columns)]
diffcol = dfpb.columns[~dfpb.columns.isin(dfps.columns)]
dfpb = dfpb[samecol]
cb_colpb = dfpb.columns[dfpb.columns.str.startswith('cb_hab')]
list_habspb = ['PS sur sable','Friche sableuse']
habspb = '|'.join(list_habspb)
for c in cb_colpb:
res = dfpb[dfpb[c].str.contains(habspb,na=False)].copy()
df = gpd.pd.concat([df,res])
df.drop_duplicates(inplace=True)
df['date'] = gpd.pd.to_datetime(df['date']).astype(str)
# df['date'] = gpd.pd.to_datetime(df['date'], unit='D')
print('Extract %s unités parcellaires ...'%df.shape[0])
df.to_file('/home/colas/Documents/9_PROJETS/2_PS/EXPORT/PNA_pelouse_sableuse.gpkg',driver='GPKG')