Disponible con una licencia de Spatial Analyst.
Resumen
Crea una tabla y un gráfico de histograma donde se muestra la frecuencia de distribución de los valores de celda en la entrada de valores correspondiente a cada zona única.
Uso
El histograma zonal permite investigar la distribución de frecuencia de los valores de un dataset contenido en clases de otro dataset. Los ejemplos incluyen distribución de pendiente dentro de clases de uso de suelo, distribución de precipitaciones dentro de clases de elevación o distribución de delitos por zonas de patrullaje.
El número de clases de un histograma zonal depende de cómo se especifique el Ráster de valores de entrada (in_value_raster en Python).
Cuando esté especificado como un dataset ráster, se aplicarán las siguientes condiciones:
- Para un ráster entero con menos de 25 valores únicos, el número de clases coincidirá con el número de valores únicos del ráster de valores.
- Para un ráster entero con más de 25 valores únicos, los valores se dividirán en 256 clases, de 1 a 256. Si el número de valores únicos es menor de 256, algunas de las clases tendrán una frecuencia de 0.
- Para un ráster de punto flotante, los valores se dividirán en 256 clases, de 1 a 256.
Cuando esté especificado como capa ráster, se aplicarán las siguientes condiciones:
- Para Extender la simbología, se utilizará el tipo de extensión y los valores se dividirán en 256 clases, de 1 a 256.
- Para la simbología Clasificar o Valores únicos, el número de clases coincidirá con las clases o los valores únicos de la simbología.
- El análisis zonal se realizará dentro del rango de valores especificado por la simbología Extender, Clasificar o Valores únicos. Cualquier valor del ráster de valores que no se muestre en la simbología se omitirá del cálculo.
- Para la simbología Discreto o Campo vectorial, el análisis zonal omitirá la simbología. El análisis se realizará solo teniendo en cuenta el tipo de datos y el número de valores únicos en el ráster de valores, igual que cuando el ráster de valor de entrada se especifica como un dataset ráster.
- El histograma zonal mostrará los valores de clase de las etiquetas de simbología de la capa ráster de valores.
Una zona se define como todas las áreas de la entrada que tienen el mismo valor. No es necesario que las áreas sean contiguas. Puede usar tanto rásteres como entidades para la entrada de zona.
Si los Datos de zonas de entidad o ráster de entrada (in_zone_data en Python) son un ráster, debe ser un ráster entero.
Si los datos de zonas de entidad o ráster de entrada (in_zone_data en Python) son una entidad, se convertirá internamente en un ráster utilizando el tamaño de celda y la alineación de celda del ráster de valores de entrada (in_value_raster en Python).
Si el tamaño de celda de los datos de zonas de entidad o ráster de entrada (in_zone_data en Python) y el ráster de valores de entrada (in_value_raster en Python) es distinto, el tamaño de celda de salida será el valor Máximo de entradas y el Ráster de valores de entrada se utilizará internamente como el ráster de alineación. Si el tamaño de celda es el mismo pero las celdas no están alineadas, el ráster de valores de entrada se utilizará internamente como el ráster de alineación. En ambos casos, se desencadenará un remuestreo interno antes de realizar la operación zonal.
Cuando las entradas de zona y de valor son rásteres del mismo tamaño de celda y las celdas están alineadas, se utilizan directamente en la herramienta y no se remuestrean internamente durante ejecución de la herramienta.
Si los Datos de zonas de entidad o ráster de entrada (in_zone_data en Python) son una entidad de puntos, puede haber más de un punto contenido dentro de una celda concreta del ráster de valores de entrada. Para dichas celdas, el valor de zona se determina mediante el punto con el campo ObjectID más bajo (por ejemplo, OID o FID).
Si los Datos de zonas de entidad o ráster de entrada (in_zone_data en Python) tienen polígonos que se superponen, el análisis zonal no se realizará para cada polígono individual. Debido a que la entrada de entidades se convierte en un ráster, cada ubicación puede tener solo un valor.
Un método alternativo es procesar la operación zonal con iteración para cada una de las zonas poligonales e intercalar los resultados.
El valor del parámetro Campo de zona (zone_field en Python) debe ser de tipo entero o de texto.
Al especificar los Datos de zonas de entidad o ráster de entrada (in_zone_data en Python), el campo de zona predeterminado será el primer campo entero o de texto disponible. Si no existen otros campos válidos, el campo ObjectID (por ejemplo, OID o FID) será el valor predeterminado.
Un gráfico de histograma de zona no se genera por defecto. Para crear el gráfico, active el parámetro Zonas como filas en la tabla de salida (parámetro zones_as_rows configurado en ZONES_AS_ROWS en Python) y especifique Nombre del gráfico de salida (parámetro out_graph en Python). El gráfico de histograma zonal solo puede crearse en la aplicación ArcGIS Pro y no se admite desde un script independiente.
Cuando se crea la tabla de salida al desactivar el parámetro Zonas como filas en la tabla de salida, el campo de etiqueta contendrá los valores del dataset ráster de valor o las etiquetas de simbología de capa, dependiendo de cómo se especifique el ráster de valor de entrada.
Cuando se crea la tabla de salida al activar el parámetro Zonas como filas en la tabla de salida, el campo de etiqueta contendrá los valores del ráster de zona.
Consulte Entornos de análisis y Spatial Analyst para obtener detalles adicionales sobre los entornos de geoprocesamiento que se aplican a esta herramienta.
Sintaxis
ZonalHistogram(in_zone_data, zone_field, in_value_raster, out_table, {out_graph}, {zones_as_rows})
Parámetro | Explicación | Tipo de datos |
in_zone_data | Dataset que define las zonas. Las zonas pueden definirse mediante un ráster entero o una capa de entidades. | Raster Layer; Feature Layer |
zone_field | El campo que contiene los valores que definen cada zona. Puede ser un campo de enteros o de cadenas de caracteres del dataset zonal. | Field |
in_value_raster | Ráster que contiene los valores utilizados para crear el histograma. | Raster Layer |
out_table | El archivo de la tabla de salida. El formato de la tabla está determinado por la ubicación y la ruta de salida. De forma predeterminada, la salida será una tabla de geodatabase en un espacio de trabajo de geodatabase y una tabla dBASE en un espacio de trabajo de archivo. La salida de gráfico opcional se crea a partir de la información en la tabla. | Table |
out_graph (Opcional) | El nombre del gráfico de salida para mostrar. | Graph |
zones_as_rows (Opcional) | Especifica cómo se representará el ráster de valores de entrada en la tabla de salida.
| Boolean |
Muestra de código
En este ejemplo se crea una tabla .dbf de histograma de zona y un archivo de gráfico.
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalHist = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf",
"znhist_graphl", "ZONES_AS_ROWS")
En este ejemplo se crea una tabla .dbf de histograma de zona.
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table
# showing the amount of value cells
# for each unique input zone.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tb2.dbf"
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable)
Entornos
Información de licenciamiento
- Basic: Requiere Spatial Analyst
- Standard: Requiere Spatial Analyst
- Advanced: Requiere Spatial Analyst