Zusammenfassung
Berechnet die Verschneidung zwischen zwei Feature-Classes und erstellt eine tabellenübergreifende Berechnung der Fläche, Länge oder Anzahl der sich überschneidenden Features.
Bild
Verwendung
Eine Zone setzt sich aus allen Features im Eingabe-Zonen-Features zusammen, die über die gleichen Werte bei Zonenfelder verfügt. Eine Klasse setzt sich auf die gleiche Weise aus allen Features im Eingabe-Klassen-Features zusammen, die über die gleichen Werte bei Klassenfelder verfügt. Features müssen nicht zusammenhängend sein, um in der gleichen Zone oder Klasse zu sein. Dieses Werkzeug berechnet, wie viel von der Zone von jeder Klasse (Fläche und Prozentsatz der Zonenfläche) geschnitten wird.
Wenn keine Klassenfelder angegeben werden, werden alle Features in den Eingabe-Klassen-Features als einzelne Klasse angesehen. Die Ausgabetabelle enthält einen Datensatz für jede Zone.
Wenn Klassenfelder angegeben wird, enthält die Ausgabetabelle n Datensätze für jede Zone, wobei n die Anzahl der Klassen innerhalb dieser Zone ist. Wenn z. B. eine Zone vier Klassen enthält, weist die Ausgabetabelle vier Datensätze für diese Zone auf.
Numerische Attribute aus den Eingabe-Klassen-Features können nach Zone mit dem Parameter Summenfelder aufsummiert werden. Die Summenwerte einer Klasse sind ein Teil der Summenwerte basierend auf dem Prozentsatz der Klasse, die die Zone schneidet (vgl. die Funktionsweise der Verhältnismethode).
Der Einsatz der größeren Dimension Eingabe-Klassen-Features als Eingabe-Zonen-Features wird nicht unterstützt. Nicht unterstützte Kombinationen:
- Zone = Punkte, Klasse = Polygone oder Linien
- Zone = Linien, Klasse = Polygone
Wenn die Eingabe-Zonen-Features und Eingabe-Klassen-Features Polygone sind, basiert die Ausgabetabellenstatistik auf Flächenberechnungen.
Wenn Eingabezonen-Features Linien sind, basiert die Statistik in der Ausgabentabelle auf linearen Berechnungen.
Wenn Eingabe-Klassen-Features Punkte sind, basiert die Ausgabetabellenstatistik auf der Feature-Anzahl.
Wenn die Eingabe-Zonen-Features und die Eingabe-Klassen-Features die gleiche Dimension haben (beide Polygone, beide Linien oder beide Punkte), wird im Ausgabefeld PERCENTAGE der Prozentsatz des Zonen-Features erfasst, das von der Klasse geschnitten wird.
Wenn die Eingabe-Zonen-Features und die Eingabe-Klassen-Features unterschiedliche Dimensionen haben (Polygonzone mit Linienklasse, Polygonzone mit Punktklasse oder Linienzone mit Punktklasse), wird im Ausgabefeld PERCENTAGE der Prozentsatz der Klasse erfasst, die das Zonenpolygon schneidet.
Im PERCENTAGE-Feld kann ein Prozentwert über 100 Prozent erfasst werden, wenn überlappende Features in Eingabe-Zonen-Features oder Eingabe-Klassen-Features enthalten sind.
Das AREA-Feld ist nur dann in der Ausgabetabelle enthalten, wenn die Eingabe-Zonen-Features und Eingabe-Klassen-Features Polygone sind. Das AREA-Feld enthält die Fläche der Eingabe-Zonen-Features, die die Eingabe-Klassen-Features schneiden.
Das LENGTH-Feld ist in der Ausgabetabelle enthalten, wenn die Eingabe-Klassen-Features Linien sind. Das LENGTH-Feld enthält die Länge des Schnittpunktes zwischen den Eingabe-Zonen-Features und den Eingabe-Klassen-Features.
Das PNT_COUNT-Feld ist in der Ausgabetabelle enthalten, wenn die Eingabe-Klassen-Features Punkte sind. Das PNT_COUNT-Feld enthält die Anzahl der Eingabe-Klassen-Features-Punkte, die die Eingabe-Zonen-Features schneiden.
Wenn bei Verwendung von Feature-Layern Features ausgewählt sind, werden nur die ausgewählten Features in Berechnungen verwendet.
Die Bestimmung des Schnittpunktes von Zonen- und Klassen-Features folgt den gleichen Regeln wie das Werkzeug Überschneiden (Intersect).
Verwenden Sie das Werkzeug Pivot-Tabelle, um die Ausgabetabelle in eine Tabelle umzuwandeln, die einen Datensatz für jede Zone mit Klassenattributen als separate Attributfelder enthält. Füllen Sie die Parameter für das Werkzeug Pivot-Tabelle wie folgt aus:
- Eingabetabelle – Schnittpunkt tabellarisch aufführen Ausgabetabelle
- Eingabefeld(er) – Schnittpunkt tabellarisch aufführen, Zonenfelder
- Pivot-Feld – Schnittpunkt tabellarisch aufführen Klassenfeld
- Wertefeld – Schnittpunkt tabellarisch aufführen Summenfeld oder AREA, LENGTH, PERCENTAGE
Syntax
TabulateIntersection_analysis (in_zone_features, zone_fields, in_class_features, out_table, {class_fields}, {sum_fields}, {xy_tolerance}, {out_units})
Parameter | Erläuterung | Datentyp |
in_zone_features | Die Features zum Identifizieren von Zonen. | Feature Layer |
zone_fields [zone_fields,...] | Das/die Attributfeld/er, mit dem bzw. denen die Zonen definiert werden. | Field |
in_class_features | Die Features zum Identifizieren von Klassen. | Feature Layer |
out_table | Die Tabelle, die die tabellenübergreifende Berechnung der Verschneidung 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 für die Summe der Eingabe-Klassen-Features. | 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. | Linear Unit |
out_units (optional) | Einheiten, die verwendet werden sollen, um Flächen- oder Längenmessungen zu berechnen. Ausgabe-Einheiten können nicht festgelegt werden, wenn Eingabe-Klassen-Features Punkte sind. | String |
Codebeispiel
TabulateIntersection – Beispiel 1 (Python-Fenster)
Suchen der Fläche jeder Vegetationsart in jeder Zone mithilfe von "TabulateIntersection" im Python-Fenster.
import arcpy
arcpy.TabulateIntersection_analysis("Zones", "zone_id", "Vegetation", r"C:\Esri\veganalysis.gdb\vegtypeAreas", "VEGTYPE")
TabulateIntersection – Beispiel 2 (eigenständiges Skript)
Skript, das "TabulateIntersection" einschließt, um ein einfaches TabulateArea-Skriptwerkzeug zu erstellen. Das TabulateArea-Skriptwerkzeug nimmt 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)
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Nein
- ArcGIS for Desktop Standard: Nein
- ArcGIS for Desktop Advanced: Ja