Simplifier les tronçons partagés (Cartographie)

Résumé

Cet outil simplifie les tronçons des entités en entrée tout en gérant la relation topologique concernant les tronçons partagés avec d’autres entités.

Illustration

Exemple d’utilisation de l’outil Simplifier les tronçons partagés
Les entrées Input 1 et Input 2 sont simplifiées sur tous leurs tronçons. Le polygone de tronçon mitoyen et la ligne de tronçon mitoyenne sont simplifiés uniquement le long des tronçons partagés par les entrées Input 1 et Input 2.

Utilisation

  • Cet outil utilise différents algorithmes de simplification répondant à des objectifs différents. Pour en savoir plus sur ces algorithmes, reportez-vous à Fonctionnement des outils Simplifier des lignes et Simplifier un polygone.

    • L’algorithme Retain critical points (Conserver les points critiques) (Douglas-Peucker) (algorithm='POINT_REMOVE' dans Python) fonctionne en identifiant et en supprimant les sommets relativement redondants afin de simplifier les données pour un affichage à des échelles plus petites. Il s’agit de l’algorithme de simplification le plus rapide dans cet outil. Cet algorithme est souvent utilisé pour la compression des données ou pour une simplification grossière. L’angularité des lignes résultantes augmente significativement au fur et à mesure que la tolérance s’élève. Cet algorithme est basé sur l'algorithme de Douglas-Peucker : Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer. 10(2), 112–22 (1973).
    • L’algorithme Retain critical bends (Conserver les courbes critiques) (Wang-Müller) (algorithm='BEND_SIMPLIFY' dans Python) fonctionne en identifiant et en éliminant les courbes relativement non significatives pour simplifier les données pour l’affichage à des échelles plus petites. Il est généralement plus fidèle à la géométrie en entrée que l’algorithme Retain critical points (Conserver les points critiques) (Douglas-Peucker), mais peut prendre plus de temps à traiter. Cet algorithme est basé sur l'algorithme défini dans l'ouvrage de Wang, Zeshen et Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998).
    • 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. Cet algorithme est basé sur l’algorithme défini dans l’ouvrage de Zhou, Sheng et Jones, Christopher B., « Shape-Aware Line Generalisation with Weighted Effective Area », Fisher, Peter F. (Ed.), Developments in Spatial Handling: 11th International Symposium on Spatial Handling, 369–80 (2005).
    • L’algorithme Retain effective areas (Conserver les surfaces effectives) (Visvalingam-Whyatt) (algorithm='EFFECTIVE_AREA' dans Python) identifie les triangles de surface effective de chaque sommet pour guider la suppression des sommets, ce qui permet de simplifier la ligne tout en préservant au maximum son caractère. Cet algorithme est basé sur l’algorithme défini dans l’ouvrage de Visvalingam, M. et Whyatt, J. D., « Line Generalisation by Repeated Elimination of the Smallest Area », Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, The University of Hull (1992).

  • Cet outil modifie les paramètres Input Features (Entités en entrée) et Shared Edge Features (Entités à tronçons partagés). Il ne produit pas de nouvelle sortie.

  • La simplification est appliquée à tous les tronçons des entités en entrée (Input Features) et uniquement aux tronçons des entités à tronçons partagés (Shared Edge Features) qui ont un tronçon commun avec un tronçon d’une entité en entrée (Input Features). Les tronçons des entités à tronçons partagés Shared Edge Features qui n’ont pas de tronçon commun avec au moins un tronçon d’une entité en entrée (Input Features) ne sont pas simplifiés.

Syntaxe

arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
ParamètreExplicationType de données
in_features
[in_features,...]

Lignes ou polygones à simplifier.

Feature Layer
algorithm

Spécifie l'algorithme de simplification.

  • POINT_REMOVEConserve les points critiques qui contribuent à la forme globale d’un contour de polygone et supprime tous les autres points (Douglas-Peucker). Il s’agit de l’option par défaut.
  • BEND_SIMPLIFY Conserve les courbes critiques dans une ligne et élimine les courbes superflues (Wang-Müller).
  • WEIGHTED_AREAConserve les sommets qui forment les triangles de surface effective qui ont été pondérées selon la forme du triangle (Zhou-Jones).
  • EFFECTIVE_AREA Conserve les sommets qui forment les triangles de surface effective (Visvalingam-Whyatt).
String
tolerance

Détermine le degré de simplification. Si aucune unité n'est définie, les unités de l'entrée sont utilisées.

  • Pour l'algorithme POINT_REMOVE, la tolérance est la distance perpendiculaire autorisée maximum entre chaque sommet et la nouvelle ligne créée.
  • Pour l'algorithme BEND_SIMPLIFY, la tolérance est le diamètre d'un cercle qui avoisine une courbe significative.
  • Pour l’algorithme WEIGHTED_AREA, le carré de la tolérance est la surface d’un triangle significatif défini par trois sommets adjacents. Plus un triangle dévie de la forme équilatérale, plus la pondération attribuée est élevée et moins il est probable qu’il soit supprimé.
  • Pour l’algorithme EFFECTIVE_AREA, le carré de la tolérance est la surface d’un triangle significatif défini par trois sommets adjacents.
Linear Unit
shared_edge_features
[shared_edge_features,...]
(Facultatif)

Entités linéaires ou surfaciques qui seront simplifiées le long des tronçons partagés avec les entités en entrée. Les autres tronçons ne sont pas simplifiés.

Feature Layer
minimum_area
(Facultatif)

Superficie minimale pour qu'un polygone soit conservé. La valeur par défaut est zéro, laquelle conserve tous les polygones. Il est possible de spécifier une unité. Si tel n’est pas le cas, l’unité de l’entrée est utilisée. Ce paramètre est uniquement disponible si au moins une des entrées est une classe d'entités surfaciques.

Areal Unit
in_barriers
[in_barriers,...]
(Facultatif)

Entités ponctuelles, linéaires ou surfaciques qui agissent en tant qu’interruptions dans la simplification. Les entités simplifiées ne touchent pas ni ne traversent les entités d’interruption.

Feature Layer

Sortie dérivée

NomExplicationType de données
out_feature_class

Entités en entrée lissées.

Couche d'entités
out_shared_edge_feature_class

Entités à tronçons partagés.

Couche d'entités

Exemple de code

Exemple d’utilisation de l’outil SimplifySharedEdges (fenêtre Python)

Le script de fenêtre Python suivant montre comment utiliser l'outil SimplifySharedEdges en mode immédiat :

import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("Water;Parks;", 
                                      "POINT_REMOVE", 
                                      "10 Meters", 
                                      "Commercial;Highways;Buildings", 
                                      "0 SquareMeters")
Exemple d'utilisation de l’outil SimplifySharedEdges (script autonome)

Ce script autonome montre un exemple d'utilisation de l'outil SimplifySharedEdges.

# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological 
#              relationships along shared edges. For features included as 
#              shared_edge_features (4th argument of 
#              SimplifySharedEdges_cartography()) only the edges that are shared 
#              with in_features (1st argument) are simplified. 

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/LandUse.gdb"

# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None

# Execute Simplify Shared Edges
arcpy.SimplifySharedEdges_cartography(in_features, algorithm, tolerance, 
                                      shared_edge_features, minimum_area, 
                                      barriers)

Informations de licence

  • Basic: Non
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes