Resumen
Simplifica los bordes de las entidades de entrada y al mismo tiempo mantiene la relación topológica con los bordes compartidos con otras entidades.
Ilustración
Uso
Esta herramienta emplea distintos algoritmos de simplificación para diferentes finalidades. Para más información sobre estos algoritmos, consulte Cómo funcionan Simplificar línea y Simplificar polígono.
- El algoritmo Retener puntos críticos (Douglas-Peucker) (algorithm='POINT_REMOVE' en Python) funciona identificando y eliminando vértices relativamente redundantes para simplificar los datos a fin de visualizarlos a escalas más pequeñas. Es el algoritmo de simplificación más rápido de esta herramienta. Este algoritmo se suele utilizar para la compresión de datos o para una simplificación más gruesa. La angulosidad de las líneas resultantes se incrementa considerablemente a medida que aumenta la tolerancia. Este algoritmo se basa en el algoritmo de Douglas-Peucker: Douglas, David y 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).
- El algoritmo Retener curvaturas críticas (Wang-Müller) (algorithm='BEND_SIMPLIFY' en Python) funciona identificando y eliminando curvaturas relativamente insignificantes para simplificar los datos a fin de visualizarlos a escalas más pequeñas. Suele ser más fiel a la geometría de entrada que el algoritmo Retener puntos críticos (Douglas-Peucker), pero puede tardar más tiempo en procesarse. Este algoritmo se basa en el algoritmo definido en Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998).
- El algoritmo Retener áreas efectivas ponderadas (Zhou-Jones) (algorithm='WEIGHTED_AREA' en Python) funciona identificando primero triángulos de un área efectiva para cada vértice. Seguidamente, estos triángulos se ponderan mediante un conjunto de métricas a fin de comparar lo llano, el sesgo y la convexidad de cada área. Las áreas ponderadas determinan la eliminación de sus vértices correspondientes para simplificar la línea manteniendo a la vez la mayor cantidad de carácter posible. Este algoritmo se basa en el algoritmo definido en Zhou, Sheng and Jones, Christopher B., "Shape-Aware Line Generalisation with Weighted Effective Area," en Fisher, Peter F. (Ed.), Developments in Spatial Handling: 11th International Symposium on Spatial Handling, 369–80 (2005).
- El algoritmo Retener áreas efectivas (Visvalingam-Whyatt) (algorithm='EFFECTIVE_AREA' en Python) funciona identificando triángulos del área efectiva para que cada vértice guíe la eliminación de vértices para simplificar la línea mientras se mantienen tantos caracteres como resulta posible. Este algoritmo se basa en el algoritmo definido en Visvalingam, M. and Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area," Cartographic Information Systems Research Group (CISRG) Documento de trabajo 10, The University of Hull (1992).
Esta herramienta modifica los parámetros Entidades de entrada y Entidades de eje compartido. No genera una nueva salida.
La simplificación se aplica a todos los bordes de las Entidades de entrada y solamente a los bordes de las Entidades de eje compartido que comparten un borde con cualquier borde de las Entidades de entrada. No se simplifican los bordes de las Entidades de eje compartido que no comparten ningún borde con al menos un borde de las Entidades de entrada.
Sintaxis
arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
Parámetro | Explicación | Tipo de datos |
in_features [in_features,...] | Las líneas o polígonos que se van a simplificar. | Feature Layer |
algorithm | Especifica el algoritmo de simplificación.
| String |
tolerance | Determina el grado de simplificación. Si no se especifica ninguna unidad, se utilizarán las unidades de la entrada.
| Linear Unit |
shared_edge_features [shared_edge_features,...] (Opcional) | Las entidades poligonales o de línea que se simplificarán a lo largo de los bordes compartidos con entidades de entrada. El resto de bordes no se simplificarán. | Feature Layer |
minimum_area (Opcional) | El área mínima para que se conserve un polígono. El valor predeterminado es 0, en cuyo caso se conservarán todos los polígonos. Puede especificar unidades. Si no se especifica ninguna, se utilizarán las unidades de la entrada. Este parámetro está disponible solo cuando al menos una de las entradas es una clase de entidad poligonal. | Areal Unit |
in_barriers [in_barriers,...] (Opcional) | Entidades de punto, de línea o poligonales que actúan como barreras para la simplificación. Las entidades simplificadas no tocarán ni cruzarán entidades de barrera. | Feature Layer |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_feature_class | Las entidades de entrada suavizadas. | Capa de entidades |
out_shared_edge_feature_class | Las entidades de eje compartido. | Capa de entidades |
Muestra de código
El siguiente scriptde la ventana de Python muestra cómo utilizar la herramienta SimplifySharedEdges en el modo inmediato:
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")
Este script independiente muestra un ejemplo del uso de la herramienta 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)
Entornos
Información de licenciamiento
- Basic: No
- Standard: Sí
- Advanced: Sí