Refinado de límites (Spatial Analyst)

Disponible con una licencia de Spatial Analyst.

Resumen

Suaviza el límite entre zonas en un ráster.

Más información sobre cómo funciona el Refinado de límites

Ilustración

Ilustración de la herramienta Refinado de límites
OutRas = BoundaryClean(InRas1)

Uso

  • La herramienta Refinado de límites generaliza o simplifica rásteres al suavizar los límites entre zonas. La herramienta proporciona opciones para controlar cómo influyen las celdas de las zonas en la entrada en el suavizado y la cantidad de suavizado que se aplicará.

  • La herramienta aplica las técnicas de morfología matemática de la expansión (dilación) y la contracción (erosión) al suavizar los límites (Serra, 1982). Cada celda de entrada se evalúa con sus vecinos ortogonales y diagonales inmediatos.

  • El proceso de suavizado primero ordena las celdas vecinas por una prioridad en particular. La prioridad determina qué zona de las celdas vecinas puede reemplazar el valor de la celda de procesamiento en la salida.

  • La prioridad puede basarse en el valor o en el tamaño de las zonas. El parámetro Tipo de ordenación (sort_type en Python) determina el tipo de ordenación que se debe utilizar.

    El método predeterminado, No ordenar (NO_SORT en Python), evalúa la prioridad en función del valor de las zonas. Las celdas de zonas con valores más grandes tendrán mayor prioridad para expandirse en zonas con valores más pequeños. No se tiene en cuenta el tamaño de las zonas.

    El tamaño o el área total de las zonas se puede utilizar para ordenar la prioridad. El tamaño viene determinado por el recuento de celdas que componen cada zona. Con la configuración Descendente (DESCEND en Python), las zonas se ordenan por tamaño en orden descendente. Las zonas con áreas totales más grandes tendrán prioridad para expandirse en zonas con áreas más pequeñas. Con la configuración Ascendente (ASCEND en Python), ocurre lo contrario: las zonas con áreas totales más pequeñas tendrán prioridad para expandirse en zonas con áreas totales más grandes.

  • La cantidad de suavizado se controla mediante el parámetro Ejecutar expansión y contracción dos veces (number_of_runs en Python), que determina la cantidad de veces que se realizará el proceso de expansión y contracción.

    Con la configuración desactivada (ONE_WAY en Python), el proceso de expansión y contracción se realiza una vez. Con la configuración activada (TWO_WAY en Python), el proceso de expansión y contracción se realiza dos veces, lo que da como resultado un grado adicional de suavizado de los límites de zona.

    Para obtener información adicional sobre el algoritmo, consulte la sección Refinado de límites de Suavizar bordes de zona con Refinado de límites y Filtro mayoritario.

  • Si los valores de las ocho celdas vecinas son los mismos que la celda de procesamiento, la celda de salida conservará el valor de la celda de entrada.

  • Referencias:

    • Serra, J. Image Analysis and Mathematical Morphology, Academic Press, Londres 1982.
  • Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento que se aplican a esta herramienta.

Sintaxis

BoundaryClean(in_raster, {sort_type}, {number_of_runs})
ParámetroExplicaciónTipo de datos
in_raster

El ráster de entrada para el que se suavizarán los límites entre zonas.

Debe ser de tipo entero.

Raster Layer
sort_type
(Opcional)

Especifica el tipo de ordenamiento que debe utilizar en el proceso de suavizado. La ordenación determina la prioridad por la que se pueden expandir las celdas hacia sus vecinos.

La ordenación se puede basar en el valor o tamaño de la zona.

  • NO_SORTLa prioridad se determina por el valor de la zona. No se tiene en cuenta el tamaño de las zonas. Las zonas con valores más grandes tendrán mayor prioridad para expandirse en zonas con valores más pequeños en la salida suavizada. Esta es la opción predeterminada.
  • DESCENDLas zonas se ordenan por tamaño en orden descendente. Las zonas con las áreas totales más grandes tienen una prioridad más alta de expandirse a zonas con áreas totales más pequeñas. Esta opción tiende a eliminar o reducir la prevalencia de celdas de zonas más pequeñas en la salida suavizada.
  • ASCENDLas zonas se ordenan por tamaño en orden ascendente. Las zonas con áreas totales más pequeñas tienen una prioridad mayor de expandirse en áreas totales más grandes. Esta opción tiende a conservar o aumentar la prevalencia de celdas de zonas más pequeñas en la salida suavizada.
String
number_of_runs
(Opcional)

Especifica el número de veces que se realizará el proceso de suavizado: una o dos.

  • TWO_WAYLa operación de expansión y contracción se realiza dos veces. La primera vez, la operación se realiza según el tipo de ordenación especificado. La segunda vez, se realiza una operación de expansión y contracción adicional con la prioridad invertida. Esta es la opción predeterminada.
  • ONE_WAYLa operación de expansión y contracción se realiza una vez según el tipo de ordenación.
Boolean

Valor de retorno

NombreExplicaciónTipo de datos
out_raster

Ráster generalizado de salida.

Se suavizarán los límites entre zonas en la entrada.

La salida es siempre de tipo entero.

Raster

Muestra de código

Ejemplo 1 de BoundaryClean (ventana de Python)

Este ejemplo suaviza los límites entre zonas en orden descendente con un recorrido de dos sentidos.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
Ejemplo 2 de BoundaryClean (secuencia de comandos independiente)

Este ejemplo suaviza los límites entre zonas en orden descendente con un recorrido de dos sentidos.

# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones 
#              by expanding and shrinking it.
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Set local variables
inRaster = "land"

# Execute BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")

# Save the output 
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")

Información de licenciamiento

  • Basic: Requiere Spatial Analyst
  • Standard: Requiere Spatial Analyst
  • Advanced: Requiere Spatial Analyst

Temas relacionados