Après avoir vu l’outil ArcMap (Les outils SIG de validation des géométries (1)), puis les outils Spatialite/Postgis (Les outils SIG de validation des géométries(2) : Spatialite et PostGis), nous allons voir les outils disponibles avec le logiciel FME. Les deux premiers articles ont abordé des outils spécifiques à un type de format: shape et geodatabases ArcGis, bases Spatialite ou Postgis.
Les outils FME, eux, permettent de traiter pratiquement tous les formats SIG existants.
Tout d’abord, une fois n’est pas coutume, FME documente le processus de validation en listant les anomalies qu’il prend en compte. Vous trouverez un document en anglais avec une présentation de deux cas de validation et contrôle de qualité à la page http://cdn.safe.com/resources/technical-briefs/Data_Validation_and_Quality_Assurance_with_FME.pdf
Nous reprenons ici le tableau correspondant à la validation des géométries, mais traduit en français. Comme FME implémente la définition GEOS, ce tableau permet de comprendre les tests effectués par les requêtes SQL dans les bases de données Spatialite et Postgis de l’article précédent.
Le tableau présente le type d’anomalie, les types de géométries sur lesquelles elle s’applique (point, ligne ou polygone) et une brève description de l’anomalie.
La dernière colonne contient un ou plusieurs signes +.
+++ Signifie que la détection et correction de ce type d’anomalie est facile avec FME. Dans la pratique, cela correspond aux anomalies détectées par la commande ST_IsValid de Spatialite et Postgis et par le transformer GeometryValidator de FME.
++ Pour détecter et corriger ce type d’anomalie, une configuration particulière doit être faite des outils de validation. Dans la pratique, si vous passez la commande de vérification des géométries de base, ces anomalies n’apparaîtront pas.
+ Ces anomalies nécessitent un travail particulier sur les données (déconstruction/reconstruction) pour pouvoir être détectées et corrigées. Les outils disponibles ne peuvent pas les détecter telles quelles.
1 | Loopings arrière –auto-intersections | Ligne, Polygones | Polygones « papillons ». | ++ |
---|---|---|---|---|
2 | Polygones ou anneaux non fermés | Polygones | Le nœud de départ et d’arrivée d’un polygone ou d’un anneau ne sont pas le même. Ceci implique que l’entité ne peut être fermée. | +++ |
3 | Polygone interne avec un sens de rotation incorrect. | Polygones | L’ordre des nœuds des polygones externes et internes est défini. Les polygones externes doivent suivre le sens horaire, tandis que les polygones internes doivent être en sens antihoraire. | ++ |
4 | Points dupliqués | Point, Ligne, Polygones | Un point qui possède exactement les mêmes X et Y qu’un autre point | ++ |
5 | Retours arrière | Ligne, Polygones | Erreur de numérisation qui provoque une inconsistance dans la construction d’une ligne | ++ |
6 | piques | Ligne, Polygones | Similaire au retour arrière mais provoqué par un point qui s’écarte anormalement de la ligne | ++ |
7 | Surface minimum | Polygones | Une entité surfacique ne doit pas avoir une surface au-dessous d’un certain seuil | +++ |
8 | Empiètements ou vides | Polygones | Petites superpositions ou vides entre les bords de polygones adjacents | ++ |
9 | Superposition de polygones | Polygones | Superposition majeure de deux polygones | ++ |
10 | Polygones dupliqués (polygones avec les mêmes attributs) | Ligne, Polygones | Deux polygones avec la même géométrie et exactement les mêmes attributs | +++ |
11 | Segments courts | Ligne, Polygones | Distance très petite entre deux nœuds. Cette distance correspond à la tolérance du jeu de données | ++ |
12 | Géométrie nulle – enregistrement de la table contenant le champ shape vide | Point, Ligne, Polygones | Géométrie inexistante dans l’enregistrement de l’entité | +++ |
13 | Orientation des segments | Ligne, Polygones | Similaire à la rotation des anneaux ou des polygones mais à une échelle plus fine. La rotation entre deux nœuds est testée au lieu de l’entité entière. | + |
14 | Parties vides – la géométrie est multi-parties mais une d’elles est vide | Ligne, Polygones | Similaire à la géométrie nulle. Une des géométries dans une entité multi-parties est vide | + |
Comment fonctionne FME?
Pour traiter les géométries nous utiliserons le programme FME Workbench 2015.
L’interface propose une fenêtre graphique qui permet de construire un modèle de traitement.
Il y a trois types d’éléments dans un modèle de traitement: les Readers, les Transformers et les Writers.
Les Readers sont des modules qui lisent différents formats SIG et les mettent à dispositions des traitements FME. FME lit et écrit des centaines de formats SIG. Le Data Interoperability d’ArcGis est fourni par FME.
Les Transfomers sont des modules de traitement. Ils prennent les données fournis par un Reader et produisent des données pour les Writers. De cette manière, les traitements FME peuvent s’appliquer à n’importe quel format de données.
Le Writers sont des modules qui prennent des résultats de traitements FME et les écrivent dans un format SIG donné.
Notre modèle de traitement est simple:
- Un reader qui pointe sur notre couche com2011.shp (voir les articles précédents)
- Un transformer qui est GeometryValidator
- Trois writers qui donnent en sortie trois shapefiles:
- un pour toutes les entités dont les géométries ne présentent pas d’anomalie: all2011passed
- un pour toutes les entités présentant des anomalies mais qui ont pu être réparées par le transformer: all2011repaired
- un pour toutes les entités présentant des anomalies mais qui n’ont pas pu être réparées par le transformer: all2011failed
En cliquant sur le symbole « paramétrage » de GeometryValidator vous ouvrez la fenêtre de paramétrage:
Cette fenêtre vous permet d’activer ou désactiver des vérifications, ainsi que de déterminer les paramètres spécifiques à certaines d’entre elles. Pour notre exemple, nous les sélectionnons toutes.
En cliquant sur le bouton exécuter, le traitement se déroule devant vous. La fenêtre finale est la suivante:
Le Transformer a lu 8094 entités en entrée, dont 8075 n’avaient pas d’anomalie dans leur géométrie et 19 présentaient des anomalies. Ces entités (communes) ont été écrites en sortie dans le fichier all2011repaired.shp.
Si nous ouvrons la table de ce dernier :
Nous retrouvons les 19 communes avec des anomalies de géométrie, les mêmes détectées par les tests des articles précédents.
Jusqu’à présent, nous avons vu des outils qui détectent ET corrigent automatiquement les anomalies de géométrie. Comme nous l’avons vu dans l’article précédent, concernant la commune de Trieste, cette correction n’est pas forcément la meilleure. Dans l’article suivant nous allons voir les outils disponibles dans Geomedia d’Intergraph, qui permettent de corriger manuellement les anomalies.