Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Berechnet tabellenübergreifende Flächen zwischen zwei Datasets und gibt eine Tabelle aus.
Abbildung
Verwendung
Eine Zone wird durch alle Flächen in der Eingabe definiert, die den gleichen Wert aufweisen. Die Flächen müssen nicht zusammenhängend sein. Sowohl Raster als auch Features können als Zoneneingabe verwendet werden.
Wenn es sich bei den Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) oder den Eingabe-Raster oder -Feature-Class-Daten (in_class_data in Python) um ein Raster handelt, muss dies ein Integer-Raster sein.
Wenn es sich bei beiden Eingaben um Raster handelt, diese jedoch unterschiedliche Zellengrößen aufweisen, entspricht die Ausgabezellengröße dem Maximum der Eingabedaten. Die Eingabe-Raster oder -Feature-Class-Daten (in_class_datain Python) werden intern als Fang-Raster verwendet. Wenn die Zellengröße übereinstimmt, die Zellen jedoch nicht ausgerichtet sind, werden die Klassendaten intern als Fang-Raster verwendet. In beiden Fällen wird ein internes Resampling ausgelöst, bevor die zonale Operation ausgeführt wird.
Wenn die Zonen- und Klasseneingaben jeweils Raster mit derselben Zellengröße sind und die Zellen ausgerichtet sind, werden sie direkt in dem Werkzeug verwendet. Während der Werkzeugausführung wird kein internes Resampling durchgeführt.
Wenn die Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) ein Feature sind und die Eingabe-Raster oder -Feature-Class-Daten (in_class_data in Python) ein Raster sind, werden die Zonendaten intern in ein Raster konvertiert, wobei die Zellengröße und die Zellenausrichtung aus den Klassendaten verwendet werden.
Wenn die Eingabe-Raster oder -Feature-Class-Daten (in_class_data in Python) ein Feature sind und die Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) ein Raster sind, werden die Klassendaten intern in ein Raster konvertiert, wobei die Zellengröße und die Zellenausrichtung aus den Zonendaten verwendet werden.
Wenn beide Eingaben Features sind, entspricht die Ausdehnung dem Minimum der Eingabedaten und die Zellengröße der Breite oder Höhe (der kleinere Wert von beiden) der Ausdehnung des Zonen-Feature-Datasets im Ausgabe-Raumbezug dividiert durch 250.
Wenn die Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) überlappende Polygone aufweisen, wird die zonale Analyse nicht für jedes einzelne Polygon ausgeführt. Da die Feature-Eingabe in ein Raster konvertiert wird, kann jede Position über nur einen Wert verfügen.
Eine alternative Methode besteht darin, die zonale Operation für jede der Polygonzonen iterativ zu verarbeiten und die Ergebnisse zu sortieren.
Beim Festlegen der Eingabezone oder der Klassendaten entspricht das Standardfeld dem ersten verfügbaren Ganzzahl- oder Textfeld. Sind keine anderen gültigen Felder vorhanden, wird das ObjectID-Feld als Standardfeld verwendet (z. B. OID oder FID).
Wenn ein Punkt oder eine Linie als Eingabe-Raster oder -Feature-Class-Daten (in_class_data in Python) verwendet wird, wird die durch diese Features geschnittene Fläche gemeldet.
Die Ausgabe des Werkzeugs Flächentabellen erstellen erfolgt in Form einer Tabelle.
Diese Tabelle enthält:
- Jeweils einen Datensatz für jeden Einzelwert des Zonen-Datasets.
- Jeweils ein Feld für jeden Einzelwert des Klassen-Datasets.
- In jedem Datensatz ist die Fläche jeder Klasse innerhalb jeder Zone gespeichert.
Erklärungen zu bestimmten Problemen, die möglicherweise mit diesem Werkzeug auftreten, und Vorschläge zur Umgehung dieser Probleme finden Sie unter Arbeiten mit "Flächentabellen erstellen".
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
TabulateArea (in_zone_data, zone_field, in_class_data, class_field, out_table, {processing_cell_size})
Parameter | Erläuterung | Datentyp |
in_zone_data | Das Dataset, das die Zonen definiert. Die Zonen können durch ein Ganzzahl-Raster oder einen Feature-Layer definiert werden. | Raster Layer; Feature Layer |
zone_field | Feld mit den Werten, die jede Zone definieren. Es kann sich dabei um ein Ganzzahl- oder ein Zeichenfolgefeld des Zonen-Datasets handeln. | Field |
in_class_data | Das Dataset, das die Klassen definiert, deren Fläche in den einzelnen Zonen zusammengefasst wird. Die Klasseneingabe kann ein Integer-Raster-Layer oder ein Feature-Layer sein. | Raster Layer; Feature Layer |
class_field | Das Feld, das die Klassenwerte enthält. Es kann sich dabei um ein ganzzahliges Feld oder ein Zeichenfolgefeld der Eingabeklassendaten handeln. | Field |
out_table | Ausgabetabelle, die die Zusammenfassung der Fläche jeder Klasse in jeder Zone enthält. Das Format der Tabelle wird durch das Ausgabeverzeichnis und den Ausgabepfad bestimmt. Die Ausgabe ist standardmäßig eine Geodatabase-Tabelle. Wenn der Pfad sich nicht in einer Geodatabase befindet, wird das Format durch die Erweiterung bestimmt. Wenn die Erweiterung .dbf lautet, erfolgt die Ausgabe im dBASE-Format. Wenn keine Ausdehnung angegeben wird, erfolgt die Ausgabe in einer INFO-Tabelle. | Table |
processing_cell_size (optional) | Die Verarbeitungszellengröße für den zonalen Vorgang. Dies ist der Wert in der Umgebung, wenn dieser ausdrücklich festgelegt wurde. Wenn die Umgebungsvariable nicht festgelegt wird, wird die Standardeinstellung für die Zellengröße wie folgt anhand des Typs der Zonendaten bestimmt:
| Analysis Cell Size |
Codebeispiel
TabulateArea – Beispiel 1 (Python-Fenster)
In diesem Beispiel wird eine Tabelle mit der Fläche jedes Klassenwertes zurückgegeben, der innerhalb jeder Zone enthalten ist.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
TabulateArea("zonedata.shp", "IDStr", "valueraster", "VALUE",
"C:/sapyexamples/output/areatable.dbf", 2)
TabulateArea – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel wird eine Tabelle mit der Fläche jedes Klassenwertes zurückgegeben, der innerhalb jeder Zone enthalten ist.
# Name: TabulateArea_Ex_02.py
# Description: Calculates cross tabulated areas between two datasets.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
env.extent = "classgrid"
env.snapRaster = "classgrid"
# Set local variables
inZoneData = "zonedata.shp"
zoneField = "IDStr"
inClassData = "valueraster"
classField = "VALUE"
outTable = "C:/sapyexamples/output/areatable02.dbf"
processingCellSize = 2
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
processingCellSize)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst