Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Berechnet tabellenübergreifende Flächen zwischen zwei Datasets und gibt eine Tabelle aus.
Bild
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 Feature-Datasets können als Zoneneingabe verwendet werden.
Wenn die Zonen- und Klasseneingaben jeweils Raster mit derselben Auflösung sind, werden sie direkt verwendet.
Wenn die Auflösungen verschieden sind, wird ein internes Resampling angewendet, um sie zur Übereinstimmung zu bringen, bevor die zonale Operation ausgeführt wird.
Wenn die Zoneneingabe ein Raster-Dataset ist, muss es eine Attributtabelle aufweisen. Die Attributtabelle wird normalerweise automatisch für Ganzzahl-Raster erstellt. Unter bestimmten Umständen kann es jedoch vorkommen, dass sie nicht erstellt wird. Mit dem Werkzeug Raster-Attributtabelle erstellen können Sie die Tabelle manuell erstellen.
Wenn ein Feature-Dataset als Zoneneingabe verwendet wird, wird intern eine Vektor-in-Raster-Konvertierung darauf angewendet.
Um sicherzustellen, dass die Ergebnisse der Konvertierung ordnungsgemäß an einer Klassen-Raster-Eingabe ausgerichtet sind, wird empfohlen zu überprüfen, ob die Ausdehnung und das Fang-Raster angemessen in den Umgebungseinstellungen und den Raster-Einstellungen festgelegt wurden.
Beim Festlegen der Eingabezone oder der Klassendaten entspricht das Standardfeld dem ersten gültigen Feld. Sind keine anderen gültigen Felder vorhanden, wird das ObjectID-Feld als Standardfeld verwendet (z. B. OID oder FID).
Wenn ein reserviertes Feld (z. B. OBJECTID, FID oder OID) für das Zonenfeld ausgewählt wird, kann dies ein mehrdeutiges Ergebnis zur Folge haben. Das Ergebnis beinhaltet nicht nur den Namen des konkreten reservierten Feldes, das für den jeweiligen Ausgabeformattyp notwendig ist, sondern auch das angegebene Zonenfeld. Wenn das angegebene Feld den gleichen Namen wie das reservierte Feld für das jeweilige Ausgabeformat aufweist, wird der Name für das Zonenfeld in der Ausgabe so geändert, dass alle Feldnamen im Ergebnis eindeutig sind.
Wenn ein Feature-Dataset als Klasseneingabe verwendet wird, wird ebenfalls intern eine Vektor-in-Raster-Konvertierung darauf angewendet. Die im vorherigen Tipp für eine Feature-Zoneneingabe aufgeführten Bedingungen gelten auch für eine Feature-Class-Eingabe.
Es wird empfohlen, ausschließlich Raster als Zonen- und Klasseneingaben zu verwenden. Wenn es sich bei den Eingaben um Features handelt, sollten Sie erwägen, diese zunächst mithilfe der Konvertierungswerkzeuge In Raster in Raster zu konvertieren. Sie erhalten so eine bessere Kontrolle über die Vektor-in-Raster-Konvertierung, sodass Sie möglichst immer die erwarteten Ergebnisse erhalten.
Wenn ein Punkt- oder Linien-Dataset als Klassendaten 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 Ganzzahl-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 Ganzzahlfeld 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)
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert Spatial Analyst
- ArcGIS for Desktop Standard: Erfordert Spatial Analyst
- ArcGIS for Desktop Advanced: Erfordert Spatial Analyst