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 de las Entidades de zona de entrada que tienen los mismos valores en los Campos de zona. De forma similar, una clase se compone de todas las entidades de las Entidades de clase de entrada que tienen los mismos valores en los 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 Campo de clase, todas las entidades de las Entidades de clase de entrada se considerarán una sola clase. La Tabla de salida contendrá un registro para cada zona.
Si se especifica un valor para Campos de clase, la Tabla de salida contendrá n registros para cada zona, donde n es el número de clases dentro de la zona. Por ejemplo, si una zona contiene cuatro clases, la Tabla de salida tendrá cuatro registros para esa zona.
Los atributos numéricos de las 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) como Campos de suma, dado que los valores pueden dividirse y distribuirse en diferentes zonas.
No se admite el uso de Entidades de clase de entrada de mayor dimensión que las Entidades de zona de entrada.
- Si las Entidades de zona de entrada son puntos, las Entidades de clase de entrada no pueden ser polígonos ni líneas.
- Si las Entidades de zona de entrada son líneas, las Entidades de clase de entrada no pueden ser polígonos.
Si las 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 las Entidades de clase de entrada son líneas, las estadísticas de la tabla de salida se basarán en cálculos lineales.
Si las Entidades de clase de entrada son puntos, las estadísticas de la tabla de salida se basarán en recuentos de entidades.
Si las Entidades de zona de entrada y las 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 las Entidades de zona de entrada y las 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 las Entidades de zona de entrada o las Entidades de clase de entrada.
El campo AREA se incluye en la tabla de salida solo si las Entidades de zona de entrada y las Entidades de clase de entrada son polígonos. El campo AREA contiene el área de las Entidades de zona de entrada que intersecan las Entidades de clase de entrada.
El campo LENGTH se incluye en la tabla de salida si las Entidades de clase de entrada son líneas. El campo LENGTH contiene la longitud de la intersección entre las Entidades de zona de entrada y las Entidades de clase de entrada.
El campo PNT_COUNT se incluye en la tabla de salida si las 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 las 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 la 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 Campo de suma o AREA, LENGTH, PERCENTAGE
Sintaxis
TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
Parámetro | 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 de las Entidades de clase de entrada. | Field |
xy_tolerance (Opcional) | La distancia que determina el rango en el cual las entidades o sus vértices se consideran iguales. Por defecto, es la tolerancia XY de las Entidades de 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 |
out_units (Opcional) | Las unidades que se usarán para calcular las mediciones de área o longitud. No admite permite la configuración de unidades de salida cuando las entidades de clase de entrada son puntos.
| String |
Muestra de código
Utilice TabulateIntersection en la ventana de Python para buscar el área de todos los tipos de vegetación de cada zona.
import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation",
r"C:\Esri\veganalysis.gdb\vegtypeAreas",
"VEGTYPE")
Este script abarca 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 TI with restricted parameters
try:
arcpy.TabulateIntersection_analysis(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í