Flächentabellen erstellen (Spatial Analyst)
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 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 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. OBECTID, 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.
Hinweis:Um ein Feld mit eindeutigen Werten zu erstellen, das keinen reservierten Namen hat, verwenden Sie die Geoverarbeitungswerkzeuge Feld hinzufügen und Feld berechnen.
-
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 die Eingaben Features sind, erwägen Sie, sie zuerst mit den Zu Raster-Konvertierungswerkzeugen 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".
Syntax
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. | 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
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)
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)