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 im Parameter Eingabe-Zonen-Features, die im Parameter Zonenfeldern dieselben Werte aufweisen. Nach demselben Prinzip umfasst eine Klasse alle Features im Parameter Eingabeklassen-Features, die im Parameter 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 den Wert Klassenfelder kein Wert angegeben ist, werden alle Features im Parameter Eingabeklassen-Features als eine einzige Klasse betrachtet. Der Wert Ausgabetabelle enthält einen Datensatz für jede Zone.

  • Wenn der Wert Klassenfelder angegeben ist, enthält der Wert 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 der Wert Ausgabetabelle vier Datensätze für diese Zone.

  • Numerische Attribute aus dem Parameter 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 eines Werts für Eingabeklassen-Features mit einer höheren Dimension als für den Wert Eingabe-Zonen-Features wird nicht unterstützt.

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

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

    Wenn die Werte für Eingabeklassen-Features Linien sind, basieren die Ausgabetabellenstatistiken auf linearen Berechnungen.

    Wenn die Werte für Eingabeklassen-Features Punkte sind, basieren die Ausgabetabellenstatistiken auf der Feature-Anzahl.

  • Wenn die Werte für Eingabe-Zonen-Features und 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 Werte für Eingabe-Zonen-Features und 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.

    Das Feld PERCENTAGE kann einen Wert über 100 aufweisen, wenn in den Parametern Eingabe-Zonen-Features oder Eingabeklassen-Features überlappende Features enthalten sind.

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

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

    Das Feld PNT_COUNT ist in der Ausgabetabelle enthalten, wenn die Werte für Eingabeklassen-Features Punkte sind. Das Feld PNT_COUNT enthält die Anzahl der Punkte der Eingabeklassen-Features, die die Werte für 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 den Wert für 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: Schnittpunkt tabellarisch aufführen Ausgabetabelle
    • Eingabefelder: Schnittpunkt tabellarisch aufführen Zonenfelder
    • Pivot-Feld: Schnittpunkt tabellarisch aufführen Klassenfelder
    • Wertefeld: Schnittpunkt tabellarisch aufführen Summenfelder oder AREA, LENGTH, PERCENTAGE
    Beispielausgabe für Pivot-Tabelle

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Zonen-Features

Die Features, die zum Identifizieren von Zonen benutzt werden.

Feature Layer
Zonenfelder

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

Field
Eingabeklassen-Features

Die Features, die zum Identifizieren von Klassen benutzt werden

Feature Layer
Ausgabetabelle

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

Table
Klassenfelder
(optional)

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

Field
Summenfelder
(optional)

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

Field
XY-Toleranz
(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 des Parameters 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
Ausgabe-Einheiten
(optional)

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

  • UnbekanntDie Einheit ist unbekannt.
  • ZollDie Einheit ist Zoll.
  • FußDie Einheit ist Fuß.
  • YardDie Einheit ist Yard.
  • MeilenDie Einheit ist Meilen.
  • SeemeilenDie Einheit ist Seemeilen.
  • MillimeterDie Einheit ist Millimeter.
  • ZentimeterDie Einheit ist Zentimeter.
  • DezimeterDie Einheit ist Dezimeter.
  • MeterDie Einheit ist Meter.
  • KilometerDie Einheit ist Kilometer.
  • DezimalgradDie Einheit ist Dezimalgrad.
  • PunkteDie Einheit ist Punkte.
  • ArDie Einheit ist Ar.
  • AcresDie Einheit ist Acres.
  • HektarDie Einheit ist Hektar.
  • QuadratzollDie Einheit ist Quadratzoll.
  • QuadratfußDie Einheiten sind Quadratfuß.
  • QuadratyardDie Einheiten sind Quadratyards.
  • QuadratmeilenDie Einheit ist Quadratmeilen.
  • QuadratmillimeterDie Einheit ist Quadratmillimeter.
  • QuadratzentimeterDie Einheit ist Quadratzentimeter.
  • QuadratdezimeterDie Einheit ist Quadratdezimeter.
  • QuadratmeterDie Einheiten sind Quadratmeter.
  • QuadratkilometerDie Einheiten sind Quadratkilometer.
String

arcpy.analysis.TabulateIntersection(in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
NameErläuterungDatentyp
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 des Parameters in_class_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 des Parameters in_zone_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)

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

  • UNKNOWNDie Einheit ist unbekannt.
  • INCHESDie Einheit ist Zoll.
  • FEETDie Einheit ist Fuß.
  • YARDSDie Einheit ist Yard.
  • MILESDie Einheit ist Meilen.
  • NAUTICAL_MILESDie Einheit ist Seemeilen.
  • MILLIMETERSDie Einheit ist Millimeter.
  • CENTIMETERSDie Einheit ist Zentimeter.
  • DECIMETERSDie Einheit ist Dezimeter.
  • METERSDie Einheit ist Meter.
  • KILOMETERSDie Einheit ist Kilometer.
  • DECIMAL_DEGREESDie Einheit ist Dezimalgrad.
  • POINTSDie Einheit ist Punkte.
  • ARESDie Einheit ist Ar.
  • ACRESDie Einheit ist Acres.
  • HECTARESDie Einheit ist Hektar.
  • SQUARE_INCHESDie Einheit ist Quadratzoll.
  • SQUARE_FEETDie Einheiten sind Quadratfuß.
  • SQUARE_YARDSDie Einheiten sind Quadratyards.
  • SQUARE_MILESDie Einheit ist Quadratmeilen.
  • SQUARE_MILLIMETERSDie Einheit ist Quadratmillimeter.
  • SQUARE_CENTIMETERSDie Einheit ist Quadratzentimeter.
  • SQUARE_DECIMETERSDie Einheit ist Quadratdezimeter.
  • SQUARE_METERSDie Einheiten sind Quadratmeter.
  • SQUARE_KILOMETERSDie Einheiten sind Quadratkilometer.
String

Codebeispiel

TabulateIntersection – Beispiel 1 (Python-Fenster)

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

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

Dieses Skript umgibt die TabulateIntersection-Funktion, 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 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)

Lizenzinformationen

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

Verwandte Themen