PnX-SI / gn_module_import

Module GeoNature d'import de données
6 stars 11 forks source link

Module d’import

branche tests coverage
master pytest codecov
develop pytest codecov

Ce module permet d’importer des données depuis un fichier CSV dans GeoNature.

Installation du module

Le module est installé et prêt à importer !

Il vous faut désormais attribuer des permissions aux groupes ou utilisateurs que vous souhaitez, pour qu'ils puissent accéder et utiliser le module (voir https://docs.geonature.fr/admin-manual.html#gestion-des-droits). Si besoin une commande permet d'attribuer automatiquement toutes les permissions dans tous les modules à un groupe ou utilisateur administrateur.

Configuration du module

Vous pouvez modifier la configuration du module en créant un fichier import_config.toml dans le dossier config de GeoNature, en vous inspirant du fichier import_config.toml.example et en surcouchant les paramètres que vous souhaitez (champs affichés en interface à l'étape 1, préfixe des champs ajoutés par le module, répertoire d'upload des fichiers, SRID, encodage, séparateurs, etc).

Pour appliquer les modifications de la configuration du module, consultez la rubrique dédiée de la documentation de GeoNature.

Configuration avancée

Une autre partie se fait directement dans la base de données, dans les tables dict_fields et dict_themes, permettant de masquer, ajouter, ou rendre obligatoire certains champs à renseigner pour l'import. Un champs masqué sera traité comme un champs non rempli, et se verra associer des valeurs par défaut ou une information vide. Il est également possible de paramétrer l'ordonnancement des champs (ordre, regroupements dans des blocs) dans l'interface du mapping de champs. A l'instar des attributs gérés dans TaxHub, il est possible de définir des "blocs" dans la table gn_imports.dict_themes, et d'y attribuer des champs (dict_fields) en y définissant leur ordre d'affichage.

Permissions du module

La gestions des permissions dans le module d'import se fait via le réglage du CRUVED à deux niveaux : au niveau de l'objet "import" et au niveau de l'objet "mapping".

Contrôles et transformations

Liste des contrôles

Mise à jour du module

Utilisation du module d'imports

Note : le processus a un petit peu évoluer en v2 avec notamment une étape supplémentaire.

Le module permet de traiter un fichier CSV (GeoJSON non disponible dans la v2 pour le moment) sous toute structure de données, d'établir les correspondances nécessaires entre le format source et le format de la synthèse, et de traduire le vocabulaire source vers les nomenclatures SINP. Il stocke et archive les données sources et intègre les données transformées dans la synthèse de GeoNature. Il semble préférable de prévoir un serveur disposant à minima de 4 Go de RAM.

  1. Une fois connecté à GeoNature, accédez au module Imports. L'accueil du module affiche une liste des imports en cours ou terminés, selon les permissions de l'utilisateur connecté. Vous pouvez alors finir un import en cours, ou bien commencer un nouvel import.

image

  1. Choisissez à quel JDD les données importées vont être associées. Si vous souhaitez les associer à un nouveau JDD, il faut l'avoir créé au préalable dans le module Métadonnées.

image

  1. Chargez le fichier CSV (GeoJSON non disponible dans la v2 pour le moment) à importer.

image

  1. Mapping des champs. Il s'agit de faire correspondre les champs du fichier importé aux champs de la Synthèse (basé sur le standard "Occurrences de taxons" du SINP). Vous pouvez utiliser un mapping déjà existant ou en créer un nouveau. Le module contient par défaut un mapping correspondant à un fichier exporté au format par défaut de la synthèse de GeoNature. Si vous créez un nouveau mapping, il sera ensuite réutilisable pour les imports suivants. Il est aussi possible de choisir si les UUID uniques doivent être générés et si les altitudes doivent être calculées automatiquement si elles ne sont pas renseignées dans le fichier importé.

image

  1. Une fois le mapping des champs réalisé, au moins sur les champs obligatoires, il faut alors valider le mapping pour lancer le contrôle des données. Vous pouvez ensuite consulter les éventuelles erreurs. Il est alors possible de corriger les données en erreurs directement dans la base de données, dans la table temporaire des données en cours d'import, puis de revalider le mapping, ou de passer à l'étape suivante. Les données en erreur ne seront pas importées et seront téléchargeables dans un fichier dédié à l'issue du processus.

image

  1. Mapping des contenus. Il s'agit de faire correspondre les valeurs des champs du fichier importé avec les valeurs disponibles dans les champs de la Synthèse de GeoNature (basés par défaut sur les nomenclatures du SINP). Par défaut les correspondances avec les nomenclatures du SINP sous forme de code ou de libellés sont fournies.

image

  1. La dernière étape permet d'avoir un aperçu des données à importer et leur nombre, avant de valider l'import final dans la Synthèse de GeoNature.

image

Pour chaque fichier importé, les données brutes sont importées intialement et stockées en binaire dans le champs t_imports.source_file. Elles sont aussi stockées dans une table intermédiaire, enrichie au fur et à mesure des étapes de l'import.

Liste des contrôles réalisés sur le fichier importé et ses données : https://github.com/PnX-SI/gn_module_import/issues/17

Schéma (initial et théorique) des étapes de fonctionnement du module :

image

Modèle de données du schéma gn_imports du module (à adapter à la version 2.0.0) :

image

Fonctionnement du module (serveur et BDD)

Financement de la version 1.0.0 : DREAL et Conseil Régional Auvergne-Rhône-Alpes.

Financement de la version 2.0.0 : Ministère de la Transition écologique et UMS Patrinat.