68 lines
2.1 KiB
Python
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')
|
|
|