From 2833ff1a3a29c46dcd06eb430c5e0d213a283926 Mon Sep 17 00:00:00 2001 From: Colas Geier Date: Mon, 22 Sep 2025 10:10:54 +0200 Subject: [PATCH] correct nomenclature columns SRID --- .../EXPORT/flore_export_sinp_with_metadata.py | 106 +++++++++--------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/5_GEONATURE/EXPORT/flore_export_sinp_with_metadata.py b/5_GEONATURE/EXPORT/flore_export_sinp_with_metadata.py index 075dc0c..e7cd8de 100644 --- a/5_GEONATURE/EXPORT/flore_export_sinp_with_metadata.py +++ b/5_GEONATURE/EXPORT/flore_export_sinp_with_metadata.py @@ -39,14 +39,14 @@ CREATE VIEW gn_exports.v_synthese_sinp_with_metadata_flora_for_gn2pg AS geo.departement, geo.commune, NULL::text AS lieu_dit, - CASE - WHEN "position"(sp.srtext::text, 'GEOGCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'GEOGCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'GEOGCS["'::text, ''::text), '",'::text) - 1) - WHEN "position"(sp.srtext::text, 'PROJCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'PROJCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'PROJCS["'::text, ''::text), '",'::text) - 1) - WHEN "position"(sp.srtext::text, 'GEOCCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'GEOCCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'GEOCCS["'::text, ''::text), '",'::text) - 1) - WHEN "position"(sp.srtext::text, 'COMPD_CS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'COMPD_CS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'COMPD_CS["'::text, ''::text), '",'::text) - 1) - ELSE 'Non défini'::text - END AS sys_coord, - st_srid(s.the_geom_4326) AS srid, + CASE + WHEN "position"(sp.srtext::text, 'GEOGCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'GEOGCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'GEOGCS["'::text, ''::text), '",'::text) - 1) + WHEN "position"(sp.srtext::text, 'PROJCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'PROJCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'PROJCS["'::text, ''::text), '",'::text) - 1) + WHEN "position"(sp.srtext::text, 'GEOCCS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'GEOCCS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'GEOCCS["'::text, ''::text), '",'::text) - 1) + WHEN "position"(sp.srtext::text, 'COMPD_CS'::text) = 1 THEN "substring"(replace(sp.srtext::text, 'COMPD_CS["'::text, ''::text), 1, "position"(replace(sp.srtext::text, 'COMPD_CS["'::text, ''::text), '",'::text) - 1) + ELSE 'Non défini'::text + END AS sys_coord, + st_srid(s.the_geom_4326) AS "SRID", st_astext(s.the_geom_4326) AS localisation_wkt, st_x(st_centroid(s.the_geom_4326)) AS coord_x, st_y(st_centroid(s.the_geom_4326)) AS coord_y, @@ -67,19 +67,20 @@ CREATE VIEW gn_exports.v_synthese_sinp_with_metadata_flora_for_gn2pg AS NULL::text AS surface, CASE WHEN (s."additional_data"::json#>>'{strate_flore}') IS NOT NULL THEN (s."additional_data"::json#>>'{strate_flore}')::text - WHEN s."additional_data"::json#>>'{id_nomenclature_strate_flore}' IS NOT NULL + WHEN s."additional_data"::json#>>'{id_nomenclature_strate_flore}' IS NOT NULL THEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text - ELSE NULL::text END AS strate_vegetation, + ELSE NULL::text + END AS strate_vegetation, CASE WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate herbacée'::text THEN (s."additional_data"::json#>>'{heigth_herbace}')::text - WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate arbustive'::text + WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate arbustive'::text THEN (s."additional_data"::json#>>'{heigth_arbust}')::text - WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate arborée'::text + WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate arborée'::text THEN (s."additional_data"::json#>>'{heigth_arbore}')::text - WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate sous-arbustive'::text + WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate sous-arbustive'::text THEN (s."additional_data"::json#>>'{heigth_ssarbust}')::text - ELSE NULL::text END - AS hauteur_strate, + ELSE NULL::text + END AS hauteur_strate, CASE WHEN s."additional_data"::json#>>'{id_nomenclature_strate_flore}' IS NOT NULL THEN CASE WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate herbacée'::text THEN (s."additional_data"::json#>>'{rcvmt_herbace}')::text @@ -90,7 +91,8 @@ CREATE VIEW gn_exports.v_synthese_sinp_with_metadata_flora_for_gn2pg AS WHEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_strate_flore}')::int)::text = 'Strate sous-arbustive'::text THEN (s."additional_data"::json#>>'{rcvmt_ssarbust}')::text ELSE NULL::text END - ELSE NULL::text END AS recouvrement_strate, + ELSE NULL::text + END AS recouvrement_strate, s.cd_hab AS cdhab, NULL::text AS cdhab_v, NULL::text AS code_eur, @@ -102,10 +104,11 @@ CREATE VIEW gn_exports.v_synthese_sinp_with_metadata_flora_for_gn2pg AS s.nom_cite AS nom_cite, s.cd_nom as cd_nom, CASE WHEN (s."additional_data"::json#>>'{effectif_textuel}') IS NOT NULL - THEN (s."additional_data"::json#>>'{effectif_textuel}')::text - WHEN s."additional_data"::json#>>'{id_nomenclature_braunblanq_abdom}' IS NOT NULL - THEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_braunblanq_abdom}')::int)::text - ELSE NULL::text END AS abondance, + THEN (s."additional_data"::json#>>'{effectif_textuel}')::text + WHEN s."additional_data"::json#>>'{id_nomenclature_braunblanq_abdom}' IS NOT NULL + THEN ref_nomenclatures.get_nomenclature_label((s."additional_data"::json#>>'{id_nomenclature_braunblanq_abdom}')::int)::text + ELSE NULL::text + END AS abondance, NULL::text AS sociabilite, n11.mnemonique AS sexe, n7.mnemonique AS naturalite, @@ -129,43 +132,44 @@ CREATE VIEW gn_exports.v_synthese_sinp_with_metadata_flora_for_gn2pg AS n16.mnemonique AS floutage_dee, NULL::text AS methode_observation, CASE WHEN ts.name_source like 'MONITORING_%%' - THEN split_part(ts.name_source,'_',2) - ELSE 'RELEVE FLORE'::text END AS protocole, + THEN split_part(ts.name_source,'_',2) + ELSE 'RELEVE FLORE'::text + END AS protocole, n6.mnemonique AS etat_biologique, n5.mnemonique AS statut_biologique, n10.mnemonique AS stade_vie, n19.mnemonique AS methode_determination, n3.mnemonique AS comportement, - s.additional_data - '{effectif_textuel,strate_flore,code_atlas,id_nomenclature_braunblanq_abdom,id_nomenclature_strate_flore}'::text[] AS additional_data + s.additional_data - '{effectif_textuel,strate_flore,code_atlas,id_nomenclature_braunblanq_abdom,id_nomenclature_strate_flore}'::text[] AS donnees_additionnelles FROM gn_synthese.synthese s - JOIN ds ON ds.id_dataset = s.id_dataset - JOIN af ON ds.id_acquisition_framework = af.id_acquisition_framework - JOIN geo ON s.id_synthese = geo.id_synthese - JOIN spatial_ref_sys sp ON st_srid(s.the_geom_4326) = sp.auth_srid - LEFT JOIN ref_habitats.habref h ON h.cd_hab = s.cd_hab - LEFT JOIN pr_occtax.t_releves_occtax occ ON occ.unique_id_sinp_grp = s.unique_id_sinp_grp - LEFT JOIN ref_nomenclatures.t_nomenclatures n1 ON s.id_nomenclature_geo_object_nature = n1.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n2 ON s.id_nomenclature_grp_typ = n2.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n3 ON s.id_nomenclature_behaviour = n3.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n4 ON s.id_nomenclature_obs_technique = n4.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n5 ON s.id_nomenclature_bio_status = n5.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n6 ON s.id_nomenclature_bio_condition = n6.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n7 ON s.id_nomenclature_naturalness = n7.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n8 ON s.id_nomenclature_exist_proof = n8.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n9 ON s.id_nomenclature_diffusion_level = n9.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n10 ON s.id_nomenclature_life_stage = n10.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n11 ON s.id_nomenclature_sex = n11.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n12 ON s.id_nomenclature_obj_count = n12.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n13 ON s.id_nomenclature_type_count = n13.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n14 ON s.id_nomenclature_sensitivity = n14.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n15 ON s.id_nomenclature_observation_status = n15.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n16 ON s.id_nomenclature_blurring = n16.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n17 ON s.id_nomenclature_source_status = n17.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n18 ON s.id_nomenclature_info_geo_type = n18.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n19 ON s.id_nomenclature_determination_method = n19.id_nomenclature - LEFT JOIN ref_nomenclatures.t_nomenclatures n20 ON s.id_nomenclature_valid_status = n20.id_nomenclature - LEFT JOIN taxonomie.taxref n21 ON s.cd_nom = n21.cd_nom - JOIN gn_synthese.cor_area_synthese cas ON cas.id_synthese = s.id_synthese + JOIN ds ON ds.id_dataset = s.id_dataset + JOIN af ON ds.id_acquisition_framework = af.id_acquisition_framework + JOIN geo ON s.id_synthese = geo.id_synthese + JOIN spatial_ref_sys sp ON st_srid(s.the_geom_4326) = sp.auth_srid + LEFT JOIN ref_habitats.habref h ON h.cd_hab = s.cd_hab + LEFT JOIN pr_occtax.t_releves_occtax occ ON occ.unique_id_sinp_grp = s.unique_id_sinp_grp + LEFT JOIN ref_nomenclatures.t_nomenclatures n1 ON s.id_nomenclature_geo_object_nature = n1.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n2 ON s.id_nomenclature_grp_typ = n2.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n3 ON s.id_nomenclature_behaviour = n3.id_nomenclature + -- LEFT JOIN ref_nomenclatures.t_nomenclatures n4 ON s.id_nomenclature_obs_technique = n4.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n5 ON s.id_nomenclature_bio_status = n5.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n6 ON s.id_nomenclature_bio_condition = n6.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n7 ON s.id_nomenclature_naturalness = n7.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n8 ON s.id_nomenclature_exist_proof = n8.id_nomenclature + -- LEFT JOIN ref_nomenclatures.t_nomenclatures n9 ON s.id_nomenclature_diffusion_level = n9.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n10 ON s.id_nomenclature_life_stage = n10.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n11 ON s.id_nomenclature_sex = n11.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n12 ON s.id_nomenclature_obj_count = n12.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n13 ON s.id_nomenclature_type_count = n13.id_nomenclature + -- LEFT JOIN ref_nomenclatures.t_nomenclatures n14 ON s.id_nomenclature_sensitivity = n14.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n15 ON s.id_nomenclature_observation_status = n15.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n16 ON s.id_nomenclature_blurring = n16.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n17 ON s.id_nomenclature_source_status = n17.id_nomenclature + -- LEFT JOIN ref_nomenclatures.t_nomenclatures n18 ON s.id_nomenclature_info_geo_type = n18.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n19 ON s.id_nomenclature_determination_method = n19.id_nomenclature + LEFT JOIN ref_nomenclatures.t_nomenclatures n20 ON s.id_nomenclature_valid_status = n20.id_nomenclature + LEFT JOIN taxonomie.taxref n21 ON s.cd_nom = n21.cd_nom + JOIN gn_synthese.cor_area_synthese cas ON cas.id_synthese = s.id_synthese -- ADD CEN_38 JOIN gn_synthese.t_sources ts ON ts.id_source = s.id_source