init
This commit is contained in:
parent
44b134119b
commit
017d40db6a
98
tmp/PG_AVAL.py
Normal file
98
tmp/PG_AVAL.py
Normal file
@ -0,0 +1,98 @@
|
||||
import geopandas as gpd
|
||||
import json
|
||||
from shapely.geometry import shape
|
||||
from pycen import con_gn
|
||||
|
||||
PATH = '/home/colas/Documents/tmp/AVAL/'
|
||||
gnaura = gpd.pd.read_csv(PATH+'BIODIVAURA_synthese_observations_2025-06-16T10_23_13.147Z.csv',sep=';')
|
||||
gncen38 = gpd.pd.read_csv(PATH+'GN_synthese_observations_2025-06-16T10_23_43.122Z.csv',sep=';',dtype={'niveau_precision_diffusion':str})
|
||||
|
||||
gnaura = gpd.GeoDataFrame(gnaura, geometry=gpd.points_from_xy(gnaura.x_centroid_4326,gnaura.y_centroid_4326),crs=4326)
|
||||
gncen38 = gpd.GeoDataFrame(gncen38, geometry=gpd.points_from_xy(gncen38.x_centroid_4326,gncen38.y_centroid_4326),crs=4326)
|
||||
|
||||
gnaura.dropna(how='all',inplace=True,axis=1)
|
||||
gncen38.dropna(how='all',inplace=True,axis=1)
|
||||
|
||||
# Suppression des données CEN38 dans gnaura
|
||||
lstdrop = gnaura[gnaura.uuid_perm_sinp.isin(gncen38.uuid_perm_sinp)].index
|
||||
gnaura.drop(lstdrop,inplace=True)
|
||||
|
||||
# Completion phylogenie BIODIVAURA
|
||||
sql = """
|
||||
SELECT
|
||||
t.cd_ref,
|
||||
t.regne,
|
||||
-- t.phylum,
|
||||
-- t.classe,
|
||||
-- t.ordre,
|
||||
-- t.famille,
|
||||
t.group1_inpn,
|
||||
t.group2_inpn,
|
||||
--t.nom_vern,
|
||||
--t.nom_complet,
|
||||
--t.nom_valide,
|
||||
--t.lb_nom,
|
||||
--s.*
|
||||
--s.rq_statut,
|
||||
--s.code_statut,
|
||||
--s.cd_type_statut,
|
||||
--s.label_statut,
|
||||
--s.full_citation,
|
||||
--s.doc_url
|
||||
t.group3_inpn
|
||||
FROM taxonomie.taxref t
|
||||
--JOIN taxonomie.v_bdc_status s USING (cd_nom)
|
||||
WHERE t.cd_ref IN {cd_nom}
|
||||
;""".format(cd_nom = tuple(gnaura.cd_ref.unique()))
|
||||
phylo = gpd.pd.read_sql_query(sql,con_gn)
|
||||
gnaura = gnaura.merge(phylo,how='left',left_on='cd_ref',right_on='cd_ref',copy=False)
|
||||
# Suppression des données polygones dans gnaura
|
||||
# gnaura = gnaura[~gnaura.geojson_4326.str.contains('polygon',case=False,na=False)]
|
||||
|
||||
# Compilation des données
|
||||
compil = gpd.pd.concat([gncen38,gnaura])
|
||||
aura_imprecise = compil[compil.geojson_4326.str.contains('polygon',case=False,na=False)].copy()
|
||||
compilF = compil[~compil.geojson_4326.str.contains('polygon',case=False,na=False)].copy()
|
||||
compilF.to_csv(PATH+'compile_38&AURA_synthese_observations_2025-06-16.csv',sep=';',index=False)
|
||||
compilF.to_crs(2154).to_file(PATH+'compile_38&AURA_synthese_observations.geojson')
|
||||
|
||||
# Ecriture des données imprécises
|
||||
geom = [shape(json.loads(i)) for i in aura_imprecise.geojson_4326]
|
||||
gdf_imprecis = gpd.GeoDataFrame(aura_imprecise,geometry=geom,crs=4326)
|
||||
aura_imprecise.to_csv(PATH+'AURA_synthese_observations_imprecise_2025-06-16.csv',sep=';',index=False)
|
||||
gdf_imprecis.to_crs(2154).to_file(PATH+'AURA_synthese_observations_imprecise.geojson')
|
||||
|
||||
# Génération du fichier liste_sp
|
||||
liste_sp = compilF[['cd_ref','date_debut','date_fin','nom_valide','nom_vernaculaire','regne','group1_inpn','group2_inpn','group3_inpn','classe','ordre','famille','nombre_min','nombre_max','observateurs','fournisseur','communes','x_centroid_4326','y_centroid_4326']].copy()
|
||||
liste_sp.sort_values(by=['cd_ref','date_debut'],inplace=True)
|
||||
liste_sp.drop_duplicates(subset='cd_ref',keep='last',inplace=True)
|
||||
liste_sp.to_excel(PATH+'liste_sp_AVAL.xlsx',index=False,sheet_name='liste_sp')
|
||||
|
||||
# intersection des sites
|
||||
gdf = gpd.read_file(PATH+'AVAL_ZO_Zone tampon_600m.gpkg')[['nom_ens','geometry']]
|
||||
dfF = (compilF.to_crs(2154).sjoin(gdf, how='left')
|
||||
.drop(columns=['geometry','index_right',"Unnamed: 0"],errors='ignore')
|
||||
)
|
||||
dfF = dfF[[
|
||||
'nom_ens','id_synthese', 'date_debut', 'date_fin', 'heure_debut',
|
||||
'heure_fin', 'cd_nom', 'cd_ref', 'nom_valide', 'nom_vernaculaire',
|
||||
'nom_cite', 'regne', 'group1_inpn', 'group2_inpn', 'group3_inpn',
|
||||
'classe', 'ordre', 'famille', 'rang_taxo', 'nombre_min', 'nombre_max',
|
||||
'alti_min', 'alti_max', 'observateurs', 'determinateur', 'communes',
|
||||
'geometrie_wkt_4326', 'x_centroid_4326', 'y_centroid_4326', 'nom_lieu',
|
||||
'comment_releve', 'comment_occurrence', #'validateur',
|
||||
'niveau_validation', 'jdd_nom', 'jdd_uuid', 'jdd_id', 'ca_nom',
|
||||
'ca_uuid', 'ca_id', 'precision_geographique', 'nature_objet_geo',
|
||||
'type_regroupement', 'technique_observation', 'biologique_statut',
|
||||
'etat_biologique', 'biogeographique_statut', 'naturalite',
|
||||
'preuve_existante', 'stade_vie', 'sexe', #'niveau_precision_diffusion',
|
||||
'objet_denombrement', 'type_denombrement', 'niveau_sensibilite',
|
||||
'statut_observation', 'floutage_dee', 'statut_source', 'type_info_geo',
|
||||
'methode_determination', 'comportement', 'id_origine', 'uuid_perm_sinp',
|
||||
'uuid_perm_grp_sinp', 'date_creation', 'date_modification',
|
||||
'champs_additionnels', 'fournisseur', 'geojson_4326',
|
||||
'statut_biologique', 'type_source', 'type_precision',
|
||||
'sensibilite', 'confidentialite'
|
||||
]]
|
||||
dfF.rename(columns={'nom':'nom_site'},inplace=True)
|
||||
dfF.to_csv(PATH+'compile_38&AURA_synthese_observations_2025-06-16.csv', sep=";")
|
||||
Loading…
x
Reference in New Issue
Block a user