Etiqueta | Explicación | Tipo de datos |
Entidades de zona de entrada | Las entidades utilizadas para identificar zonas. | Feature Layer |
Campos de zona | El campo o los campos de atributo que se utilizará para definir zonas. | Field |
Entidades de clase de entrada | Las entidades utilizadas para identificar clases. | Feature Layer |
Tabla de Salida | La tabla que contendrá la tabulación cruzada de intersecciones entre zonas y clases. | Table |
Campos de clase (Opcional) | El campo o campos de atributo utilizados para definir las clases. | Field |
Campos de suma (Opcional) | Los campos que se sumarán del parámetro Entidades de clase de entrada. | Field |
Tolerancia XY (Opcional) | La distancia que determina el rango en el cual las entidades o sus vértices se consideran iguales. De forma predeterminada, esta es la tolerancia x,y del valor del parámetro Entidades de la zona de entrada. Precaución:El cambio del valor de este parámetro puede generar un fallo o resultados inesperados. Se recomienda no modificar este parámetro. Se ha eliminado de la vista en el cuadro de diálogo de la herramienta. Se utiliza de forma predeterminada la propiedad tolerancia x,y de referencia espacial de la clase de entidad de entrada. | Linear Unit |
Unidades de salida (Opcional) | Especifica las unidades que se utilizarán para calcular las mediciones de área o longitud. No se admite la configuración de unidades de salida cuando las entidades de clase de entrada son puntos.
| String |
Resumen
Calcula la intersección entre dos clases de entidad y realiza una tabulación cruzada del área, longitud o recuento de las entidades que se intersecan.
Ilustración
Uso
Una zona se compone de todas las entidades del parámetro Entidades de zona de entrada que tienen los mismos valores en el parámetro Campos de zona. De forma similar, una clase se compone de todas las entidades del parámetro Entidades de clase de entrada que tienen los mismos valores en el parámetro Campos de clase. Las entidades no tienen que ser contiguas para estar en la misma zona o clase. Esta herramienta calcula cuánto de la zona se interseca por cada clase (área y porcentaje del área de zona).
Si no se especifica ningún valor para Campos de clase, todas las entidades del parámetro Entidades de clase de entrada se considerarán una sola clase. El valor de Tabla de salida contendrá un registro para cada zona.
Si se especifica un valor para Campos de clase, el valor de Tabla de salida contendrá n registros para cada zona, donde n es el número de clases dentro de esa zona. Por ejemplo, si una zona contiene cuatro clases, el valor de Tabla de salida contendrá cuatro registros para esa zona.
Los atributos numéricos del parámetro Entidades de clase de entrada se pueden sumar por zona con el parámetro Sumar campos. Los valores de suma de una clase representan una proporción de los valores de suma basada en el porcentaje de la clase que interseca la zona.
Precaución:
Utilice campos con valores absolutos (no valores normalizados relativos, como porcentajes o densidades) en Campos de suma, dado que los valores pueden dividirse y distribuirse en diferentes zonas.
No se admite el uso de un valor de dimensión Entidades de clase de entrada mayor que el valor de Entidades de zona de entrada.
- Si los valores de Entidades de zona de entrada son puntos, los valores de Entidades de clase de entrada no pueden ser polígonos ni líneas.
- Si los valores de Entidades de zona de entrada son líneas, los valores de Entidades de clase de entrada no pueden ser polígonos.
Si los valores de Entidades de zona de entrada y las Entidades de clase de entrada son polígonos, las estadísticas de la tabla de salida se basarán en cálculos de área.
Si los valores de Entidades de clase de entrada son líneas, las estadísticas de la tabla de salida se basarán en cálculos lineales.
Si los valores de Entidades de clase de entrada son puntos, las estadísticas de la tabla de salida se basarán en recuentos de entidades.
Si los valores de Entidades de zona de entrada y Entidades de clase de entrada presentan la misma dimensión (es decir, ambas son polígonos, líneas o puntos), el campo PERCENTAGE de salida registra el porcentaje de la entidad de zona que se interseca por la clase.
Si los valores de Entidades de zona de entrada y Entidades de clase de entrada presentan dimensiones diferentes (zona poligonal con clase de línea, zona poligonal con clase de punto, o zona lineal con clase de punto), el campo PERCENTAGE de salida registra el porcentaje de la clase que interseca la zona poligonal.
Es posible que el campo PERCENTAGE registre un valor porcentual superior al 100 cuando existen entidades superpuestas en los parámetros Entidades de zona de entrada o Entidades de clase de entrada.
El campo AREA se incluye en la tabla de salida solo si los valores de Entidades de zona de entrada y Entidades de clase de entrada son polígonos. El campo AREA contiene el área de los valores de Entidades de zona de entrada que intersecan los valores de Entidades de clase de entrada.
El campo LENGTH se incluye en la tabla de salida si los valores de Entidades de clase de entrada son líneas. El campo LENGTH contiene la longitud de la intersección entre los valores de Entidades de zona de entrada y Entidades de clase de entrada.
El campo PNT_COUNT se incluye en la tabla de salida si los valores de Entidades de clase de entrada son puntos. El campo PNT_COUNT contiene el número de puntos de Entidades de clase de entrada que intersecan los valores de Entidades de zona de entrada.
Al usar capas de entidades, si cualquiera de las entidades está seleccionada, solamente las entidades seleccionadas se usan en los cálculos.
La determinación de la intersección de entidades de zona y clase sigue las mismas reglas que la herramienta Intersecar.
Utilice la herramienta Tabla pivote para transformar el valor de Tabla de salida en una tabla que contenga un registro para cada zona, con clases de atributos como campos de atributo individuales. Rellene los parámetros de la herramienta Tabla pivote de la siguiente forma:
- Tabla de entrada: Tabular intersección Tabla de salida
- Campos de entrada: Tabular intersección Campos de zona
- Campo Pivote: Tabular intersección Campos de clase
- Campo de valor: Tabular intersección Campos de suma o AREA, LENGTH, PERCENTAGE
Parámetros
arcpy.analysis.TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
Nombre | Explicación | Tipo de datos |
in_zone_features | Las entidades utilizadas para identificar zonas. | Feature Layer |
zone_fields [zone_fields,...] | El campo o los campos de atributo que se utilizará para definir zonas. | Field |
in_class_features | Las entidades utilizadas para identificar clases. | Feature Layer |
out_table | La tabla que contendrá la tabulación cruzada de intersecciones entre zonas y clases. | Table |
class_fields [class_fields,...] (Opcional) | El campo o campos de atributo utilizados para definir las clases. | Field |
sum_fields [sum_fields,...] (Opcional) | Los campos que se sumarán del parámetro in_class_features. | Field |
xy_tolerance (Opcional) | La distancia que determina el rango en el cual las entidades o sus vértices se consideran iguales. De forma predeterminada, esta es la tolerancia x,y del valor del parámetro in_zone_features. Precaución:El cambio del valor de este parámetro puede generar un fallo o resultados inesperados. Se recomienda no modificar este parámetro. Se ha eliminado de la vista en el cuadro de diálogo de la herramienta. Se utiliza de forma predeterminada la propiedad tolerancia x,y de referencia espacial de la clase de entidad de entrada. | Linear Unit |
out_units (Opcional) | Especifica las unidades que se utilizarán para calcular las mediciones de área o longitud. No se admite la configuración de unidades de salida cuando las entidades de clase de entrada son puntos.
| String |
Muestra de código
Utilizar la función TabulateIntersection en la ventana de Python para buscar el área de todos los tipos de vegetación de cada zona.
import arcpy
arcpy.analysis.TabulateIntersection("Zones", "zone_id", "Vegetation",
r"C:\Esri\veganalysis.gdb\vegtypeAreas",
"VEGTYPE")
Este script abarca la función TabulateIntersection para crear una sencilla herramienta de script TabulateArea. La herramienta de secuencia de comandos TabulateArea solamente tomará entidades de polígono como entrada.
Los campos Zona y Clase están restringidos a uno cada uno.
'''
TabulateArea.py
Description: Shows how to wrap the TabulateIntersection tool to create a TabulateArea script tool
Requirements: Polygon Zone Feature Class, Polygon Class Feature Class
'''
import arcpy
import sys
import os
def AddMsgAndPrint(msg, severity=0):
# Adds a Message (in case this is run as a tool)
# and also prints the message to the screen (standard output)
print(msg)
# Split the message on \n first, so that if it's multiple lines,
# a GPMessage will be added for each line
try:
for string in msg.split('\n'):
# Add appropriate geoprocessing message
if severity == 0:
arcpy.AddMessage(string)
elif severity == 1:
arcpy.AddWarning(string)
elif severity == 2:
arcpy.AddError(string)
except:
pass
## Get Parameters
zoneFC = arcpy.GetParameterAsText(0)
zoneFld = arcpy.GetParameterAsText(1) # Only allow one field
classFC = arcpy.GetParameterAsText(2)
outTab = arcpy.GetParameterAsText(3)
classFld = arcpy.GetParameterAsText(4) # Optional and only allow one field
sum_Fields = ""
xy_tol = ""
outUnits = arcpy.GetParameterAsText(5)
## Validate parameters
# Inputs can only be polygons
zoneDesc = arcpy.Describe(zoneFC)
classDesc = arcpy.Describe(classFC)
if zoneDesc.shapeType != "Polygon" or classDesc.shapeType != "Polygon":
AddMsgAndPrint("Inputs must be of type polygon.", 2)
sys.exit()
# Only one zone field and class field
if zoneFld != "":
if zoneFld.find(";") > -1 or classFld.find(";") > -1:
AddMsgAndPrint("A maximum of one zone and/or class field is allowed.", 2)
sys.exit()
# Run TabulateIntersection
try:
arcpy.analysis.TabulateIntersection(zoneFC, zoneFld, classFC, outTab,
classFld, sum_Fields, xy_tol, outUnits)
except:
arcpy.AddMessage("Tabulate Intersection Failed.")
AddMsgAndPrint(arcpy.GetMessages(), 0)
Entornos
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí