Fonctionnement des outils Simplifier des lignes et Simplifier un polygone

Les outils Simplifier des lignes, Simplifier un polygone et Simplifier les tronçons partagés simplifient les lignes et les polygones afin de réduire la complexité des entités pour l’affichage à des échelles plus petites. Les outils fonctionnent en identifiant et en supprimant les sommets insignifiants afin de réduire la complexité de l'entité tout en conservant le caractère et la forme inhérents. Il existe différents algorithmes de simplification qui génèreront des résultats légèrement différents.

Algorithmes de simplification

Conserver les points critiques (Douglas-Peucker)

L'option Conserver les points critiques (Douglas-Peucker) (algorithm='POINT_REMOVE' en Python) offre un algorithme de simplification de ligne simple et rapide. Elle conserve les points critiques qui décrivent la forme globale d'une ligne et supprime tous les autres points. L'algorithme commence par connecter les extrémités d'une ligne à une ligne tendance. La distance de chaque sommet par rapport à la courbe de tendance est mesurée perpendiculairement. Les sommets plus proches de la ligne que la tolérance sont éliminés. La ligne est ensuite divisée par le sommet le plus éloigné de la ligne tendance, ce qui a pour effet de créer deux lignes de tendance. Les sommets restants sont mesurés par rapport à ces lignes et le processus continue jusqu'à ce que tous les sommets qui se situent dans la plage de tolérance soient éliminés. Cette option repose sur l'algorithme défini par Douglas et Peucker (1973).

L'option Conserver des points critiques (Douglas-Peucker) est efficace pour la compression de données et la suppression de détails redondants ; toutefois, la ligne obtenue peut contenir des angles vifs et des pointes qui réduisent la qualité cartographique de la ligne. Utilisez l'option Conserver les points critiques (Douglas-Peucker) pour obtenir un faible degré de compression ou de réduction des données et si une qualité cartographique élevée n'est pas nécessaire.

Conserver les courbes critiques (Wang-Müller)

L'algorithme Conserver les courbes critiques (Wang-Müller) (algorithm='BEND_SIMPLIFY' dans Python) applique des techniques de reconnaissance des formes qui détectent les courbes, analysent leurs caractéristiques et éliminent celles qui ne sont pas significatives. Une entité linéaire peut être vue comme composée d'une série de courbes (Wang, 1996), chacune définie comme ayant le même signe (positif ou négatif) pour les angles d'inflexion à ses sommets consécutifs. Plusieurs propriétés géométriques de chaque courbe sont comparées à celles d'un demi-cercle de référence, dont le diamètre est égal à la tolérance de simplification spécifiée. Ces mesures détermines si une courbe est conservée ou éliminée, autrement dit remplaçant la courbe par sa ligne de base (la ligne connectant les extrémités de la courbe). La simplification présente un caractère itératif (répétitif) si bien que les plus petites courbes peuvent disparaître dans les premiers tours et, par conséquent, former des courbes plus importantes. La ligne résultante répond à la forme principale de la ligne d'origine de manière plus fidèle et affiche une meilleure qualité cartographique que l'option Conserver les points critiques (Douglas-Peucker). Cette option repose sur l'algorithme défini par Wang et Müller (1998).

Conserver les surfaces effectives pondérées (Zhou-Jones)

L'algorithme Conserver les surfaces effectives pondérées (Zhou-Jones) (algorithm='WEIGHTED_AREA' en Python) fonctionne en identifiant tout d'abord les triangles de la surface effective pour chaque sommet. Ces triangles sont ensuite pondérés par un ensemble de mesures afin de comparer la platitude, l'inclinaison et la convexité de chaque surface. Les surfaces pondérées guident la suppression de leurs sommets correspondants afin de simplifier la ligne tout en conservant autant de caractère que possible. Cette option repose sur l'algorithme défini par Zhou et Jones (2005).

Conserver les surfaces effectives (Visvalingam-Whyatt)

Le principe de l’algorithme Conserver les surfaces effectives (Visvalingam-Whyatt) (algorithm='EFFECTIVE_AREA' en Python) consiste à affecter aux sommets une importance relative en fonction de la taille d’un triangle formé par chaque sommet et ses deux voisins, puis de supprimer en premier les sommets les moins importants. La suppression des sommets associés aux plus petits triangles a une incidence minime sur le caractère de la ligne ou du contour. Le processus est itératif, si bien qu’après un premier passage, pour supprimer les sommets, les triangles sont recalculés à partir des sommets restants, et ainsi de suite. Cette option repose sur l’algorithme défini par Visvalingam et Whyatt (1992).

Conservation de l'intégrité topologique

Les outils garantissent que la topologie est conservée lors du traitement. Les erreurs topologiques ne seront pas introduites. Au cas où la simplification entrainerait sinon une violation de la topologie, les outils commencent tout d'abord par répartir la géométrie en deux parties, et les simplifient. Il s'agit d'un processus récursif. Les sous-parties peuvent être ensuite à nouveau divisées, etc. Si la topologie ne peut pas être maintenue à l'aide de cette approche, l'entité est mise en attente et revisitée une fois les entités de voisinage traitées pour voir si la topologie peut être ensuite conservée.

Héritage :

Dans les versions précédentes de ces outils, il était possible que des erreurs topologiques soient générées en cours de traitement. Les paramètres étaient inclus pour identifier et résoudre ces erreurs (en option). Les outils n'introduisent plus les erreurs topologiques, éliminant la vérification et la résolution. Les paramètres Vérifier les erreurs topologiques (error_checking_option dans Python) et Résoudre les erreurs topologiques (error_resolving_option dans Python) restent inclus dans la syntaxe des outils pour la compatibilité des scripts et des modèles, mais ne sont pas fonctionnels désormais et sont masqués de la boîte de dialogue de l'outil.

Le champ SimPgnFlag (s'il s'agit de l'outil Simplifier un polygone) ou le champ SimLnFlag (s'il s'agit de l'outil Simplifier les lignes) est ajouté à la classe d'entité de sortie pour indiquer les erreurs de topologie qui étaient présentes dans la classe d'entité d'entrée. Les versions précédentes de ces outils utilisaient ces champs pour indiquer les erreurs topologiques qui étaient introduites par le traitement de l'outil. En outre, au cours de la résolution topologique, des versions précédentes des outils modifiaient la tolérance sur une base par entité, et enregistraient ces valeurs dans les champs MinSimpTol et MaxSimpTol. Dans la mise en œuvre actuelle, les valeurs de ces champs de tolérance seront identiques et égaux à la tolérance spécifiées dans le paramètre Tolérance de simplification . Veillez à modifier les modèles existants ou les scripts qui se fient sur un de ces champs.

Utilisez le paramètre Couches de barrières en entrée pour définir une ou plusieurs classes d'entité qui contiennent les fonctionnalités qui ne doivent pas être traversées par des lignes ou des polygones simplifiés. Des exemples incluent les lacs et les fleuves où les routes simplifiées ne devraient être, des points cotés d'altitude ou des balises que les isolignes ne peuvent pas traverser ou des limites administratives dans lesquelles les données simplifiées doivent rester.

Analyse et amélioration des résultats

Les outils simplifient les contours des polygones et des lignes à la fois ; plus une ligne ou un contour fonctionne plus longtemps, meilleur sera le résultat. N'oubliez pas cela lorsque vous recueillez ou construisez les données source. Lorsque cela est possible, placez les extrémités des lignes sur les sections lisses et longues des lignes, plutôt qu'à des sections très pointues.

Les problèmes de topologie dans la classe d'entités en entrée (entités qui se chevauchent sans point d'intersection) sont marqués dans un champ dans la classe d'entités en entrée. Ce champ est intitulé SimPgnFlag s'il s'agit de l'outil Simplifier un polygone et SimLinFlag s'il s'agit de l'outil Simplifier les lignes. Une valeur de 1 dans ces champs indique qu'une erreur topologique était présente pour cette entité dans la classe d'entités en entrée.

Pour référence, un champ ID correspondant à l'ID d'objet de l'entité en entrée est également ajouté à la classe d'entités en sortie. Le champ est intitulé InPoly_FID si s'agit de l'outil Simplifier un polygone ou InLine_FID s'il s'agit de l'outil Simplifier les lignes. En outre, les champs MinSimpTol et MaxSimpTol sont ajoutés à la sortie pour enregistrer la tolérance qui était utilisée.

Une classe d’entités ponctuelles en sortie dérivée est créée à partir d’entités ponctuelles qui représentent soit les extrémités de lignes simplifiées en lignes de longueur nulle s’il s’agit de l’outil Simplifier les lignes), ou de polygones simplifiés en polygones de surface nulle ou en un polygone plus petit que la surface minimum telle que définie par le paramètre Surface minimum s’il s’agit de l’outil Simplifier un polygone ou des deux dans le cas de l’outil Simplifier les tronçons partagés. . Un polygone simplifié qui a été réduit à une géométrie vide ou un polygone plus petit que la surface minimum tel que défini par le paramètre Surface minimum.

Utilisation des jeux de données plus importants

Le traitement topologique de ces outils exige que plusieurs entités soient prises en compte en simultané. Lorsque vous travaillez avec d'importants jeux de données, vous risquez de dépasser les limites de mémoire. Dans ce cas, envisagez de traiter les données en entrée par partitions. Pour ce faire, vous pouvez identifier une classe d'entités surfaciques pertinente dans le paramètre d'environnement Partitions cartographiques qui couvre et sous-divise les données en entrée. Les parties des données, définies par les limites de partition, seront simplifiées séquentiellement, mais la classe d'entités en sortie sera transparente et consistante aux bords de partition. Reportez-vous à Généralisation de jeux de données volumineux à l'aide de partitions pour en savoir plus.

Bibliographie

Douglas, David H., and Thomas K. Peucker. 1973. "Algorithms for the Reduction of the Number of Points Required to Represent a Digitised Line or its Caricature." The Canadian Cartographer, 10(2): 112–122.

Wang, Zeshen, and Jean-Claude Müller. 1998. "Line Generalization Based on Analysis of Shape Characteristics." Cartography and Geographic Information Systems 25(1): 3–15.

Zhou, Sheng, and, Christopher B. Jones. 2005. "Shape-Aware Line Generalisation with Weighted Effective Area." In Developments in Spatial Handling: 11th International Symposium on Spatial Handling, edited by Peter F. Fisher, 369–80.

Visvalingam, M., and, J. D. Whyatt. 1992. "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, The University of Hull.

Rubriques connexes