Python_scripts/5_GEONATURE/tmp/clean_negria_partenaire.py
2026-04-28 14:17:26 +02:00

99 lines
7.1 KiB
Python

import geopandas as gpd
from pycen import con_gn
uuid_gn38 = gpd.pd.read_sql('SELECT unique_id_sinp uuid_perm_sinp FROM gn_synthese.synthese',con_gn)
lst_gn38 = uuid_gn38.uuid_perm_sinp.astype(str).tolist()
PATH = '/media/cgeier/SRV/FICHIERS'
biodiv = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/BiodivAura_Synthese_Export_2026-04-21.geojson')
cenra_point = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/CENRA_20260421_gn_export_lones_cen38.gpkg',layer = 'points')
cenra_poly = gpd.read_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/CENRA_20260421_gn_export_lones_cen38.gpkg',layer = 'polygones')
# synt = gpd.pd.read_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/0.Données transmises/synthese_observations_2025-04-24T12_11_45.488Z (completer).csv',sep=',')
# synt['code_com'] = synt.communes.str.split('(',expand=True)[1].str[:5]
# synt['code_dep'] = synt.communes.str.split('(',expand=True)[1].str[:2]
# synt.nombre_min = synt.nombre_min.astype(str).str.strip('.0').replace('nan',None)
# synt.nombre_max = synt.nombre_max.astype(str).str.strip('.0').replace('nan',None)
# synt.precision_geographique = synt.precision_geographique.astype(str).str.strip('.0').replace('nan',None)
# synt.alti_min = synt.alti_min.astype(str).str.strip('.0').replace('nan',None)
for cenra in [cenra_point,cenra_poly]:
test_nb_cenra = cenra.nombre_min.astype('float') > cenra.nombre_max.astype('float')
if test_nb_cenra.any():
cenra.loc[test_nb_cenra,'nb_tmp'] = cenra[test_nb_cenra].nombre_min
cenra.loc[test_nb_cenra,'nombre_min'] = cenra[test_nb_cenra].nombre_max
cenra.loc[test_nb_cenra,'nombre_max'] = cenra[test_nb_cenra].nb_tmp
cenra.drop(columns='nb_tmp',inplace=True)
# cenra.nombre_min = cenra.nombre_min.astype(str).str.strip('.0').replace('nan',None)
# cenra.nombre_max = cenra.nombre_max.astype(str).str.strip('.0').replace('nan',None)
cenra.profondeur_min = cenra.profondeur_min.astype(str).str.strip('.0').replace('nan',None)
cenra.profondeur_max = cenra.profondeur_max.astype(str).str.strip('.0').replace('nan',None)
cenra.precision = cenra.precision.astype(str).str.strip('.0').replace('nan',None)
cenra.code_habitat = cenra.code_habitat.astype(str).str.strip('.0').replace('nan',None)
# cenra.altitude_min = cenra.altitude_min.astype(str).str.strip('.0').replace('nan',None)
# cenra.altitude_max = cenra.altitude_max.astype(str).str.strip('.0').replace('nan',None)
cenra.precision_diffusion.fillna('Non déterminé', inplace=True)
# synt_l93 = synt[synt.x_centroid_4326>500000]
# synt_l93_geom = gpd.GeoDataFrame(synt_l93,geometry=gpd.geoseries.points_from_xy(synt_l93.x_centroid_4326,synt_l93.y_centroid_4326),crs=2154)
# synt_l93_geom.to_crs(4326,inplace=True)
# synt_l93_geom.x_centroid_4326 = synt_l93_geom.geometry.x
# synt_l93_geom.y_centroid_4326 = synt_l93_geom.geometry.y
# synt_w84 = synt[synt.x_centroid_4326<500000]
# synt = gpd.pd.concat([synt_l93_geom,synt_w84])
biodiv.nombre_min = biodiv.nombre_min.astype(str).str.strip('.0').replace('nan',None).replace('',None)
biodiv.nombre_max = biodiv.nombre_max.astype(str).str.strip('.0').replace('nan',None).replace('',None)
biodiv.alti_min = biodiv.alti_min.astype(str).str.strip('.0').replace('nan',None)
biodiv.precision_geographique = biodiv.precision_geographique.astype(str).str.strip('.0').replace('nan',None)
biodiv.observateurs.fillna('Inconnu', inplace=True)
biodiv.stade_vie.fillna('Inconnu', inplace=True)
biodiv.loc[biodiv.cd_ref == 1078938, 'cd_ref'] = 5289 # Geheebia lurida (Hornsch. ex Spreng.) J.A.Jiménez & M.J.Cano, 2021
biodiv.loc[biodiv.cd_ref == 1049429, 'cd_ref'] = 108898 # Muscari neglectum Guss. ex Ten. & Sangiov., 1841
test_nb_biodiv = biodiv.nombre_min.astype('float') > biodiv.nombre_max.astype('float')
if test_nb_biodiv.any():
biodiv.loc[test_nb_biodiv,'nb_tmp'] = biodiv[test_nb_biodiv].nombre_min
biodiv.loc[test_nb_biodiv,'nombre_min'] = biodiv[test_nb_biodiv].nombre_max
biodiv.loc[test_nb_biodiv,'nombre_max'] = biodiv[test_nb_biodiv].nb_tmp
biodiv.drop(columns='nb_tmp',inplace=True)
lst_cenra = [
*cenra_point.id_perm_sinp.tolist(),
*cenra_poly.id_perm_sinp.tolist()
]
# synt = synt[~synt.uuid_perm_sinp.isin(lst_cenra)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_cenra)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_cenra)]
# lst_synt = synt.uuid_perm_sinp.tolist()
lst_biodiv = biodiv.uuid_perm_sinp.tolist()
# biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_synt)]
biodiv = biodiv[~biodiv.uuid_perm_sinp.isin(lst_gn38)]
# synt[~synt.uuid_perm_sinp.isin(lst_biodiv)]
from shapely.geometry import shape
import json
biodiv['geom'] = biodiv.apply(lambda row: shape(json.loads(row['geojson_4326'])), axis=1).set_crs(4326)
biodiv.set_geometry('geom',inplace=True)
biodiv.drop(columns='geometry',inplace=True)
biodiv['geom_4326'] = biodiv.geom.to_wkt()
gpd.pd.concat([cenra_point,cenra_poly]).to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_20260421_gn_export_lones_cen38.csv',index=False)
# cenra.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_synthese_observations_geonature_2026-03-16T15_25_59.351Z.csv',index=False)
# synt.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.csv',index=False)
biodiv.to_csv(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/BiodivAura_Synthese_Export_2026-04-21.csv',index=False)
gpd.pd.concat([cenra_point,cenra_poly]).to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_20260421_gn_export_lones_cen38.geojson',index=False)
# cenra.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/CENRA_synthese_observations_geonature_2026-03-16T15_25_59.351Z.geojson',index=False)
# synt.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.geojson',index=False)
# synt_geom = gpd.GeoDataFrame(synt,geometry=gpd.geoseries.points_from_xy(synt.x_centroid_4326,synt.y_centroid_4326),crs=4326)
# synt_geom.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/synthese_observations_2025-04-24T12_11_45.488Z.geojson',index=False)
biodiv.to_file(PATH+'/OUTILS/CARTOGRAPHIE/ESPACE DE TRAVAIL/SITES/Lone de la Negria/Faune-Flore/Données partenaires/1.Données nettoyées/BiodivAura_Synthese_Export_2026-04-21.geojson',index=False)