Nous avons vu dans les articles précédents les outils de vérification des géométries avec ArcGis, Spatialite/Postgis, FME et Geomedia. Il nous reste à voir cette fonctionnalité avec QGis. Vous allez voir, s’y retrouver ce n’est pas simple!
Premier constat : la documentation n’existe pas (pas encore?). Il faut donc procéder par tests et voir ce que ça donne.
Deuxième constat: QGis propose deux outils de vérification des géométries. Ceci n’est pas forcément un problème, sauf que les résultats ne sont pas les mêmes.
Alors, commençons par voir les outils disponibles.
Les vérificateurs de géométrie dans QGis 2.8
Si vous avez suivi un peu le développement de QGis dans ses différentes versions, vous aurez compris que le noyau de QSGis (le « core ») s’enrichit de version en version en intégrant des plugins optionnels.
Les outils disponibles dans la version 2.8 de vérification des géométries proviennent de deux anciens plugins optionnels:
- Le plugin fTools
- Le plugin Topology checker
Il n’y a pas de documentation QGis sur le fonctionnement de ces plugins en ce qui concerne la vérification des géométries. Mais, on a beau revenir en arrière pour trouver de la documentation du fonctionnement des anciens plugins, il n’y en a pas.
Voyons donc ce qu’on peut dire, à l’usage, de chacun d’eux.
Le Vérificateur de la topologie
Pour ouvrir le panneau du Vérificateur de la topologie, cliquez sur le menu Vecteur -> Vérificateur de la topologie -> Vérificateur de la topologie
Vous devez d’abord configurer les règles de vérification, puis cliquer sur le bouton « Valider » (tout ou juste l’emprise visible de la couche).
Pour configurer les règles, cliquez sur le bouton Configuration.
La fenêtre Paramètres de règles topologiques s’ouvre.
Sélectionnez en haut à gauche la couche sur laquelle la règle doit s’appliquer, puis dans le champ de droite, sélectionnez Ne doit pas contenir de géométries invalides
Cliquez sur Ajouter une règle pour ajouter la règle à la liste de vérifications.
Pour l’instant nous allons nous limiter à cette règle, car elle correspond à la vérification réalisée par les outils que nous avons déjà abordé.
Pour effectuer la vérification, cliquez sur Valider tout
Le résultat s’affiche dans la fenêtre du panneau:
Nous retrouvons nos 19 communes, les mêmes que celles détectées par les autres logiciels en utilisant les normes GEOS. Les communes concernées sont affichées en rouge sur la carte mais pas la partie de la géométrie qui est invalide. Il est donc difficile de savoir pourquoi une entité a été invalidée.
On peut conclure que cet outil utilise la validation GEOS des géométries et qu’il fonctionne correctement.
Outil Vérifier la validité de la géométrie (fTools)
Pour ouvrir la fenêtre d’exécution de cet outil, cliquez sur le menu Vecteur -> Outils de géométrie -> Vérifier la validité de la géométrie
Mais avant de voir comment exécuter la vérification, il faut savoir que la vérification a deux options, configurables à partir du menu Préférences -> Options puis Onglet Numérisation.
Vous pouvez opter entre utiliser les règles GEOS ou QGIS. Tant bien que mal, en revoyant tous les outils de ces articles, on peut dire que nous commençons à avoir une idée des règles utilisées avec l’option GEOS. Par contre, ce serait merveilleux de savoir qu’est ce qu’elles contiennent les règles QGIS!
N’y comptez pas. Pas la moindre ligne de documentation disponible en ligne. En tout cas, le premier qu’y trouve gagne notre reconnaissance éternelle.
Mais on n’est pas au bout de nos peines. Si vous optez par GEOS et que vous exécutez la vérification des géométries, QGis s’élève à la hauteur d’ArcGis (voir notre premier exemple) : le nombre de géométries invalides est de ZERO!
Impossible de savoir, sans un travail somme toute inutile, si ça ne marche pas du tout ou juste pour les anomalies de notre couche exemple. Mais quitte à utiliser les règle GEOS, autant utiliser le vérificateur de topologie de QGis plutôt que cette option qui marcherait peut-être dans certains cas, ou pas.
Donc, vérifions que l’option par défaut (QGis) est bien là et reprenons notre exemple.
Pour afficher les résultats vous avez deux possibilités:
- Soit vous laissé la case Enregistrer l’emplacement des erreurs décochée, les anomalies seront listées dans la fenêtre Erreurs de géométrie. En cliquant sur une ligne, vous aurez l’affichage d’une croix à l’emplacement de l’erreur.
- Soit vous cochez la case Enregistrer l’emplacement des erreurs et vous entrez un nom de fichier pour la couche de résultats.
Mais regardons plus précisément les résultats obtenus.
La fenêtre indique Nombre total d’erreurs rencontrées : 129
Nous sommes loin des 19 erreurs habituels dans cette série de tests.
Une étude plus précise montre que, comme dans le cas de Geomedia, ce vérificateur ne s’arrête pas à la première erreur trouvée pour une entité. Plusieurs erreurs peuvent concerne la même géométrie.
Le nombre total de communes (géométries) ayant des erreurs est, dans ce cas, de 38. Le double de ce que les autres tests indiquent. De ces 38 communes, 11 font partie de la liste des 19 habituelles. Il y a donc 8 communes qui passent sans erreur ce test mais qui sont détectées par les autres méthodes. Et il y a 27 communes qui sont considérées comme des erreurs par ce test et qui passent sans problème les autres méthodes.
Prenons tout de suite la première pour voir si ce test a raison:
Manifestement le test à mis le doigt sur un problème de géométrie qui était passé inaperçu jusqu’à maintenant avec les autres outils.
Maintenant regardons la première des communes qui est marquée comme invalide par tous les test précédents et comme valide par celui-ci:
Le polygone intérieur n’est pas détecté comme tel : le polygone en rouge est constitué d’un seul anneau extérieur. Ceci est une erreur manifestement.
Alors? Qu’est-ce qu’on peut conclure? Étant donné l’absence de documentation on ne peut pas réellement savoir les raisons de ces différences. En pratique, tout ce qui nous reste à faire c’est de nous dire que les erreurs détectées par le Vérificateur de topologie sont bien les erreurs que (presque) tous les logiciels s’accordent à trouver.
Celles-ci peuvent être corrigées automatiquement avec la commande MakeValid du fournisseur d’algorithmes lwgeom. On corrige ces erreurs et après on utilise le Vérificateur QGis pour voir quelles autres erreurs méritent d’être corrigées, mais cette fois-ci, manuellement.
En tout cas, c’est vraiment dommage qu’il n’y ait pas de documentation des critères utilisés par la méthode QGIS car elle semble être plus consistante que la méthode usuelle (GEOS).