Tabuler l'intersection (Analyse)

Niveau de licence :De baseStandardAvancé

Récapitulatif

Calcule l'intersection entre deux classes d'entités et calcule les superficies croisées de la surface, la longueur ou le total des entités d'intersection.

Illustration

Illustration de l'outil Tabulate Intersection

Utilisation

Syntaxe

TabulateIntersection_analysis (in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
ParamètreExplicationType de données
in_zone_features

Entités permettant d'identifier des zones.

Feature Layer
zone_fields
[zone_fields,...]

Le ou les champs attributaires utilisés pour définir les zones.

Field
in_class_features

Entités permettant d'identifier des classes.

Feature Layer
out_table

Table contenant le tableau à double entrées d'intersections entre zones et classes.

Table
class_fields
[class_fields,...]
(Facultatif)

Le ou les champs attributaires utilisés pour définir les classes.

Field
sum_fields
[sum_fields,...]
(Facultatif)

Champs à additionner à partir des Entités de classe en entrée.

Field
xy_tolerance
(Facultatif)

Distance qui détermine la plage dans laquelle les entités ou leurs sommets sont considérés comme identiques. Par défaut, il s'agit de la tolérance XY de l'option Entités de zone en entrée.

Linear Unit
out_units
(Facultatif)

Unités à utiliser pour calculer la surface ou la longueur. Il est impossible de définir les Unités en sortie lorsque les Entités de classe en entrée sont des points.

String

Exemple de code

1er exemple d'utilisation de l'outil TabulateIntersection (fenêtre Python)

Utilisation de l'outil TabulateIntersection dans la fenêtre Python pour trouver la surface de chaque type de végétation dans chaque zone.

arcpy.TabulateIntersection_analysis("Zones","zone_id","Vegetation",r"C:\Esri\veganalysis.gdb\vegtypeAreas","VEGTYPE")
2e exemple d'utilisation de l'outil TabulateIntersection (script autonome)

Script qui encapsule l'outil TabulateIntersection afin de créer un outil de script TabulateArea simple. L'outil de script TabulateArea utilise seulement des entités surfaciques en entrée.

Les champs Zone et Classe sont limités à un seul.

'''
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)

Environnements

Thèmes connexes

Informations de licence

ArcGIS for Desktop Basic : Annuler
ArcGIS for Desktop Standard : Annuler
ArcGIS for Desktop Advanced : Oui
9/12/2013