Tabular intersección (Análisis)

Nivel de licencia:BasicStandardAdvanced

Resumen

Calcula la intersección entre dos clases de entidades y realiza una tabulación cruzada del área, longitud o conteo de las entidades que se intersecan.

Ilustración

Tabulate Intersection illustration

Uso

Sintaxis

TabulateIntersection_analysis (in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
ParámetroExplicaciónTipo 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 incluirá 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 para sumar en 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. De manera predeterminada, esta es la tolerancia XY de las Entidades de zona de entrada.

Linear Unit
out_units
(Opcional)

Unidades a utilizar para calcular las mediciones de área o longitud. No se permite la configuración de las Unidades de salida cuando las Entidades de clase de entrada son puntos.

String

Ejemplo de código

Ejemplo 1 de TabulateIntersection (ventana de Python)

Usar TabulateIntersection en la ventana Python para encontrar el área de cada tipo de vegetación en cada zona.

arcpy.TabulateIntersection_analysis("Zones","zone_id","Vegetation",r"C:\Esri\veganalysis.gdb\vegtypeAreas","VEGTYPE")
Ejemplo 2 de TabulateIntersection (secuencia de comandos independiente)

Secuencia de comandos que abarca TabulateIntersection para crear una simple herramienta de secuencia de comandos 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, sys, 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

Temas relacionados

Información sobre licencias

ArcGIS for Desktop Basic: No
ArcGIS for Desktop Standard: No
ArcGIS for Desktop Advanced: Sí
9/11/2013