-
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
[Validation et saisie] Création de profils d'espèces valides #917
Comments
En lien avec ce ticket |
Comparatif avec le travail entamé par Elsa :
Le reste de son travail consistait à une fonction qui validait automatiquement les données. C'est lié, mais pas forcément l'objectif visé ici. (mais effectivement je prévois d'utiliser le travail ci-dessous pour automatiser en partie notre validation, peut être à discuter dans un second temps quand on aura des profils :) ) |
Salut,
Je ne sais pas si la discussion à déjà été soulever mais je pense que l'utilisation de group2inpn est à éviter au maximum dans geonature. L'utilisation des cd_nom (ou liste de cd_nom) et de l'arbre taxonomique offre beaucoup plus de souplesse que group2inpn, très arbitraire, propre au muséum et au Taxref. |
Merci @jbdesbas pour ton retour. Suite à notre appel téléphonique, quelques retours sur nos échanges.
Coté prestations, je prévois de faire avancer les choses au début du second semestre (c'est bientôt!) pour implémenter ces connaissances là coté interface. Ca nous laissera donc toute la liberté d'implémenter de nouveaux paramètres, de nouveaux seuils etc par la suite, dès lors que tout ça se passe en amont de la création des différentes vues ui alimenteront l'interface :) Dans les paramètres (globaux, pas forcément par taxon), je pense ajouter des seuils pour les surfaces maximales, les imprécisions temporelles maximales (edit : plutôt utiliser les paramètres qui définissent le buffer et le pas de temps de la phénologie, pour rester cohérents et ne pas multiplier les paramètrages), ou le rang taxonomique maximal des données dont on tient compte pour produire les profils : ca permettra de ne pas établir des profils sur la base de données à la famille avec une année seule, même si celle-ci est considérée valide car vient de la biblio ou d'une collection par exemple. Je pense qu'on va pouvoir s'arrêter là sur la complexité le temps que cette première brique soit posée :) Merci donc à @jbdesbas pour ces avancées |
Un travail calculant les min et max de chaque taxons avait été initié par @gildeluermoz :
Le trigger qui lançait ces calculs avait été désactivé car il causait des erreurs et car ce n'était pas abouti. A supprimer si le travail initié ici remplace cela. |
Bonjour à tous, Une première mouture de ces profils a été mise en place :
Il reste quelques points à discuter avant de faire une PR :
Les prochaines étapes de mon coté sont :
Je n'ai pas encore fait de PR mais je partage ici le fichier avec le script tel qu'il est proposé actuellement. |
OK merci. Quelques remarques.
|
Une petite correction sur le script transmis ci-dessus :
Un ajout également : actuellement, les données à cheval sur 2 années (31/12->2/01) ne sont pas comptabilisées dans la phénologie, j'ai une solution en tête à tester pour ce point là. |
Concernant la proposition de Camille de créer un schéma gn_profiles (avec un s plutôt), ca a d'autant plus de sens si on part dans l'idée d'enrichir les profils à termes en tenant compte par exemple des habitats, si on veut à terme des fonctions de validation automatique basées sur ces profils, ou des fonctions de prédiction d'espèces basées sur ces profils. Pour le nom des fonctions, pas forcément de nom idéal mais on peut supprimer les "is_valid" qui allongent le nom pour une pertinence en effet discutable. Une incohérence dans les paramétrages relevée à l'instant : Les calculs de l'aire d'occurrences est basée sur le geom_local, et le paramètre de la précision spatiale est spatial_precision_m. L'unité du mètre n'est vraie que si on est en lambert 93. Si la geom locale est le wgs84, les tampons seront calculés non plus en mètres mais en degrés. Je vais le rectifier dans le nom du paramètre. |
PR #941 |
Il y a quelques semaines, une session de développement a été organisée sur le sujet avec @DonovanMaillard, @TheoLechemia, @lepontois, @jpm-cbna et @Adrien-Pajot. Le travail a été découpé en plusieurs tickets :
Documentation et aperçu des développements actuels : https://github.com/PnX-SI/GeoNature/blob/e76eecf307b9947763c95b3898d6c23a63d4f13d/docs/admin-manual.rst#profils-de-taxons La BDD est stabilisée, reste à finaliser quelques points sur le backend et frontend. |
Le travail en cours a été finalisé dans la branche https://github.com/PnX-SI/GeoNature/tree/feat/profil-taxon Il implémente trois nouvelles fonctionnalités:
Côté backend, trois nouvelles routes:
La route renvoie les informations suivantes:
|
Un grand merci Théo pour la reprise et finalisation de ce travail! :) |
Profils de taxons intégrés dans la 2.9.0 |
Bonjour,
Après le stage de Elsa Guilley (PnX-SI/gn_module_validation#5 (comment)), et après échanges avec @camillemonchicourt et @jbrieuclp , nous sommes en train de nous pencher sur la question de la validité/cohérence des données, pour :
Le but de ces profils est de connaitre les informations déjà valides de l'instance pour guider la validation ou la saisie de nouvelles données, en s'appuyant sur :
Pour ce faire, je propose le mcd suivant (on pourra naturellement revoir les noms de tables et vm pour plus de lisibilités si besoin) :
Avec la t_param_valid_profils :
Pour chaque groupe 2 inpn, on peut définir la valeur en m du tampon à appliquer autour de chaque obs pour définir une aire de répartition valide. Par exemple, 5000m pour les oiseaux, 1000m pour les insectes ,100m pour les angiospermes.
Paramétrable et ajustable pour chacun donc, selon notamment la complétude de sa base, la taille de son territoire et le niveau d’exigence souhaité par exemple.
On peut aussi définir si, pour un groupe 2 inpn donné, il faut tenir compte du stade ou non dans l’analyse de la phénologie (par défaut, non pour les plantes, oui pour les insectes par exemple)
Avec la t_altitude_range:
Tenir compte de la phénologie sans tenir compte de l’altitude en zones de montagne est problématique, mais tenir compte de l’altitude comme une variable continue complexifie trop les choses. J'ai donc fait le choix de discrétiser la variable.
Par défaut : 3 catégories larges qui permettent de ne pas poser de soucis pour les utilisateurs en plaine et qui restent simples et cohérentes au niveau écologique et phénologique pour la suite :
Etages planitiaires et collinéens : 0-700m
Etages montagnards et subalpins : 701-2000m
Etages alpins et nivaux : 2001-4811m
Naturellement, c'est paramétrable pour les plus pointus, ou ceux qui ont des jeux de données assez complets pour adopter un pas plus fin.
Avec la vm_valid_profil (180.000 données 2700 taxons, 1mn48 de calcul)
On stocke les infos simples et valides de notre instance, qui sont liées à un taxon dans son ensemble (cd_ref) :
Avec la vm_cor_taxa_phenology (quelques dizaines de secondes aussi)
On stocke pour chaque cd_ref les combinaisons valides de :
Je n'ai pas encore implémenté le fait de tenir compte ou non du stade par exemple mais ca viendra, ces 4 premiers éléments sont fonctionnels dans mes tests. Ces VM seraient rafraichies par un cron.
Je prévois d'y ajouter une vue "v_score_unvalidated_data" qui permet, pour chaque donnée en attente de validation dans la synthèse, de vérifier si :
Pour ne pas trop complexifier les choses et avoir des éléments de phénologie un minimum synthétisés/groupés, le pas de temps "semaine" est actuellement utilisé dans mes tests. Mais ca doit pouvoir se paramétrer pour utiliser la date précise, la semaine, le mois...
A ce stade, le but est donc de ne comparer la phénologie d'une chenille uniquement avec les connaissances des autres chenilles en termes de phénologie, mais pas en terme de répartition de l'espèce (qui se calcule au niveau du taxon donc pour toute l'espèce). Le bémol c'est que du coup, les stades non renseignés seront comparés aux autres non renseignés, mais pas le choix (et on avait qu'à saisir le stade :) )
Camille me proposait de prévoir des infos complémentaires dans la t_paramètre pour définir les statuts de validation qu'on considère "valides" ou non pour calculer ces règles.
Je propose d'y ajouter aussi des paramètres de précision : par exemple, ne pas utiliser les données trop imprécises au niveau date (plus de 30j entre date_min et max, on ignore au moment de définir le profil), ou au niveau altitudinal (une donnée avec plus de 200m entre alt_min et max, on ignore). Le but est de définir des profils avec plus ou moins de marge d'erreur, mais de pas aller trop loin non plus pour ne pas compléxifier trop les choses.
Utilisations coté interface
VALIDATION :
La dernière vue (v_score) pourrait afficher une pastille de couleur sur la liste des observations en attente de validation, pour attirer l'attention sur les données qui ne correspondent pas aux connaissances valides de l'instance.
La vue (score) permet aussi, sur la modale d'info, d'avoir une sorte de "checklist" des variables qui sont, ou non, cohérentes par rapport aux connaissances de l'instance.
Les VM permettraient de contextualiser une donnée en cours de validation par rapport à l'aire de répartition valide (projetée sur la carte en plus de la géométrie de l'obs en cours de validation) et à la phénologie valide (graphique qui illustre, pour la ou les classes d'altitudes concernées, les phénologies connues, en projetant la donnée en cours de validation par dessus).
SAISIE :
Les modules de saisie pourront appeler ces vues matérialisées lors des saisies pour faire des alertes si on tombe hors de l'aire de répartition d'un taxon (calculable dès la saisie de l'occurrence), ou hors de la phénologie (calculable lors du dénombrement).
La partie interface ferait l'objet d'une prestation de notre part. La partie base sera mise en place en amont de la prestation pour gagner du temps.
Evolutions possibles : le format proposé ici permet quelques paramétrages selon les besoins de chacun, mais il est aussi assez souple pour prévoir à terme de nouvelles variables à vérifier : si on a une couche d'habitats dans notre instance on peut imaginer par exemple une nouvelle variable dans notre checklist : est-ce que ma donnée tombe, ou non, sur les milieux habituels par exemple.
The text was updated successfully, but these errors were encountered: