Simplificar línea (Cartografía)

Resumen

Simplifica líneas con la eliminación de vértices relativamente extraños y preserva la forma esencial.

Ilustración

Ilustración de la herramienta Simplificar línea
Resultados de muestra de los algoritmos de simplificación se muestran aquí para su comparación.

Uso

  • Esta herramienta utiliza 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.

    Las opciones del parámetro Algoritmo de simplificación se enumeran a continuación.

    • El algoritmo Retener puntos críticos (Douglas-Peucker) ("POINT_REMOVE" en Python) identifica y elimina vértices relativamente redundantes para simplificar los datos a fin de visualizarlos a escalas más pequeñas. Es la opción de algoritmo de simplificación más rápida de esta herramienta. Esta opción 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.
    • El algoritmo Retener curvaturas críticas (Wang-Müller) ("BEND_SIMPLIFY" en Python) identifica y elimina curvaturas relativamente insignificantes para simplificar los datos a fin de visualizarlos a escalas más pequeñas. Suele ser más preciso con respecto a la geometría de entrada que la opción Retener puntos críticos (Douglas-Peucker), pero puede tardar más tiempo en procesarse.
    • El algoritmo Retener áreas efectivas ponderadas (Zhou-Jones) ("WEIGHTED_AREA" en Python) identifica triángulos de un área efectiva para cada vértice. Seguidamente, los triángulos se ponderan mediante un conjunto de métricas a fin de comparar la planitud, 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.
    • El algoritmo Retener áreas efectivas (Visvalingam-Whyatt) ("EFFECTIVE_AREA" en Python) identifica 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.

  • El valor del parámetro Tolerancia de simplificación determina el grado de simplificación. Cuanto mayor sea la tolerancia, más gruesa será la geometría resultante. Con tolerancias más pequeñas se genera una geometría que representa de forma más precisa la entrada. Los campos MinSimpTol y MaxSimpTol se agregarán a la salida para almacenar la tolerancia que se utilizó.

    Heredado:

    Durante la resolución de la topología, en versiones de la herramienta anteriores a ArcGIS Pro 1.4 se modificaba la tolerancia por entidad y estos valores se almacenaban en los campos MinSimpTol y MaxSimpTol. Ahora, los valores de estos campos serán los mismos y equivaldrán a la tolerancia especificada en el parámetro Tolerancia de simplificación. Asegúrese de modificar los modelos y scripts existentes basados en estos campos.

    • Para el algoritmo Retener puntos críticos (Douglas-Peucker), la tolerancia será la distancia perpendicular máxima permitida entre cada vértice y la nueva línea creada.
    • Para el algoritmo Retener curvaturas críticas (Wang-Müller), la tolerancia será el diámetro de un círculo que se aproxima a una curvatura significativa.
    • Para el algoritmo Retener áreas efectivas ponderadas (Zhou-Jones), el cuadrado de la tolerancia será el área de un triángulo significativo definido mediante tres vértices adyacentes. Cuanto más se desvíe el triángulo de ser equilátero, mayor ponderación se dará y, por tanto, menores serán sus probabilidades de ser eliminado.
    • Para el algoritmo Retener áreas efectivas (Visvalingam-Whyatt), el cuadrado de la tolerancia es el área de un triángulo significativo definido mediante tres vértices adyacentes.

  • Utilice el parámetro Mantener puntos contraídos para crear una clase de entidad de puntos de salida para almacenar los extremos de cualquier línea que sea más pequeña que la tolerancia espacial de los datos. Se deriva la salida de puntos; utilizará el mismo nombre y ubicación que el valor del parámetro Clase de entidad de salida, pero con el sufijo _Pnt. La clase de entidad de línea de salida contiene todos los campos de la clase de entidad de entrada. La clase de entidad de punto de salida no contendrá ninguno de estos campos.

  • Se pueden crear errores topológicos como intersecciones propias y superposiciones entre entidades al simplificar la geometría. El parámetro Manejo de errores topológicos tiene tres opciones para determinar qué sucede en estos casos:

    • No verificar errores topológicos: no se identificarán los errores topológicos. El procesamiento es más rápido. Utilice esta opción cuando confíe en la precisión topológica de los datos.
    • Marcar errores topológicos: los errores topológicos se identificarán y se marcarán. La clase de entidad de salida incluirá los campos InLine_FID y SimLnFlag. El campo InLine_FID contendrá los Id. de entidad de entrada. El campo SimLnFlag contendrá un valor de 1 si existe un error topológico o un valor de 0 (cero) si no hay ningún error.
    • Resolver errores topológicos: no se crearán errores topológicos en la salida, y los errores que existen en la entrada tendrán vértices insertados en los puntos de intersección. Se conservarán las relaciones topológicas existentes entre entidades como bordes compartidos. El tiempo de procesamiento será mayor. La clase de entidad de salida incluirá los campos InLine_FID y SimLnFlag. El campo InLine_FID contendrá el Id. de entidad de entrada. El campo SimLnFlag contendrá un valor de 1 si existe un error topológico en la entrada o un valor de 0 (cero) si no hay ningún error.
    Heredado:

    Antes de ArcGIS Pro 1.4, la herramienta manejaba los errores topológicos utilizando los parámetros Verificar errores topológicos y Resolver errores topológicos. Estos parámetros siguen incluidos en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero ahora se ignoran y están ocultos en el panel Geoprocesamiento. El campo SimLnFlag se utilizó para marcar los errores topológicos introducidos por la herramienta en el procesamiento. Este campo identifica los errores presentes en la entrada.

  • Utilice el parámetro Capas de barrera de entrada para identificar las entidades que las líneas simplificadas no deben cruzar. Las entidades de barrera pueden ser puntos, líneas o polígonos.

  • Los dominios y subtipos se copiarán a la salida, incluso si el entorno Transferir propiedades de campos de geodatabase está desactivado.

  • El procesamiento de datasets grandes podría superar los límites de memoria. En este caso, considere la posibilidad de procesar los datos de entrada por partición identificando una clase de entidad poligonal relevante en la configuración de entorno Particiones cartográficas. Las partes de los datos definidos por los límites de partición se procesarán en secuencia. La clase de entidad resultante será sin fisuras y coherente en los bordes de la partición. Consulte Generalizar datasets grandes usando particiones para obtener más información.

  • Precaución:

    Se ignora la configuración del entorno Particiones cartográficas cuando el parámetro Manejo de errores topológicos está definido en No verificar errores topológicos o en Marcar errores topológicos.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Las entidades de línea de entrada que se van a simplificar.

Feature Layer
Clase de entidad de salida

La clase de entidad de línea de salida simplificada. Contiene todos los campos de la clase de entidad de entrada. La clase de entidad de línea de salida será correcta desde el punto de vista topológico. La herramienta no introduce errores de topología, sino que los errores topológicos de los datos de entrada se marcarán en la clase de entidad de línea de salida. La clase de entidad de salida incluirá los campos InLine_FID y SimLnFlag, que contienen los Id. de entidad de entrada y los errores topológicos de entrada, respectivamente. Un valor de SimLnFlag de 1 indica que existe un error topológico de entrada; un valor de 0 (cero) indica que no hay errores de entrada.

Feature Class
Algoritmo de simplificación

Especifica el algoritmo de simplificación de líneas que se utilizará.

  • Retener puntos críticos (Douglas-Peucker)Los puntos críticos que mantienen la forma esencial de una línea se conservarán y se eliminarán los demás puntos (Douglas-Peucker). Esta es la opción predeterminada.
  • Retener curvaturas críticas (Wang-Müller)Se conservarán las curvaturas críticas y las curvaturas extrañas se eliminarán de una línea (Wang-Müller).
  • Retener áreas efectivas ponderadas (Zhou-Jones)Se conservarán los vértices que forman triángulos de área efectiva ponderados por la forma del triángulo (Zhou-Jones).
  • Retener áreas efectivas (Visvalingam-Whyatt)Se conservarán los vértices que forman triángulos de área efectiva (Visvalingam-Whyatt).
String
Tolerancia de simplificación

El grado de simplificación que se utilizará. Puede elegir la unidad que prefiera; de lo contrario, se utilizarán las unidades de la entrada. Los campos MinSimpTol y MaxSimpTol se agregarán a la salida para almacenar la tolerancia que se utilizó durante el procesamiento.

  • Para el algoritmo Retener puntos críticos (Douglas-Peucker), la tolerancia es la distancia perpendicular máxima permitida entre cada vértice y la línea recién creada.
  • Para el algoritmo Retener curvaturas críticas (Wang-Müller), la tolerancia será el diámetro de un círculo que se aproxima a una curvatura significativa.
  • Para el algoritmo Retener áreas efectivas ponderadas (Zhou-Jones), el cuadrado de la tolerancia será el área de un triángulo significativo definido mediante tres vértices adyacentes. Cuanto más se desvíe el triángulo de ser equilátero, mayor ponderación se dará y, por tanto, menores serán sus probabilidades de ser eliminado.
  • Para el algoritmo Retener áreas efectivas (Visvalingam-Whyatt), el cuadrado de la tolerancia es el área de un triángulo significativo definido mediante tres vértices adyacentes.
Linear Unit
Resolver errores topológicos
(Opcional)
Heredado:

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para indicar cómo se resolvían los errores topológicos posiblemente introducidos durante el procesamiento. Este parámetro sigue incluido en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero está oculto en el panel Geoprocesamiento.

Boolean
Mantener puntos contraídos
(Opcional)

Especifica si se creará una clase de entidad de puntos de salida para almacenar los extremos de líneas que sean más pequeñas que la tolerancia espacial. Se deriva la salida de puntos; utilizará el mismo nombre y ubicación que el valor del parámetro Clase de entidad de salida, pero con el sufijo _Pnt.

  • Activado: se creará una clase de entidad de puntos de salida derivada para almacenar los extremos de líneas de longitud cero contraídas. Esta es la opción predeterminada.
  • Desactivado: no se creará una clase de entidad de puntos de salida derivada.
Boolean
Verificar errores topológicos
(Opcional)
Nota:

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para indicar cómo se manejaban los errores topológicos posiblemente introducidos durante el procesamiento. Este parámetro sigue incluido en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero está oculto en el panel Geoprocesamiento.

Boolean
Capas de barrera de entrada
(Opcional)

Entradas que contienen las entidades que van a actuar como barreras para la simplificación. Las líneas simplificadas resultantes no tocarán ni cruzarán las entidades de barrera. Por ejemplo, al simplificar líneas de contornos, las entidades de altura de punto introducidas como barreras garantizan que las líneas de contornos simplificadas no se van a simplificar a lo largo de estos puntos. La salida no infringirá la elevación indicada mediante alturas de punto medidas.

Feature Layer
Manejo de errores topológicos
(Opcional)

Especifica cómo se manejarán los errores topológicos. Se pueden introducir errores topológicos en el proceso de simplificación y pueden incluir líneas que se cruzan o se superponen.

  • No verificar errores topológicosNo se identificarán errores topológicos. Esta es la opción predeterminada.
  • Marcar errores topológicosSe marcarán los errores topológicos.
  • Resolver errores topológicosSe resolverán los errores topológicos.
String

Salida derivada

EtiquetaExplicaciónTipo de datos
Líneas contraídas a longitud cero

Cuando se activa el parámetro Mantener puntos contraídos, se crea una clase de entidad de puntos de salida para almacenar los extremos de líneas que sean más pequeñas que la tolerancia espacial de los datos.

Feature Class

arcpy.cartography.SimplifyLine(in_features, out_feature_class, algorithm, tolerance, {error_resolving_option}, {collapsed_point_option}, {error_checking_option}, {in_barriers}, {error_option})
NombreExplicaciónTipo de datos
in_features

Las entidades de línea de entrada que se van a simplificar.

Feature Layer
out_feature_class

La clase de entidad de línea de salida simplificada. Contiene todos los campos de la clase de entidad de entrada. La clase de entidad de línea de salida será correcta desde el punto de vista topológico. La herramienta no introduce errores de topología, sino que los errores topológicos de los datos de entrada se marcarán en la clase de entidad de línea de salida. La clase de entidad de salida incluirá los campos InLine_FID y SimLnFlag, que contienen los Id. de entidad de entrada y los errores topológicos de entrada, respectivamente. Un valor de SimLnFlag de 1 indica que existe un error topológico de entrada; un valor de 0 (cero) indica que no hay errores de entrada.

Feature Class
algorithm

Especifica el algoritmo de simplificación de líneas que se utilizará.

  • POINT_REMOVELos puntos críticos que mantienen la forma esencial de una línea se conservarán y se eliminarán los demás puntos (Douglas-Peucker). Esta es la opción predeterminada.
  • BEND_SIMPLIFYSe conservarán las curvaturas críticas y las curvaturas extrañas se eliminarán de una línea (Wang-Müller).
  • WEIGHTED_AREASe conservarán los vértices que forman triángulos de área efectiva ponderados por la forma del triángulo (Zhou-Jones).
  • EFFECTIVE_AREASe conservarán los vértices que forman triángulos de área efectiva (Visvalingam-Whyatt).
String
tolerance

El grado de simplificación que se utilizará. Puede elegir la unidad que prefiera; de lo contrario, se utilizarán las unidades de la entrada. Los campos MinSimpTol y MaxSimpTol se agregarán a la salida para almacenar la tolerancia que se utilizó durante el procesamiento.

  • Para el algoritmo POINT_REMOVE, la tolerancia es la distancia perpendicular máxima permitida entre cada vértice y la línea recién creada.
  • Para el algoritmo BEND_SIMPLIFY, la tolerancia será el diámetro de un círculo que se aproxima a una curvatura significativa.
  • Para el algoritmo WEIGHTED_AREA, el cuadrado de la tolerancia será el área de un triángulo significativo definido mediante tres vértices adyacentes. Cuanto más se desvíe el triángulo de ser equilátero, mayor ponderación se dará y, por tanto, menores serán sus probabilidades de ser eliminado.
  • Para el algoritmo EFFECTIVE_AREA, el cuadrado de la tolerancia será el área de un triángulo significativo definido mediante tres vértices adyacentes.
Linear Unit
error_resolving_option
(Opcional)
Heredado:

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para indicar cómo se resolvían los errores topológicos posiblemente introducidos durante el procesamiento. Este parámetro sigue incluido en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero está oculto en el panel Geoprocesamiento.

Boolean
collapsed_point_option
(Opcional)

Especifica si se creará una clase de entidad de puntos de salida para almacenar los extremos de líneas que sean más pequeñas que la tolerancia espacial. Se deriva la salida de puntos; utilizará el mismo nombre y ubicación que el valor del parámetro out_feature_class, pero con el sufijo _Pnt.

  • KEEP_COLLAPSED_POINTSSe creará una clase de entidad de puntos de salida derivada para almacenar los extremos de líneas de longitud cero contraídas. Esta es la opción predeterminada.
  • NO_KEEPNo se creará ninguna clase de entidad de punto de salida derivada.
Boolean
error_checking_option
(Opcional)
Nota:

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para indicar cómo se manejaban los errores topológicos posiblemente introducidos durante el procesamiento. Este parámetro sigue incluido en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero está oculto en el panel Geoprocesamiento.

Boolean
in_barriers
[in_barriers,...]
(Opcional)

Entradas que contienen las entidades que van a actuar como barreras para la simplificación. Las líneas simplificadas resultantes no tocarán ni cruzarán las entidades de barrera. Por ejemplo, al simplificar líneas de contornos, las entidades de altura de punto introducidas como barreras garantizan que las líneas de contornos simplificadas no se van a simplificar a lo largo de estos puntos. La salida no infringirá la elevación indicada mediante alturas de punto medidas.

Feature Layer
error_option
(Opcional)

Especifica cómo se manejarán los errores topológicos. Se pueden introducir errores topológicos en el proceso de simplificación y pueden incluir líneas que se cruzan o se superponen.

  • NO_CHECKNo se identificarán errores topológicos. Esta es la opción predeterminada.
  • FLAG_ERRORSSe marcarán los errores topológicos.
  • RESOLVE_ERRORSSe resolverán los errores topológicos.
String

Salida derivada

NombreExplicaciónTipo de datos
out_point_feature_class

Cuando el parámetro collapsed_point_option es KEEP_COLLAPSED_ POINTS, se crea una clase de entidad de puntos de salida para almacenar los extremos de líneas que sean más pequeñas que la tolerancia espacial de los datos.

Feature Class

Muestra de código

Ejemplo 1 de SimplifyLine (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función SimplifyLine de modo inmediato.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.SimplifyLine(
    "roads.shp", 
    "C:/output/output.gdb/simplified_roads", 
    "POINT_REMOVE", 
    20)
Ejemplo 2 de SimplifyLine (script independiente)

El siguiente script independiente muestra cómo utilizar la función SimplifyLine.

# Name: SimplifyLine_Example2.py
# Description: Simplify line features from two feature classes, rivers and coastlines,
# while maintaining their connections

# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inRiverFeatures = "rivers"
inCoastlineFeatures = "coastlines"

mergedFeatures = "C:/data/PortlandOutput.gdb/merged_lines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/merged_lines_simplified"
tempLayer = "tempLyr"

outRiverFeatureClass = "C:/data/PortlandOutput.gdb/rivers_final"
outCoastlineFeatureClass = "C:/data/PortlandOutput.gdb/coastlines_final"

# Merge rivers and coastlines into one feature class, 
# assuming that they have a common f-code field 
# with value 40 for rivers and 80 for coastlines.
arcpy.management.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)

# Simplify all lines.
arcpy.cartography.SimplifyLine(mergedFeatures, 
                simplifiedFeatures, 
                "BEND_SIMPLIFY", 
                100, 
                "KEEP_COLLAPSED_POINTS")
 
# Select rivers and coastlines by their f-code values 
# and put them in separate feature classes.
arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
arcpy.management.CopyFeatures(tempLayer, outRiverFeatureClass)

arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
arcpy.management.CopyFeatures(tempLayer, outCoastlineFeatureClass)

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados