vendredi 5 février 2016

Définir la tolérance de la topologie dans ArcGIS

La topologie d'ArcGIS est un super outil, bien utile pour nettoyer les données et les structurer géométriquement. Il y a deux paramètres spécifiques à la topologie: la précision et la tolérance (ou tolérance d'agrégat, traduction de "cluster tolerance").

La précision est facile à comprendre: c'est une grille sur laquelle sont calées (donc modifiées) les coordonnées en entrée. Elle ne doit pas être trop grande pour affecter la précision réelle des données, mais ce n'est pas la peine non plus de fixer une précision trop importante. Le conseil généralement donné est de fixer la précision au 1/10 de la tolérance. Ok, mais la tolérance, c'est quoi ?

La documentation d'ArcGIS est un peu vague sur la tolérance d'agrégat. Comme pour la précision, il s'agit d'une grille, donc la tolérance est une largeur en x et en y. Le problème est que, pour tout cartographe, la tolérance n'est pas comprise comme ça. Elle dépend de l'échelle nominale de la couche, c'est à dire l'échelle "normale" pour laquelle les données sont produites. C'est une notion importante en SIG qu'il faut toujours avoir à l'esprit.

Je vais prendre l'exemple d'une couche de parcelles du cadastre établie au 1/1.000. On considère généralement que la tolérance sur les données à cette échelle est de 2/10 mm papier, soit 20 cm terrain. Comment fixer la tolérance d'agrégat ? Les différents tests que j'ai mené me conduise à utiliser la formule suivante: tolérance d'agrégat = tolérance des données / (2 * racine(2) ). Pour la couche parcelle à l'échelle 1/1.000, la tolérance des données est de 20 cm, donc la tolérance d'agrégat est de 7 cm. Le terme racine(2) vient de ce que la tolérance d'agrégat est une grille et notre tolérance est une distance entre deux points: il faut appliquer Pythagore pour faire apparaître ce facteur.
La tolérance d'agrégat en x et y. La tolérance des données en diagonale.
 Dans l'exemple suivant, j'ai créé une couche de polygones et j'ai fixé la tolérance d'agrégat à 7 cm. Le cercle rouge matérialise la tolérance des données (rayon de 20 cm).
Les deux rectangles se touchent au centre du cercle. La pointe du triangle est en dehors du cercle de précision. La validation topologique ne change rien, ce qui est normal.

Attention: la topologie modifie aussi tous les vertex des formes. Dans les exemples, j'ai espacé les vertex des formes de plus de 20 cm. Sinon, ils seraient modifiés par la validation topologique.

Maintenant, je déplace légèrement la pointe du triangle pour qu'elle entre dans le cercle rouge:
Et je fais une validation topologique: Les trois sommets sont déplacés pour ne faire qu'il seul point.


Un autre cas de figure:
Cette fois, c'est le rectangle de droite que je déplace. Le sommet de celui de gauche est au centre du cercle et la pointe du triangle est à l'extérieur du cercle.

La validation topologique rassemble les sommets des deux rectangles, sans modifier le triangle.

Un dernier exemple:
Le sommet du rectangle de gauche est au centre du cercle rouge, les 2 autres figures sont à l'extérieur.
La validation topologique ne change rien (l'image ne change pas, je ne la répète pas!).

En conclusion, on a une règle pour fixer la tolérance d'agrégat de la topologie ArcGIS en fonction de l'échelle nominale des données:
  • Echelle: 1/1.000, tolérance d'agrégat: 0,07m
  • Echelle: 1/2.000, tolérance d'agrégat: 0,14m
  • Echelle: 1/5.000, tolérance d'agrégat: 0,35m
  • Etc.
Il faut être conscient que tous les points à une distance entre eux inférieure à la tolérance seront modifiés: les sommets comme les vertex. Cela peut dérouter au début, mais il faut être conscient que cela n'aura pas d'impact visuel sur les données, tant qu'elles sont utilisées à des échelles réalistes! Ceux qui zoome trop (si, si, ça se fait!) ne verront plus les petits trous ou superpositions, qui donne l'impression que la données est pleine d'erreur.
Autre avantage: les données sont allégées. Plus de points utile! La topologie fait un sacré ménage!


Aucun commentaire:

Enregistrer un commentaire