fonctionnalites:geonature-atlas:integration-biodiv-territoire

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
fonctionnalites:geonature-atlas:integration-biodiv-territoire [2025/06/12 09:07] – [Exporter la liste des taxons d'un territoire] jpmilcentfonctionnalites:geonature-atlas:integration-biodiv-territoire [2025/07/11 18:46] (Version actuelle) – [Contraintes Atlas v2 et GN branche feat/sinp] jpmilcent
Ligne 3: Ligne 3:
 ===== Infos ===== ===== Infos =====
   * [[https://docs.google.com/document/d/1dspUNfDYwVwVX71dsiJlfpnk4jGTxTA_/edit?usp=sharing&ouid=104121426169692604797&rtpof=true&sd=true|Cahier des charges initial]]   * [[https://docs.google.com/document/d/1dspUNfDYwVwVX71dsiJlfpnk4jGTxTA_/edit?usp=sharing&ouid=104121426169692604797&rtpof=true&sd=true|Cahier des charges initial]]
 +  * [[https://observatoire-biodiversite.nantesmetropole.fr/area/21727|Fiche territoire Atlas de Nantes Métropole]]
 +  * [[https://atlas.biodiversite-auvergne-rhone-alpes.fr/commune/07232|Fiche Commune avec iFrame Biodiv'Territoire - Atlas Biodiv'AURA]]
 +  * [[https://biodiv-occitanie.fr/commune/30249|Fiche Commune avec filtre par groupe taxonomique - Atlas Biodiv'Occitanie ]]
 ===== Rappel du contexte ===== ===== Rappel du contexte =====
  
Ligne 57: Ligne 60:
 Sa mise en œuvre dans Biodiv’AURA Atlas se fera sur la fiche Territoire en ajoutant un bouton "Téléchargement (csv)", à côté de la barre de filtre "Filtrer les espèces". Sa mise en œuvre dans Biodiv’AURA Atlas se fera sur la fiche Territoire en ajoutant un bouton "Téléchargement (csv)", à côté de la barre de filtre "Filtrer les espèces".
  
-Les champs "Espèce menacée" et "Espèce réglementée" devront être remplis en tenant compte des statuts définis dans le tableau ci-dessous (Annexe 1).+Les champs "Espèce menacée" et "Espèce réglementée" devront s'appuyer sur une VM issue des tables de la BDC Statuts et les textes "actifs" indiqués dans la base. Une espèce sera considéré comme menacé si elle possède les statuts de conservations <color white/#ed1c24><à définir></color> sur les listes rouges <color white/#ed1c24><à définir></color>. Les listes rouges à prendre en compte pour le statut de menace devront être configurable.
  
 === Questions === === Questions ===
Ligne 64: Ligne 67:
   * <todo>Le champ menace n’est-il pas redondant avec le champ « espèce menacée » ?</todo>   * <todo>Le champ menace n’est-il pas redondant avec le champ « espèce menacée » ?</todo>
   * <todo>Que doit on mettre comme valeurs pour les champs "Espèce menacée" et "Espèce réglementée" ?</todo>   * <todo>Que doit on mettre comme valeurs pour les champs "Espèce menacée" et "Espèce réglementée" ?</todo>
-  * <todo>Doit on ajouter un champ "Espèce remarquable" ? Si oui, quel type de valeur pour ce champ ?</todo>+  * <todo>Doit on ajouter un champ "Espèce remarquable" ? Si oui, quel type de valeur pour ce champ ?</todo> C'est un attribut Taxhub => récupérer la valeur de l'attribut. 
 +  * <todo>Pour l'export, si on se base sur une VM doit on exporter toutes les champs présents ? Utilise-t-on un paramètre de config pour limiter les champs exportés ?</todo> 
 + 
 +=== Correspondance type de statuts et notions === 
 +  * **Protection** : PN, PR, PD. 
 +  * **Réglementation** : REGLII, REGLLUTTE, REGL, REGLSO. 
 +  * **Conservation/Menace** : LRM, LRE, LRN, LRR, LRD. 
 ==== Ajout du nombre de taxons menacés ==== ==== Ajout du nombre de taxons menacés ====
 Sur la fiche Territoire, dans l'en-tête des stats, ajouter le nombre de taxons menacés entre les chiffres des espèces protégés et des espèces remarquables. Sur la fiche Territoire, dans l'en-tête des stats, ajouter le nombre de taxons menacés entre les chiffres des espèces protégés et des espèces remarquables.
Ligne 78: Ligne 88:
 L'icône "taxon menacé" sera placé entre celui indiquant un taxon réglementé et un taxon remarquable. Il sera mis en avant, par exemple en l'affichant en rouge, lorsque le statut de conservation du taxon est défavorable. L'icône "taxon menacé" sera placé entre celui indiquant un taxon réglementé et un taxon remarquable. Il sera mis en avant, par exemple en l'affichant en rouge, lorsque le statut de conservation du taxon est défavorable.
  
 +=== Tickets existants ===
 +  * [[https://github.com/PnX-SI/GeoNature-atlas/issues/636|#636 - Remise à plat des indicateurs de patrimonialité et protection]]
 ==== Ajout de filtres ==== ==== Ajout de filtres ====
 Sur la fiche Territoire, au niveau de l'entête de la liste des taxons, ajouter à la liste des filtres avancés des taxons, les nouveaux filtres suivant : Sur la fiche Territoire, au niveau de l'entête de la liste des taxons, ajouter à la liste des filtres avancés des taxons, les nouveaux filtres suivant :
   * "Espèces réglementées uniquement"   * "Espèces réglementées uniquement"
   * "Espèces menacées uniquement"   * "Espèces menacées uniquement"
 +
 +=== Questions/À faire ===
 +
 +  * <todo>Voir s'il est possible avec Boostrap 5 de simplifier l'affichage actuel</todo> : utiliser [[https://getbootstrap.com/docs/5.2/components/dropdowns/|un bouton de type dropdown]] incluant les toggles actuel ou des cases à cocher. A tester sur écran tactile et petit écran.
 +
 +==== Ajout d'un filtre par groupe taxo ====
 +Les utilisateurs doivent pouvoir filtrer par groupe taxonomique la liste des taxons. L'ajout  d'un bouton de type "dropdown" à gauche du filtre "Filtrer les espèces" pourrait permettre de sélectionner "Espèces" (par défaut) ou un groupe particulier.
 +
 +=== Questions/À faire ===
 +
 +  * <todo>Voir quel groupe taxonomique INPN est le plus adapté (attention au problème des insectes)</todo>
 +
  
 ==== Ajout d'une fenêtre modale "Plus d'infos" ==== ==== Ajout d'une fenêtre modale "Plus d'infos" ====
Ligne 115: Ligne 139:
   * la nécessité retravailler les développements existants dans l'Atlas afin de la rendre compatible avec une base de données GeoNature de plusieurs dizaines de millions d'observations   * la nécessité retravailler les développements existants dans l'Atlas afin de la rendre compatible avec une base de données GeoNature de plusieurs dizaines de millions d'observations
   * de l'ajout depuis 2021 d'une partie de ces développements dans le code de l'Atlas   * de l'ajout depuis 2021 d'une partie de ces développements dans le code de l'Atlas
 +
 +===== Contraintes Atlas v2 et GN branche feat/sinp =====
 +  * Nécessite de rajouter les tables suivante à la base GeoNature 2.10 branche ''feat/sinp'' : [[https://github.com/PnX-SI/RefGeo/blob/master/src/ref_geo/migrations/data/ref_geo_cor.sql#L1C1-L23C94|ref_geo.cor_areas]]
 +  * Nécessite d'activer les zones géo à prendre en compte (SINP, DEP, COM, PNR) : <code sql>
 +UPDATE ref_geo.l_areas SET
 +enable = TRUE
 +WHERE id_type = ref_geo.get_id_area_type_by_code('PNR');
 +</code>
 +  * Nécessite de peupler la table ''ref_geo.cor_areas'' : <code sql>
 +INSERT INTO ref_geo.cor_areas (
 +    id_area_group,
 +    id_area
 +)
 +  SELECT
 +    p.id_area AS id_area_goup,
 +    c.id_area
 +  FROM ref_geo.l_areas AS p, ref_geo.l_areas AS c
 +  WHERE p.id_type = ref_geo.get_id_area_type_by_code('SINP')
 +    AND p."enable" = TRUE
 +    AND c.id_type = ref_geo.get_id_area_type_by_code('DEP')
 +    AND c."enable" = TRUE
 +  
 +  UNION
 +  
 +  SELECT
 +    p.id_area AS id_area_goup,
 +    c.id_area
 +  FROM ref_geo.l_areas AS p, ref_geo.l_areas AS c
 +  WHERE p.id_type = ref_geo.get_id_area_type_by_code('DEP')
 +    AND p."enable" = TRUE
 +    AND c.id_type = ref_geo.get_id_area_type_by_code('COM')
 +    AND c."enable" = TRUE 
 +    AND starts_with(c.area_code, p.area_code) 
 +  
 +  UNION
 +  
 +  SELECT
 +    p.id_area AS id_area_goup,
 +    c.id_area
 +  FROM ref_geo.l_areas AS p, ref_geo.l_areas AS c
 +  WHERE p.id_type = ref_geo.get_id_area_type_by_code('SINP')
 +    AND p."enable" = TRUE
 +    AND c.id_type = ref_geo.get_id_area_type_by_code('PNR')
 +    AND c."enable" = TRUE ;
 +</code>
 +  * Ajout de la colonne ''geom_4326'' sur ''ref_geo.l_areas'' et d'un trigger : <code sql>
 +ALTER TABLE ref_geo.l_areas ADD COLUMN geom_4326 public.geometry(multipolygon, 4326) NULL;
 +
 +
 +CREATE FUNCTION ref_geo.fct_tri_transform_geom()
 +  RETURNS trigger AS
 +  $BODY$
 +    DECLARE
 +      local_srid integer;
 +      c integer;
 +    BEGIN
 +      IF (TG_OP = 'INSERT') THEN
 +        -- Insert policy: we set geom from geom_4326 if geom is null and geom_4326 is not null, and reciprocally.
 +        -- If both geom and geom_4326 have been set (or both are null), we do nothing.
 +        IF (NEW.geom IS NULL AND NEW.geom_4326 IS NOT NULL) THEN
 +          NEW.geom = ST_Transform(NEW.geom_4326, local_srid);
 +          RAISE NOTICE '(I) Updated geom';
 +        ELSEIF (NEW.geom IS NOT NULL AND NEW.geom_4326 IS NULL) THEN
 +          NEW.geom_4326 = ST_Transform(NEW.geom, 4326);
 +          RAISE NOTICE '(I) Updated geom_4326';
 +        END IF;
 +      ELSEIF (TG_OP = 'UPDATE') THEN
 +        -- Update policy: we set geom from geom_4326 if geom_4326 have been updated to non null value,
 +        -- unless geom have also been modified to non null value, and reciprocally.
 +        -- We also set geom from geom_4326 if geom is modified to null, and geom_4326 is not null (modified or not),
 +        -- in order to be consistent when updating one or two columns at the same time.
 +        IF (
 +          NEW.geom_4326 IS NOT NULL
 +          AND
 +          (
 +            (OLD.geom IS NOT DISTINCT FROM NEW.geom AND OLD.geom_4326 IS DISTINCT FROM NEW.geom_4326)
 +            OR
 +            (NEW.geom IS NULL AND OLD.geom IS NOT NULL)
 +          )
 +        ) THEN
 +          SELECT INTO local_srid Find_SRID('ref_geo', 'l_areas', 'geom');
 +          NEW.geom = ST_Transform(NEW.geom_4326, local_srid);
 +          RAISE NOTICE '(U) Updated geom';
 +        ELSEIF (
 +          NEW.geom IS NOT NULL
 +          AND
 +          (
 +            (OLD.geom_4326 IS NOT DISTINCT FROM NEW.geom_4326 AND OLD.geom IS DISTINCT FROM NEW.geom)
 +            OR
 +            (NEW.geom_4326 IS NULL AND OLD.geom_4326 IS NOT NULL)
 +          )
 +        ) THEN
 +          NEW.geom_4326 = ST_Transform(NEW.geom, 4326);
 +          RAISE NOTICE '(U) Updated geom_4326';
 +        END IF;
 +      END IF;
 +      RETURN NEW;
 +    END;
 +  $BODY$
 +  LANGUAGE plpgsql VOLATILE
 +  COST 100;
 +</code>
 +  * Ajout de la colonne ''description'' sur la table ''ref_geo.l_areas'' : <code sql>
 +ALTER TABLE ref_geo.l_areas ADD COLUMN description text NULL;
 +</code>
 + 
  • fonctionnalites/geonature-atlas/integration-biodiv-territoire.1749719237.txt.gz
  • Dernière modification : 2025/06/12 09:07
  • de jpmilcent