Schnittpunkt tabellarisch aufführen (Analyse)
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 Ausgabe-Tabelle 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 Ausgabe-Tabelle 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 von Verhältnismethode).
Achtung:Nur Felder mit absoluten Werten (keine relativen, normalisierten Werte wie Prozentsätze oder Dichten) dürfen als Summenfelder verwendet werden, da die Werte geteilt und zu anderen Zonen aufgeteilt werden können.
Der Einsatz der größeren Bemaßung 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 Eingabe-Zonen-Features und Eingabe-Klassen-Features Polygone sind, basiert die Statistik in der Ausgabentabelle auf Flächenberechnungen.
Wenn Eingabe-Zonen-Features Linien sind, basiert die Statistik in der Ausgabentabelle auf linearen Berechnungen.
Wenn Eingabe-Klassen-Features Punkte sind, basiert die Statistik in der Ausgabe-Tabelle auf der Feature-Anzahl.
Wenn die Eingabe-Klassen-Features und die Eingabe-Klassen-Features die gleiche Bemaßung (beide Polygone, beide Linien oder beide Punkte), wird im Ausgabefeld PERCENTAGE der Prozentsatz des Zonen-Feature, das geschnitten wird, für jede Klasse erfasst.
Wenn die Eingabe-Zonen-Features und die Eingabe-Klassen-Features unterschiedliche Bemaßungen 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 Ausgabe-Tabelle 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 AREA-Feld ist nur dann in der Ausgabe-Tabelle 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 Ausgabe-Tabelle 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 selektiert sind, werden nur die selektierten 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:
- Eingabe-Tabelle – Schnittpunkt tabellarisch aufführen, Ausgabe-Tabelle
- Eingabefeld(er) – Schnittpunkte tabellarisch aufführen, Zonenfelder
- Pivot-Feld – Schnittpunkte tabellarisch aufführen, Klassenfeld
- Wertefeld – Schnittpunkte tabellarisch aufführen, Summenfeld oder AREA, LENGTH, PERCENTAGE
Syntax
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 mit der 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. Das ist standardmäßig 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
Suchen der Fläche jeder Vegetationsart in jeder Zone mithilfe von "TabulateIntersection" im Python-Fenster.
arcpy.TabulateIntersection_analysis("Zones","zone_id","Vegetation",r"C:\Esri\veganalysis.gdb\vegtypeAreas","VEGTYPE")
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, 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)