-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calcul automatique sensibilité des données #284
Comments
@amandine-sahl a avancé sur le mécanisme de calcul automatique de la sensibilité d'une observation : https://github.com/PnX-SI/GeoNature/blob/sensitivity/data/core/sensitivity.sql Et sa prise en compte au niveau de GeoNature-atlas : PnX-SI/GeoNature-atlas@37b2c4d |
Pour la sensibilité il faut importer les données dans la BDD de GeoNature. Les données national + LR et le script d'import de ces données : http://geonature.fr/data/inpn/sensitivity/ Puis lancer le calcul manuellement :
|
Pour le moment, ce qui a été fait écrit la sensibilité dans la Synthèse. Il est donc prévu une solution similaire à celle utilisée pour la Validation, c'est-à-dire stocker la sensibilité des occurrences dans une table transversale dans le schéma |
Le SINP vient de mettre à jour sa documentation sur la sensibilité, ainsi que la liste des espèces sensibles, intégrant la liste nationale + les listes régionales : http://www.naturefrance.fr/ressources/referentiels/referentiel-de-sensibilite |
Intéressant. Pas d'avancée pour la région PACA ? |
Non, pas de liste en PACA à ma connaissance. |
J'ai pas très bien compris l'exemple. Il correspond à quoi ? Même si la nomenclature est bien "Niveau de précision", je renommerai bien la fonction |
Pour activer les règles SINP pour la région LR il y a un script qui permet de prendre en compte les périmètres de sensibilités spécifiques : |
Synthèse des premiers développements : d0773c5...90d8709
|
Pour le moment, la structure des tables et l'intégration des règles nationales (+ départementales désactivées par défaut) ainsi que la fonction permettant de calculer la sensibilité d'une occurrence de taxon sont intégrées dans la version 2.1.0. Par contre, le calcul n'est pas automatisé car la méthode pour cela est à définir.
|
! Lors de l'installation ou de la mise à jour de la version 2.1.0, l'import des données des règles nationales et régionales ne fonctionne pas pour des raisons de chemins |
Ce n'est pas le problème identifié et corrigé ici : bab3dba |
Effectivement désolée. Par contre ce serait bien d'essayer passer des variables via pgsql -v De façon à éviter de copier les fichiers de faire une commande sed |
La partie BDD permettant de stocker les règle et de calculer la sensibilité d'une observation est fonctionnelle depuis la version 2.1.0. |
Utilisation de la fonction, à affiner (avec la temporalité notamment) : -- Désactiver trigger de date car sinon cela laisse penser que la donnée a été modifiée
ALTER TABLE gn_synthese.synthese DISABLE TRIGGER tri_meta_dates_change_synthese;
-- On remplit gn_sensitivity.cor_sensitivity_synthese quand on a un UUID (un trigger renseigne ensuite la synthèse à plat)
-- A ne pas faire finalement
-- Car on a retenu le fait de ne pas utiliser ni remplir cette table cor_sensitivity_synthese, mais seulement le champs dans la synthèse. C'est le niveau de diffusion qui peut être modifié manuellement, pas le niveau de sensibilité
WITH data AS (
SELECT DISTINCT s.unique_id_sinp,s.date_min::date,
taxonomie.find_cdref(s.cd_nom) cd_ref,
the_geom_local,
('{"STATUT_BIO": ' || id_nomenclature_bio_status::text || '}')::jsonb as cr
FROM gn_synthese.synthese s
LEFT OUTER JOIN gn_sensitivity.cor_sensitivity_synthese cs
ON cs.uuid_attached_row = s.unique_id_sinp
WHERE cs.uuid_attached_row IS NULL
AND NOT unique_id_sinp IS NULL
AND s.id_nomenclature_sensitivity IS NULL
)
INSERT INTO gn_sensitivity.cor_sensitivity_synthese (uuid_attached_row, id_nomenclature_sensitivity)
SELECT DISTINCT unique_id_sinp , gn_sensitivity.get_id_nomenclature_sensitivity(
date_min::date,
cd_ref,
the_geom_local,
cr
)
FROM data s;
-- Si on n'a pas de UUID on remplit directement dans le champs à plat dans la Synthèse
-- On a retenu de ne faire que cette méthode, pour toutes les données
UPDATE gn_synthese.synthese SET id_nomenclature_sensitivity = gn_sensitivity.get_id_nomenclature_sensitivity(
date_min::date,
taxonomie.find_cdref(cd_nom),
the_geom_local,
('{"STATUT_BIO": ' || id_nomenclature_bio_status::text || '}')::jsonb
)
WHERE id_nomenclature_sensitivity IS NULL AND unique_id_sinp IS NULL;
-- Calculer les niveaux de diffusion en fonction de la sensibilité
-- Attention, vérifier les id_nomenclature
-- Et il ne faudrait le faire que si il n'ont pas été renseigné/modifié manuellement
-- Donc que si la valeur automatique est supérieure à la valeur existante
UPDATE gn_synthese.synthese SET id_nomenclature_diffusion_level = 140 WHERE id_nomenclature_sensitivity = 67 AND id_nomenclature_diffusion_level IS NULL;
UPDATE gn_synthese.synthese SET id_nomenclature_diffusion_level = 141 WHERE id_nomenclature_sensitivity = 68 AND id_nomenclature_diffusion_level IS NULL;
UPDATE gn_synthese.synthese SET id_nomenclature_diffusion_level = 142 WHERE id_nomenclature_sensitivity = 69 AND id_nomenclature_diffusion_level IS NULL;
UPDATE gn_synthese.synthese SET id_nomenclature_diffusion_level = 143 WHERE id_nomenclature_sensitivity = 70 AND id_nomenclature_diffusion_level IS NULL;
UPDATE gn_synthese.synthese SET id_nomenclature_diffusion_level = 144 WHERE id_nomenclature_sensitivity = 71 AND id_nomenclature_diffusion_level IS NULL;
-- Réactiver trigger date après calcul
ALTER TABLE gn_synthese.synthese ENABLE TRIGGER tri_meta_dates_change_synthese; |
La définition de la sensibilité des données est défini par un Groupe de travail du SINP qui a travaillé sur un guide méthodologique : http://www.naturefrance.fr/actions/groupe-de-travail-donnees-sensibles
Celui-ci a aussi abouti à la mise en place d'une liste des espèces sensibles au niveau national, de leur contexte de sensibilité et de leur niveau de diffusion (disponible sur la même page).
Cette liste nationale peut être complétée au niveau régional comme c'est le cas en Languedoc-Roussillon : http://www.naturefrance.fr/languedoc-roussillon/referentiel-des-donnees-sensibles
Nous prévoyons donc d'intégrer un mécanisme qui permettra de qualifier la sensibilité d'une observation automatiquement dans la BDD.
Par défaut les critères seront basés sur la liste nationale, mais chaque structure pourra y intégrer aussi les critères régionaux ainsi que d'éventuels critères locaux/spécifiques.
PREMIÈRE RÉFLEXION/PROPOSITION DE DÉCLINAISON TECHNIQUE :
Chaque taxon a un ou plusieurs jeux de règles =1-n enregistrement(s) dans une table des règles de sensibilité (la règle générale sera 1 règle par taxon mais si plusieurs périodes peuvent concerner un même taxon, il faudra créer autant de règles que de périodes pour ce taxon).
Chaque règle est représentée par un ou plusieurs champs dans cette table.
A chaque règle correspond un niveau.
Chaque règle peut tourner indépendamment.
Les règles temporelles et spatiales sont totalement automatisables à la création de l’occurrence.
La règle temporelle de durée doit être relancée régulièrement sur les données sensibles pour voir si la sensibilité a expiré.
Les règles attributaires peuvent ou non êtres rattachées à une ou des nomenclatures. De ce fait leur définition n’est pas totalement automatisable.
Si plusieurs règles concernent un même taxon (plusieurs périodes par exemple), il faudra définir un ordre d’exécution pour ne pas qu’elles s’annulent mutuellement…
Pour gérer les interventions manuelles à opérer sur les occurrences, en plus du niveau de sensibilité, il y a lieu de stocker si l’attribution de la sensibilité s’est fait manuellement ou automatiquement ainsi que le statut de la sensibilité (sensibilité valide = on n’y revient pas, sensibilité à valider = nécessite une intervention humaine).
############################################################################
Ci-dessous une proposition d'intégration des règles de sensibilité dans la BDD. Il est branché sur :
ref_nomenclatures
etref_geo
pour la définition des règles de sensibilitéPour le moment, je n'ai pas géré les critères car c'est encore flou et j’attends d'avoir le modèle de la "nouvelle synthèse" finalisée.
Fonction :
Permet de calculer le niveau de sensibilité d’une donnée.
PB :
The text was updated successfully, but these errors were encountered: