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

Open
camillemonchicourt opened this Issue Nov 15, 2017 · 2 comments

Comments

1 participant
@camillemonchicourt
Member

camillemonchicourt commented Nov 15, 2017

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 :

sensibilite-geonature

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 :

  • les schémas ref_nomenclatures et ref_geo pour la définition des règles de sensibilité
  • synthèse GN1 pour le stockage de la 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.

mcs-sensibilite

Fonction :

get_sensitivity_niv_preci(
	my_id_obs varchar, 
	my_date_obs date,
	my_cd_ref int, 
	my_geom geometry,
	my_criterias varchar[]
)

Permet de calculer le niveau de sensibilité d’une donnée.

PB :

  • NON prise en compte des critères
  • Non prise en compte d’un taxon ayant deux règles actives (Pas de cas à l’heure aujourd'hui entre le national et le régional LR)
  • Quelle dégradation quand une géométrie intersecte deux mailles, départements, communes ...

@camillemonchicourt camillemonchicourt added this to the V2 milestone Nov 15, 2017

@camillemonchicourt camillemonchicourt modified the milestones: V2, V2 - 2018 - Sprint April Apr 5, 2018

@camillemonchicourt camillemonchicourt modified the milestones: V2 - 2018 - Sprint April, V2 - 2018 - Sprint July Jul 2, 2018

@camillemonchicourt

This comment has been minimized.

Show comment
Hide comment
@camillemonchicourt

camillemonchicourt Sep 21, 2018

Member

@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 : PnEcrins/GeoNature-atlas@37b2c4d

Member

camillemonchicourt commented Sep 21, 2018

@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 : PnEcrins/GeoNature-atlas@37b2c4d

@camillemonchicourt

This comment has been minimized.

Show comment
Hide comment
@camillemonchicourt

camillemonchicourt Sep 23, 2018

Member

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 :

----- MAJ des données de la synthese

UPDATE gn_synthese.synthese SET id_nomenclature_sensitivity = r
FROM (
        SELECT id_synthese as id, gn_synthese.get_id_nomenclature_sensitivity(id_synthese::varchar, date_min::date, cd_ref, the_geom_local, NULL::varchar[]) r
        FROM gn_synthese.synthese s
        JOIN taxonomie.taxref t
        ON s.cd_nom = t.cd_nom
        WHERE id_nomenclature_sensitivity IS NULL
) a
WHERE a.id = id_synthese;

WITH niv_prec AS (
        SELECT ref_nomenclatures.get_id_nomenclature('NIV_PRECIS', t.cd_nomenclature) as id_diff_l, t.id_nomenclature
        FROM  ref_nomenclatures.t_nomenclatures t
        WHERE id_type = ref_nomenclatures.get_id_nomenclature_type('SENSIBILITE')
)
UPDATE  gn_synthese.synthese  SET id_nomenclature_diffusion_level = id_diff_l
FROM niv_prec
WHERE id_nomenclature = id_nomenclature_sensitivity;
Member

camillemonchicourt commented Sep 23, 2018

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 :

----- MAJ des données de la synthese

UPDATE gn_synthese.synthese SET id_nomenclature_sensitivity = r
FROM (
        SELECT id_synthese as id, gn_synthese.get_id_nomenclature_sensitivity(id_synthese::varchar, date_min::date, cd_ref, the_geom_local, NULL::varchar[]) r
        FROM gn_synthese.synthese s
        JOIN taxonomie.taxref t
        ON s.cd_nom = t.cd_nom
        WHERE id_nomenclature_sensitivity IS NULL
) a
WHERE a.id = id_synthese;

WITH niv_prec AS (
        SELECT ref_nomenclatures.get_id_nomenclature('NIV_PRECIS', t.cd_nomenclature) as id_diff_l, t.id_nomenclature
        FROM  ref_nomenclatures.t_nomenclatures t
        WHERE id_type = ref_nomenclatures.get_id_nomenclature_type('SENSIBILITE')
)
UPDATE  gn_synthese.synthese  SET id_nomenclature_diffusion_level = id_diff_l
FROM niv_prec
WHERE id_nomenclature = id_nomenclature_sensitivity;

@camillemonchicourt camillemonchicourt removed this from the V2 - 2018 - Sprint July milestone Oct 18, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment