Dans ce contexte, le SDIS du Var, déjà à l’initiative du projet open source REMOcRA, a décidé de se doter d’un outil permettant de fiabiliser au fil de l’eau les données saisies dans sa base de données SIG avant que ces dernières ne rejoignent le dispositif NEXSIS. Il a confié à Atol Conseils et Développements et Agaric IG la réalisation de cette solution dénommée “CQFD” comme “Contrôle de la Qualité et de la Fiabilité des Données” et a souhaité le reverser à la communauté. Cet outil a été déployé pour accompagner les changements majeurs opérés par le SDIS 83 qui bascule non seulement son SGBD spatial commercial vers PostgreSQL/PostGIS mais remplace également une partie de ses clients SIG bureautiques propriétaires par QGis Desktop. L’outil de contrôle historique n’était pas en mesure d'absorber ce changement.
Composantes techniques et principe de fonctionnement
Le dispositif repose sur les principes suivants :
- La base de données spatiale PostgreSQL/PostGIS “SIG83” assure le stockage et le traitement de l’information géographique produite en interne ou importée par un administrateur SIG. Cette base de données est compartimentée en schémas pour permettre de différencier les tables de données accessibles aux opérateurs SIG des tables spécifiquements mises en œuvre pour le bon fonctionnement de l'application CQFD. Les règles d’intégrité des données et les droits d’accès sont entièrement gérés au sein de la base, le client web CQFD facilitant la mise en œuvre de certaines tâches d’administration.
- Les clients QGis Desktop sont exploités depuis le siège ou à distance à travers le réseau sécurisé du SDIS. Chaque opérateur SIG dispose d'un compte lui permettant non seulement de paramétrer la connexion SGBD de QGis mais également d’accéder au portail web applicatif. Les projets QGis sont déployés avec des formulaires spécifiques facilitant la saisie des données attributaires mais les opérations de contrôle des données sont réalisées directement au sein de la base de données (erreur remontée dans QGis à la sauvegarde en cas de non respect d’une contrainte sur une table).
- L’interface d’administration web CQFD facilite le paramétrage de la sécurisation des accès aux données par les clients SIG bureautiques mais permet de suivre les changements et d’invalider certaines opérations réalisées par les opérateurs sur la base de données. Le frontal développé en Vue.js complété par Openlayers exploite le serveur applicatif développé en java et le serveur cartographique pg_feature_serv qui se charge de retourner les entités en GeoJson
Fonctionnalités apportées par l’application CQFD
L’interface extranet CQFD offre des fonctionnalités destinées à faciliter l'accomplissement des tâches quotidiennes du service SIG en permettant notamment de réaliser des opérations d’administration de la base de données mais également d’assurer des tâches de validation ou d’annulation des saisies réalisées par les opérateurs.
L’usage de CQFD repose sur 3 profils :
- L’utilisateur de profil “Opérateur” peut exploiter le contenu de la base de données du SDIS via son outil QGis. Il dispose également d’un accès en lecture seule à l’interface de suivi des changements réalisés sur la base de données
- L’utilisateur de profil “Validateur” dispose des droits du profil “Opérateur” mais également de la possibilité de valider ou d’annuler les changements réalisés en base de données par un opérateur de saisie
- L’utilisateur de profil “Administrateur” dispose des droits du profil “Validateur” mais également de ceux d’administration listés ci-après
Fonctionnalités d’administration de la base de données
Gestion des utilisateurs et des accès
Chaque usager CQFD existe comme utilisateur de l'application web mais également comme utilisateur de la base de données
L’interface de gestion des utilisateurs permet de gérer les utilisateurs impliqués dans le dispositif CQFD, que ce soit pour saisir les données cartographiques ou pour réaliser les tâches de vérification ou d’administration de la base. Chaque utilisateur créé dispose ainsi d’un accès en tant qu’utilisateur de la base de donnée (au sens rôle de postgreSQL) qu’il peut notamment exploiter via QGis ou un autre outil. Les droits sont fixés par utilisateur et par table pour permettre de sécuriser le contenu de certaines tables. Par défaut, tout nouvel utilisateur dispose d’un accès en création, mises à jour ou suppression sur les tables de la base de données mais l’administrateur peut restreindre les opérations d’ écriture à certaines tables et interdire complètement la suppression d’entités sur certaines d’entre elles.
CQFD permet de limiter l’accès à certaines tables et à certaines fonctionnalités
Ajout et suppression des contraintes en base de données
La mise en place de contraintes au niveau de la base permet de garantir que les données saisies ou importées respectent le niveau qualité attendu. Ces contraintes codées en SQL peuvent s’avérer fastidieuses à mettre en œuvre et être source d’erreur dans un contexte où le nombre de couches SIG (tables) évolue régulièrement. L’interface de CQFD permet d’appliquer des contraintes SQL types basées sur des modèles (modèles personnalisables) sur les tables et colonnes de la base de données. Certaines contraintes de type CHECK sont proposées mais il est également possible d’en appliquer d’autres qui mobilisent des TRIGGER ; ces dernières étant notamment exploitées pour répondre aux attentes topologiques sur une même couche ou entre couches de données. CQFD permet par exemple rapidement d’interdire la création d’une entité d’une couche qui serait à cheval sur plusieurs entités d’une autre (une parcelle cadastrale doit être contenue dans une section) mais également d’interdire le croisement d'éléments linéaires sur une même couche sauf si un attribut de l’un d’entre eux lève cette interdiction (graphe routier avec présence de ponts et tunnels)
Les contraintes peuvent mises en oeuvre rapidement sur les colonnes des différentes tables
Si ces contraintes sont légitimes au quotidien pour la saisie au fil de l’eau des informations par les opérateurs, elles peuvent devenir contre productives dès lors qu’il s’agit d’importer massivement des données déjà qualifiées en amont par un processus externe (ex : import d’un référentiel géographique normalisé). CQFD permet donc de débrayer les contraintes associées à une table pour procéder à l’intégration de données externes par l’administrateur. Durant ce laps de temps, un verrou est posé pour les autres utilisateurs, interdisant ainsi l’ajout de données “non contrôlées”.
Ajout et suppression de processus automatisés
Parallèlement aux contraintes qui empêchent les saisies douteuses, il est parfois nécessaire et complémentaire de réaliser des opérations régulières de nettoyage ou d’harmonisation des données. Ces dernières passent par le jeu d'instructions SQL à exécuter régulièrement par les administrateurs SIG. CQFD apporte une simplification en permettant de planifier ces opérations SQL et s’assurer ainsi de bénéficier en permanence d’un contenu homogène (harmonisation en majuscule, suppression de caractères redondants, simplification de géométries, etc.)
L'exécution de processus SQL automatisés permet d’homogénéiser le contenu et d’améliorer la qualité des données saisies
Fonctionnalités de suivi et de validation des saisies
Bien que CQFD dispose de fonctionnalités facilitant la mise en œuvre de mécanismes de fiabilisation de la donnée, il n’en demeure pas moins que le risque d'introduction d’erreurs reste malheureusement non nul. CQFD propose donc d’activer le suivi des changements réalisés sur les tables de la base de données permettant ainsi à l’utilisateur validateur de revenir à un état antérieur s’il juge que la manipulation de l’opérateur n’est pas pertinente.
Toutes les tables n’ont pas forcément vocation à être suivies
Par principe, et étant donné que de nombreux contrôles sont appliqués en temps réel, la donnée saisie par l’opérateur est considérée comme “valide” (visible, exploitable, exportable) mais “non vérifiée”. Le validateur peut donc confirmer de manière individuelle ou groupée une liste de changements ou au contraire refuser ces derniers. Au sein de la base, le refus d’un validateur impacte les données de la manière suivante :
Le validateur dispose d’une interface permettant de lister et filtrer les changements (par table, date, statut, auteur, etc.) Avant de confirmer ou refuser l’opération, il consulte les données attributaires et géographiques en mode “avant” et “après”. Les différences de données attributaires sont mises en évidence pour faciliter la lecture et éviter le jeu du “Chercher les différences”. L’interface cartographique basculable en mode plein écran affiche les entités voisines de l’entité impactée et permet de replacer la géométrie dans son contexte topologique.
L’interface de suivi et de validation permet une visualisation “avant/après” avec mise en évidence des changements pour faciliter la prise de décision.
Mise à disposition open source par le SDIS 83
Plusieurs années après publication de sa solution cartographie métier open source REMOcRA, le SDIS du Var témoigne une nouvelle fois son attachement à la philosophie open source en permettant à ceux qui le souhaitent d’exploiter ce nouvel outil. En effet, si ce dernier a été pensé pour répondre à des besoins initiaux orientés “Fiabilisation des données pour NexSIS par les SIS”, il pourra néanmoins satisfaire les structures souhaitant fiabiliser leurs données et tracer les changements dans un contexte organisationnel (équipe d’opérateur SIG, administrateur de données) et technique (base de données postgreSQL/postGIS, modélisation orientée “couche” avec possibilité de clé étrangère, etc.) équivalent. Les équipes d’Atol Conseils et Développements publieront donc très prochainement les sources et la documentation projet sur Github.