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
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ètre | Explication | Type de données |
in_features [in_features,...] | Lignes ou polygones à simplifier. | Feature Layer |
algorithm | Spécifie l'algorithme de simplification.
| 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.
| 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
Nom | Explication | Type 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
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")
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)
Environnements
Informations de licence
- Basic: Non
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?