Suavizar línea (Cartografía)

Resumen

Suaviza ángulos cerrados en líneas para mejorar la calidad estética o cartográfica.

Más información sobre cómo funcionan las herramientas Suavizar línea y Suavizar polígono

Ilustración

Ilustración de la herramienta Suavizar línea
Los ángulos agudos de una línea se pueden suavizar con los métodos PAEK o Interpolación de Bézier.

Uso

  • El parámetro Algoritmo de suavizado tiene estas opciones:

    • Aproximación polinomial con núcleo exponencial (PAEK): suaviza las líneas en función de una tolerancia de suavizado. Cada línea suavizada puede tener más vértices que la línea de origen. El parámetro Tolerancia del suavizado controla la longitud de una ruta en movimiento que se utiliza para calcular los nuevos vértices. Cuanto menor sea la longitud, más detalles se preservarán y mayor será el tiempo de procesamiento.
    • Interpolación de Bézier: suaviza líneas sin utilizar una tolerancia al crear curvas de Bézier aproximadas que coinciden con las líneas de entrada.
  • Utilice el parámetro Capas de barrera de entrada para identificar las entidades que las líneas suavizadas no deben cruzar. Las entidades de barrera pueden ser puntos, líneas o polígonos.

  • El procesamiento de datasets grandes podría superar los límites de memoria. En estos casos, considere la posibilidad de procesar los datos de entrada por partición identificando una clase de entidad poligonal relevante en el 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 el entorno Particiones cartográficas cuando el parámetro Manejo de errores topológicos está establecido en la opción No verificar errores topológicos o Marcar errores topológicos.

  • Los dominios y subtipos se copian a la salida, incluso cuando el entorno Transferir dominios de campo, subtipos y reglas de atributo está desactivado.

  • La clase de entidad de línea de salida será correcta desde el punto de vista topológico. Todos 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 incluye los siguientes campos adicionales:

    • InLine_FID—Los Id. de entidad de entrada.
    • SmoLnFlag—Errores topológicos de la entrada. El valor 1 indica que existe un error topológico; el valor 0 indica que no hay errores.

    Heredado:

    Antes de la versión ArcGIS Pro 2.2 de esta herramienta, se utilizaba el parámetro Conservar extremo para anillos para especificar si se conservaba el extremo de un anillo de polígono aislado resultante. Este parámetro sigue incluido en la sintaxis de la herramienta a efectos de compatibilidad con los scripts y modelos, pero ahora se ignora y está oculto en el cuadro de diálogo de la herramienta.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Las entidades lineales que se suavizarán.

Feature Layer
Clase de entidad de salida

La clase de entidad de salida que se creará.

Feature Class
Algoritmo de suavizado

Especifica el algoritmo de suavizado que se va a utilizar.

  • Aproximación polinómica con núcleo exponencial (PAEK)Se calculará una línea suavizada que no pasará a través de los vértices de la línea de entrada. PAEK es el acrónimo de Aproximación polinómica con núcleo exponencial (por sus siglas en inglés). Esta es la opción predeterminada.
  • Interpolación de BézierLas curvas de Bézier se ajustarán entre los vértices. Las líneas resultantes pasarán por los vértices de las líneas de entrada. Este algoritmo no requiere una tolerancia. Las curvas de Bézier serán aproximadas en la salida.
String
Tolerancia del suavizado

La tolerancia de suavizado que utilizada por la opción Aproximación polinomial con núcleo exponencial (PAEK) del parámetro Algoritmo de suavizado. Se debe especificar una tolerancia, la cual debe ser mayor que cero. Puede elegir la unidad que prefiera; el valor predeterminado es la unidad de la entidad. Este parámetro no está disponible cuando se utiliza la opción Interpolación de Bézier del parámetro Algoritmo de suavizado.

Linear Unit
Preservar extremo para las líneas cerradas
(Opcional)

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para especificar si se conservaban los extremos de líneas cerradas. 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 cuadro de diálogo de la herramienta.

Especifica si se conservarán los extremos de líneas cerradas. Esta opción funciona sólo con el algoritmo PAEK.

  • Activado: se conservará el extremo de una línea cerrada. Esta es la opción predeterminada.
  • Desactivado: no se conservará el extremo de una línea cerrada, sino que se suavizará.
Boolean
Manejo de errores topológicos
(Opcional)

Especifica cómo se manejarán los errores topológicos (posiblemente introducidos en el proceso, como el cruce o superposición de línea).

  • No verificar errores topológicosNo se identificarán errores topológicos. Esta es la opción predeterminada.
  • Marcar errores topológicosSi se encuentran errores topológicos, se marcarán.
  • Resolver errores topológicosSi se encuentran errores topológicos, se resolverán.
String
Capas de barrera de entrada
(Opcional)

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

Feature Layer

arcpy.cartography.SmoothLine(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
NombreExplicaciónTipo de datos
in_features

Las entidades lineales que se suavizarán.

Feature Layer
out_feature_class

La clase de entidad de salida que se creará.

Feature Class
algorithm

Especifica el algoritmo de suavizado que se va a utilizar.

  • PAEKSe calculará una línea suavizada que no pasará a través de los vértices de la línea de entrada. PAEK es el acrónimo de Aproximación polinómica con núcleo exponencial (por sus siglas en inglés). Esta es la opción predeterminada.
  • BEZIER_INTERPOLATIONLas curvas de Bézier se ajustarán entre los vértices. Las líneas resultantes pasarán por los vértices de las líneas de entrada. Este algoritmo no requiere una tolerancia. Las curvas de Bézier serán aproximadas en la salida.
String
tolerance

La tolerancia de suavizado que utilizará la opción PAEK del parámetro algorithm. Se debe especificar una tolerancia, la cual debe ser mayor que cero. Puede elegir la unidad que prefiera; el valor predeterminado es la unidad de la entidad. Debe introducir 0 como marcador de posición cuando utilice la opción BEZIER_INTERPOLATION del parámetro algorithm.

Linear Unit
endpoint_option
(Opcional)

Este es un parámetro heredado que ya no se utiliza. Antes se utilizaba para especificar si se conservaban los extremos de líneas cerradas. 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 cuadro de diálogo de la herramienta.

Especifica si se conservarán los extremos de líneas cerradas. Esta opción funciona sólo con el algoritmo PAEK.

  • FIXED_CLOSED_ENDPOINTSe conservará el extremo de una línea cerrada. Esta es la opción predeterminada.
  • NO_FIXEDNo se conservará el extremo de una línea cerrada, sino que se suavizará.
Boolean
error_option
(Opcional)

Especifica cómo se manejarán los errores topológicos (posiblemente introducidos en el proceso, como el cruce o superposición de línea).

  • NO_CHECKNo se identificarán errores topológicos. Esta es la opción predeterminada.
  • FLAG_ERRORSSi se encuentran errores topológicos, se marcarán.
  • RESOLVE_ERRORSSi se encuentran errores topológicos, se resolverán.
String
in_barriers
[in_barriers,...]
(Opcional)

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

Feature Layer

Muestra de código

Ejemplo de SmoothLine (ventana de Python)

La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función SmoothLine de modo inmediato.

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
Ejemplo 2 de SmoothLine (script independiente)

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

# Name: SmoothLine_Example2.py
# Description: Simplify and then smooth coastlines

# Import system modules
import arcpy

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

# Set local variables
inCoastlineFeatures = "coastlines"
barriers = "C:/data/Portland.gdb/Structures/buildings"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"

# Simplify coastlines.
arcpy.cartography.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 
                "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK", barriers)

# Smooth coastlines.
arcpy.cartography.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", 
              "FLAG_ERRORS", barriers)

Información de licenciamiento

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

Temas relacionados