Flächentabellen erstellen (Spatial Analyst)

Zusammenfassung

Berechnet tabellenübergreifende Flächen zwischen zwei Datasets und gibt eine Tabelle aus.

Abbildung

Abbildung "Flächentabellen erstellen"
TabulateArea(ZoneRas, "VALUE", ClassRas, "VALUE", Tabarea1.dbf, 1)

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 eine der Eingaben ein Raster ist, muss es den Datentyp "Integer" aufweisen.

  • Wenn eines der Eingabe-Datasets eine Feature-Class ist, wird es intern in ein Raster konvertiert, bevor die Analyse ausgeführt wird. Dazu werden die Zellengröße und die Zellenausrichtung des anderen Eingabe-Rasters herangezogen.

  • Wenn es sich bei beiden Eingaben um Raster handelt, deren Zellen nicht ausgerichtet sind, wird während der Analyse ein Resampling für die Eingaben durchgeführt. Wenn die Umgebung Fang-Raster nicht explizit angegeben wurde, werden die Zellen mit den Eingabe-Raster- oder -Feature-Class-Daten (in_class_data in Python) intern ausgerichtet. Wenn beide Raster dieselbe Zellengröße aufweisen und die Zellen ausgerichtet sind, wird kein Resampling durchgeführt.

  • Wenn beide Eingabe-Datasets Feature-Classes sind, werden sie intern in ein Raster konvertiert, bevor die Analyse ausgeführt wird. Dazu wird die Verarbeitungszellengröße (processing_cell_size in Python) oder die Raster-Analyseumgebung verwendet, falls angegeben.

  • Wenn es sich bei den Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) um ein Feature handelt, werden Zonen, bei denen die Zonen-Features keinen der Zellenmittelpunkte des Klassen-Rasters überlappen, nicht in das interne Zonen-Raster konvertiert. Diese Zonen sind daher nicht in der Ausgabe dargestellt. Dies können Sie verwalten, indem Sie einen angemessenen Wert für die Umgebung Zellengröße festlegen, wodurch die gewünschte Detaillierungsebene der Feature-Zonen beibehalten werden kann. Geben Sie dies in der Analyseumgebung an.

  • Wenn die Eingaben überlappende Features aufweisen, wird die Zonenanalyse für jedes einzelne Feature durchgeführt.

  • Wenn Punkt- oder Liniendaten als Eingabe-Feature-Class verwendet werden, wird die durch diese Features geschnittene Fläche gemeldet.

  • 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).

  • Der Parameter Verarbeitungszellengröße kann über einen numerischen Wert definiert oder aus einem vorhandenen Raster-Dataset abgerufen werden. Wird die Zellengröße nicht explizit über den Parameterwert angegeben, wird sie aus der Umgebung "Zellengröße" abgeleitet, falls diese angegeben wurde. Wenn die Zellengröße nicht im Parameter oder in der Umgebung angegeben wurde, wird die standardmäßige Ausgabezellengröße basierend auf dem Typ des Eingabe-Datasets bestimmt. Dabei wird folgendermaßen vorgegangen:

    • Wenn es sich bei dem Eingabe-Dataset um ein Raster handelt, wird die Zellengröße des Datasets verwendet.
    • Wenn das Eingabe-Dataset ein Feature ist und die Umgebung Fang-Raster festgelegt wurde, wird die Zellengröße des Fang-Rasters verwendet. Wenn kein Fang-Raster festgelegt wurde, wird die Zellengröße aus der Breite oder Höhe der Ausdehnung (je nachdem was kürzer ist) berechnet, indem der Wert durch 250 dividiert wird. Dabei wird die Ausdehnung in der Umgebung in Ausgabekoordinatensystem angegeben.
  • Wenn die Zellengröße mit einem numerischen Wert angegeben ist, wird dieser direkt für das Ausgabe-Raster verwendet.

    Wenn die Zellengröße mit einem Raster-Dataset angegeben ist, wird für den Parameter anstelle des Wertes für die Zellengröße der Pfad des Raster-Datasets angezeigt. Die Zellengröße dieses Raster-Datasets wird direkt in der Analyse verwendet, sofern der Raumbezug des Datasets mit dem des Ausgabe-Raumbezugs übereinstimmt. Wenn der Raumbezug des Datasets nicht mit dem Ausgabe-Raumbezug übereinstimmt, wird er basierend auf dem für Projektionsmethode für Zellengröße angegebenen Wert projiziert.

  • Mit dem Parameter Klassen als Zeilen in der Ausgabetabelle (classes_as_rows in Python) können Sie den Typ des Ausgabetabellenschemas auswählen. Aktivieren Sie diesen Parameter (CLASSES_AS_ROWS in Python), um Klassen als Zeilen darzustellen. Deaktivieren Sie ihn (CLASSES_AS_FIELDS in Python), um die Klassen als Felder darzustellen.

    Wenn Klassen in Zeilen dargestellt werden, kann die Ausgabetabelle verknüpft und abgefragt werden, um Flächeninformationen nach Zonen- oder Klassen-Rastern zu extrahieren.

  • Die Ausgabe dieses Werkzeugs ist eine Tabelle.

    Wenn der Parameter Klassen als Zeilen in der Ausgabetabelle deaktiviert ist (CLASSES_AS_FIELDS in Python), gilt für diese Tabelle Folgendes:

    • Jeweils ein 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.

    Wenn der Parameter Klassen als Zeilen in der Ausgabetabelle aktiviert ist (CLASSES_AS_ROWS in Python), gilt Folgendes:

    • Es gibt einen Datensatz für jeden Einzelwert des Zonen-Datasets, das einen Einzelwert des Klassen-Datasets aufweist.
    • Es gibt einzelne Felder, die das Zonenfeld, das Klassenwerte-Feld, die Anzahl und die Fläche der einzelnen Klassen in den einzelnen Zonen identifizieren.

  • Weitere Informationen zu den Geoverarbeitungsumgebungen für dieses Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster- oder -Feature-Zonen-Daten

Das Dataset, das die Zonen definiert.

Die Zonen können durch ein Integer-Raster oder einen Feature-Layer festgelegt werden.

Raster Layer; Feature Layer
Zonenfeld

Das Feld, das die Werte enthält, die die einzelnen Zonen definieren.

Es kann sich dabei um ein Ganzzahl- oder ein Zeichenfolgefeld des Zonen-Datasets handeln.

Field
Eingabe-Raster oder -Feature-Class-Daten

Das Dataset, das die Klassen definiert, deren Fläche in den einzelnen Zonen zusammengefasst werden soll.

Die Klasseneingabe kann ein ganzzahliger Raster-Layer oder ein Feature-Layer sein.

Raster Layer; Feature Layer
Klassenwerte-Feld

Das Feld, das die Klassenwerte enthält.

Es kann sich dabei um ein ganzzahliges Feld oder ein Zeichenfolgefeld der Eingabeklassendaten handeln.

Field
Ausgabetabelle
(optional)

Die Ausgabetabelle, die die Zusammenfassung der Fläche jeder Klasse in jeder Zone enthalten soll.

Das Format der Tabelle wird durch das Ausgabeverzeichnis und den Ausgabepfad bestimmt. Standardmäßig handelt es sich bei der Ausgabe um eine Geodatabase-Tabelle in einem Geodatabase-Workspace bzw. um eine dBASE-Tabelle in einem Datei-Workspace.

Table
Verarbeitungszellengröße
(optional)

Die Zellengröße des zu erstellenden Ausgabe-Rasters.

Dieser Parameter kann über einen numerischen Wert definiert oder aus einem vorhandenen Raster-Dataset abgerufen werden. Wenn die Zellengröße nicht explizit über den Parameterwert angegeben wurde, wird der Wert für die Zellengröße aus der Umgebung verwendet, sofern diese angegeben wurde. Andernfalls wird die Zellengröße mithilfe zusätzlicher Regeln aus den anderen Eingaben berechnet. Weitere Details finden Sie im Abschnitt mit den Verwendungshinweisen.

Analysis Cell Size
Klassen als Zeilen in der Ausgabetabelle
(optional)

Gibt an, wie die Werte aus dem Eingabe-Klassen-Raster in der Ausgabetabelle dargestellt werden.

  • Deaktiviert: Klassen werden als Felder dargestellt. Dies ist die Standardeinstellung.
  • Aktiviert: Klassen werden als Zeilen dargestellt.
Boolean

TabulateArea(in_zone_data, zone_field, in_class_data, class_field, {out_table}, {processing_cell_size}, {classes_as_rows})
NameErläuterungDatentyp
in_zone_data

Das Dataset, das die Zonen definiert.

Die Zonen können durch ein Integer-Raster oder einen Feature-Layer festgelegt werden.

Raster Layer; Feature Layer
zone_field

Das Feld, das die Werte enthält, die die einzelnen Zonen 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 werden soll.

Die Klasseneingabe kann ein ganzzahliger 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
(optional)

Die Ausgabetabelle, die die Zusammenfassung der Fläche jeder Klasse in jeder Zone enthalten soll.

Das Format der Tabelle wird durch das Ausgabeverzeichnis und den Ausgabepfad bestimmt. Standardmäßig handelt es sich bei der Ausgabe um eine Geodatabase-Tabelle in einem Geodatabase-Workspace bzw. um eine dBASE-Tabelle in einem Datei-Workspace.

Table
processing_cell_size
(optional)

Die Zellengröße des zu erstellenden Ausgabe-Rasters.

Dieser Parameter kann über einen numerischen Wert definiert oder aus einem vorhandenen Raster-Dataset abgerufen werden. Wenn die Zellengröße nicht explizit über den Parameterwert angegeben wurde, wird der Wert für die Zellengröße aus der Umgebung verwendet, sofern diese angegeben wurde. Andernfalls wird die Zellengröße mithilfe zusätzlicher Regeln aus den anderen Eingaben berechnet. Weitere Details finden Sie im Abschnitt mit den Verwendungshinweisen.

Analysis Cell Size
classes_as_rows
(optional)

Gibt an, wie die Werte aus dem Eingabe-Klassen-Raster in der Ausgabetabelle dargestellt werden.

  • CLASSES_AS_FIELDSKlassen werden als Felder dargestellt. Dies ist die Standardeinstellung.
  • CLASSES_AS_ROWSKlassen werden als Zeilen dargestellt.
Boolean

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

# Execute TabulateArea
TabulateArea(inZoneData, zoneField, inClassData, classField, outTable,
             processingCellSize)