Disponible con una licencia de Spatial Analyst.
Resumen
Suaviza el límite entre zonas en un ráster.
Ilustración
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ámetro | Explicación | Tipo 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.
| String |
number_of_runs (Opcional) | Especifica el número de veces que se realizará el proceso de suavizado: una o dos.
| Boolean |
Valor de retorno
Nombre | Explicación | Tipo 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
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")
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")
Entornos
Información de licenciamiento
- Basic: Requiere Spatial Analyst
- Standard: Requiere Spatial Analyst
- Advanced: Requiere Spatial Analyst