Schnittpunkt tabellarisch aufführen (Analysis)

Zusammenfassung

Berechnet den Schnittpunkt zwischen zwei Feature-Classes und kreuztabelliert die Fläche, die Länge oder die Anzahl der sich schneidenden Features.

Abbildung

Abbildung "Schnittpunkt tabellarisch aufführen"

Verwendung

  • Eine Zone umfasst alle Features in den Eingabe-Zonen-Features, die in den Zonenfeldern dieselben Werte aufweisen. Nach demselben Prinzip umfasst eine Klasse alle Features in den Eingabeklassen-Features, die in den Klassenfeldern dieselben Werte aufweisen. Features müssen nicht zusammenhängen, um sich in derselben Zone oder Klasse zu befinden. Dieses Werkzeug berechnet, welcher Anteil der Zone von jeder Klasse (Fläche und Prozentsatz der Zonenfläche) geschnitten wird.

  • Wenn für Klassenfelder kein Wert angegeben ist, werden alle Features in Eingabeklassen-Features als eine einzige Klasse betrachtet. Die Ausgabetabelle enthält einen Datensatz für jede Zone.

  • Wenn für Klassenfelder ein Wert angegeben ist, enthält die Ausgabetabelle n Datensätze für jede Zone, wobei n für die Anzahl der Klassen in der Zone steht. Wenn eine Zone beispielsweise vier Klassen enthält, enthält die Ausgabetabelle vier Datensätze für diese Zone.

  • Numerische Attribute aus den Eingabeklassen-Features können mit dem Parameter Summenfelder nach Zonen zusammengefasst werden. Die Summenwerte für eine Klasse stellen einen Anteil der Summenwerte dar und basieren auf dem Prozentwert der Klasse, die die Zone schneidet.

    Vorsicht:

    Verwenden Sie Felder mit absoluten Werten (keine relativen normalisierten Werte wie Prozentsätze oder Dichten) als Summenfelder, da die Werte geteilt und verschiedenen Zonen zugeordnet werden können.

  • Die Verwendung von Eingabeklassen-Features mit einer höheren Dimension als die Eingabe-Zonen-Features wird nicht unterstützt.

    • Wenn die Eingabe-Zonen-Features Punkte sind, können die Eingabeklassen-Features nicht Polygone oder Linien sein.
    • Wenn die Eingabe-Zonen-Features Linien sind, können die Eingabeklassen-Features nicht Polygone sein.

  • Wenn die Eingabe-Zonen-Features und Eingabeklassen-Features Polygone sind, basieren die Ausgabetabellenstatistiken auf Flächenberechnungen.

    Wenn die Eingabeklassen-Features Linien sind, basieren die Ausgabetabellenstatistiken auf linearen Berechnungen.

    Wenn die Eingabeklassen-Features Punkte sind, basieren die Ausgabetabellenstatistiken auf der Feature-Anzahl.

  • Wenn die Eingabe-Zonen-Features und die Eingabeklassen-Features die gleiche Dimension haben (jeweils nur Polygone, Linien oder Punkte), wird im Ausgabefeld PERCENTAGE der Prozentsatz des Zonen-Features, das von der Klasse geschnitten wird, angegeben.

    Wenn die Eingabe-Zonen-Features und die Eingabeklassen-Features unterschiedliche Dimensionen haben (Polygonzone mit Linienklasse, Polygonzone mit Punktklasse oder Linienzone mit Punktklasse), wird im Ausgabefeld PERCENTAGE der Prozentsatz der Klasse, die das Zonenpolygon schneidet, angegeben.

    Im Feld PERCENTAGE kann ein Wert über 100 enthalten sein, wenn die Eingabe-Zonen-Features oder Eingabeklassen-Features überlappende Features enthalten.

  • Das Feld AREA ist nur dann in der Ausgabetabelle enthalten, wenn die Eingabe-Zonen-Features und Eingabeklassen-Features Polygone sind. Das Feld AREA enthält die Fläche der Eingabe-Zonen-Features, die von den Eingabeklassen-Features geschnitten werden.

    Das Feld LENGTH ist in der Ausgabetabelle enthalten, wenn die Eingabeklassen-Features Linien sind. Das Feld LENGTH enthält die Länge der Überschneidung zwischen den Eingabe-Zonen-Features und den Eingabeklassen-Features.

    Das Feld PNT_COUNT ist in der Ausgabetabelle enthalten, wenn die Eingabeklassen-Features Punkte sind. Das Feld PNT_COUNT enthält die Anzahl der Punkte der Eingabeklassen-Features, die die Eingabe-Zonen-Features schneiden.

  • Wenn bei der Verwendung von Feature-Layern Features ausgewählt sind, werden nur die ausgewählten Features in Berechnungen verwendet.

  • Der Schnittpunkt von Zonen- und Klassen-Features wird nach den Regeln berechnet, die auch im Werkzeug Überschneiden (Intersect) zur Anwendung kommen.

  • Verwenden Sie das Werkzeug Pivot-Tabelle, um die Ausgabetabelle in eine Tabelle umzuwandeln, in der ein Datensatz für jede Zone mit Klassenattributen als separates Attributfeld enthalten ist. Füllen Sie die Parameter des Werkzeugs Pivot-Tabelle wie folgt aus:

    • Eingabetabelle: Ausgabetabelle Schnittpunkt tabellarisch aufführen
    • Eingabefelder: Zonenfelder Schnittpunkt tabellarisch aufführen
    • Pivot-Feld: Klassenfelder Schnittpunkt tabellarisch aufführen
    • Wertefeld: Summenfelder Schnittpunkt tabellarisch aufführen oder AREA, LENGTH, PERCENTAGE
    Beispielausgabe für Pivot-Tabelle

Syntax

arcpy.analysis.TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
ParameterErklärungDatentyp
in_zone_features

Die Features, die zum Identifizieren von Zonen benutzt werden.

Feature Layer
zone_fields
[zone_fields,...]

Das/die Attributfeld/er, mit dem bzw. denen die Zonen definiert werden.

Field
in_class_features

Die Features, die zum Identifizieren von Klassen benutzt werden

Feature Layer
out_table

Die Tabelle, die die Kreuztabellierung der Schnittpunkte von Zonen und Klassen enthält.

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

Das/die Attributfeld/er, mit dem bzw. denen die Klassen definiert werden.

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

Die Felder der Eingabeklassen-Features, die zusammengezählt werden sollen.

Field
xy_tolerance
(optional)

Die Entfernung, die den Bereich bestimmt, in welchem die Features oder ihre Stützpunkte als identisch betrachtet werden. Standardmäßig ist dies die XY-Toleranz der Eingabe-Zonen-Features.

Vorsicht:

Das Ändern dieses Parameterwertes kann zu einem Fehler oder zu unerwarteten Ergebnissen führen. Es wird empfohlen, diesen Parameter nicht zu ändern. Er wurde im Werkzeug-Dialogfeld aus der Ansicht entfernt. Standardmäßig wird die Eigenschaft XY-Toleranz des Raumbezugs der Eingabe-Feature-Class verwendet.

Linear Unit
out_units
(optional)

Die Einheiten, die zum Berechnen von Flächen- oder Längenmessungen verwendet werden. Ausgabe-Einheiten können nicht festgelegt werden, wenn die Eingabeklassen-Features Punkte sind.

  • UNKNOWNUnbekannt
  • INCHESZoll
  • FEETFuß
  • YARDSYard
  • MILESMeilen
  • NAUTICAL_MILESSeemeilen
  • MILLIMETERSMillimeter
  • CENTIMETERSZentimeter
  • DECIMETERSDezimeter
  • METERSMeter
  • KILOMETERSKilometer
  • DECIMAL_DEGREESDezimalgrad
  • POINTSPunkte
  • ARESAr
  • ACRESAcres
  • HECTARESHektar
  • SQUARE_INCHESQuadratzoll
  • SQUARE_FEETQuadratfuß
  • SQUARE_YARDSQuadratyard
  • SQUARE_MILESQuadratmeilen
  • SQUARE_MILLIMETERSQuadratmillimeter
  • SQUARE_CENTIMETERSQuadratzentimeter
  • SQUARE_DECIMETERSQuadratdezimeter
  • SQUARE_METERSQuadratmeter
  • SQUARE_KILOMETERSQuadratkilometer
String

Codebeispiel

TabulateIntersection – Beispiel 1 (Python-Fenster)

Verwenden Sie TabulateIntersection im Python-Fenster, um die Fläche jeder Vegetationsart in jeder Zone zu ermitteln.

import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation", 
                                    r"C:\Esri\veganalysis.gdb\vegtypeAreas", 
                                    "VEGTYPE")
TabulateIntersection – Beispiel 2 (eigenständiges Skript)

Dieses Skript umgibt TabulateIntersection, um ein einfaches TabulateArea-Skriptwerkzeug zu erstellen. Das TabulateArea-Skriptwerkzeug verwendet nur Polygon-Features als Eingabe.

Die Felder "Zone" und "Class" werden jeweils auf eines beschränkt.

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

Lizenzinformationen

  • Basic: Nein
  • Standard: Nein
  • Advanced: Ja

Verwandte Themen