Les outils de validation des géométries (3): FME

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.

1Loopings arrière –auto-intersectionsLigne, Polygones Polygones « papillons ». ++
2Polygones ou anneaux non fermésPolygones 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. +++
3Polygone 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.++
4Points dupliquésPoint, Ligne, Polygones Un point qui possède exactement les mêmes X et Y qu’un autre point ++
5Retours arrièreLigne, Polygones Erreur de numérisation qui provoque une inconsistance dans la construction d’une ligne++
6piques Ligne, Polygones Similaire au retour arrière mais provoqué par un point qui s’écarte anormalement de la ligne++
7Surface minimum Polygones Une entité surfacique ne doit pas avoir une surface au-dessous d’un certain seuil+++
8Empiètements ou videsPolygones Petites superpositions ou vides entre les bords de polygones adjacents++
9Superposition de polygonesPolygones Superposition majeure de deux polygones++
10Polygones 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+++
11Segments courtsLigne, Polygones Distance très petite entre deux nœuds. Cette distance correspond à la tolérance du jeu de données++
12Géométrie nulle – enregistrement de la table contenant le champ shape videPoint, Ligne, Polygones Géométrie inexistante dans l’enregistrement de l’entité+++
13Orientation des segmentsLigne, 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.+
14Parties vides – la géométrie est multi-parties mais une d’elles est videLigne, 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.

raders de fme workbench

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.

trnsformer de FME workbench

Le Writers sont des modules qui prennent des résultats de traitements FME et les écrivent dans un format SIG donné.

writer de FME workbench

 

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

modèle de traitement fme workbench pour détecter les anomalies de géométrie

 

En cliquant sur le symbole « paramétrage » de GeometryValidator vous ouvrez la fenêtre de paramétrage:

paramétrage du transformer FME geometryvalidator

 

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:

exécution de FMe benchmark pour la validation de géométries

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 :

a3

 

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.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *