Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Summiert die Werte eines Rasters innerhalb der Zonen eines anderen Datasets und gibt die Ergebnisse in einer Tabelle aus.
Weitere Informationen zur Funktionsweise des Werkzeugs "Zonale Statistiken"
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 Werteingaben 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 Eingabe NoData-Zellen enthält, kann das Resampling in der Ausgabe an diesen Stellen größere Flächen ohne Daten verursachen, als Sie erwartet haben. Um dies zu vermeiden, führen Sie entweder ein Resampling des gröberen Eingabe-Rasters auf die Auflösung des feineren Eingabe-Rasters aus, oder legen Sie für die Zellengröße die Option Minimum der Eingabedaten in den Umgebungseinstellungen der Raster-Analyse fest.
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 dem Werte-Raster ausgerichtet sind, sollten Sie dafür sorgen, dass die Ausdehnung und das Fang-Raster in den Umgebungseinstellungen und den Raster-Einstellungen angemessen festgelegt wurden.
Da das interne Raster eine Attributtabelle haben muss, wird ein Fehler ausgegeben, wenn diese bei der Konvertierung nicht erstellt wurde. Wenn dies der Fall ist, konvertieren Sie das Feature-Dataset direkt mithilfe der Funktion Feature in Raster, Polygon in Raster, Punkt in Raster oder Polylinie in Raster. Generieren Sie eine Attributtabelle dafür, wie im vorherigen Tipp beschrieben, und verwenden Sie das resultierende Raster als Zoneneingabe.
Wenn die Zoneneingabe ein Feature-Dataset mit relativ kleinen Features ist, müssen Sie bedenken, dass die Auflösung der Informationen im Verhältnis zur Auflösung des Werte-Rasters geeignet sein muss. Wenn die Flächen einzelner Features ähnlich sind wie die Fläche einzelner Zellen im Werte-Raster oder mit diesen übereinstimmen, werden bei der Feature-in-Raster-Konvertierung einige dieser Zonen möglicherweise nicht dargestellt.
Konvertieren Sie zu Demonstrationszwecken das Feature-Dataset mit einem Feature-in-Raster-Konvertierungswerkzeug in ein Raster, und geben Sie als Auflösung die des Werte-Rasters an. Das Ergebnis dieser Konvertierung veranschaulicht, welche Art von Standardausgabe der zonale Vorgang erzeugt.
Wenn die Ausgabe weniger Ergebnisse als erwartet enthält, müssen Sie eine geeignete Raster-Auflösung bestimmen, in der die Details der Feature-Eingabe dargestellt werden. Verwenden Sie dann diese Auflösung als Zellengröße in den Raster-Analyse-Einstellungen der Umgebung.
Wenn die Zoneneingabe ein Punkt-Feature-Dataset ist, ist es möglich, dass eine bestimmte Zelle des Eingabe-Werte-Rasters mehr als einen Punkt enthält. Für derartige Zellen wird der Zonenwert durch den Punkt mit der höchsten Feature-ID bestimmt.
Wenn die Zonen-Feature-Eingabe überlappende Polygone aufweist, 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 Statistik für jede der Polygonzonen iterativ zu verarbeiten und die Ergebnisse zusammenzuführen.
Es wird empfohlen, ausschließlich Raster als Zoneneingabe zu verwenden, da Ihnen dies größere Kontrolle über die Vektor-in-Raster-Konvertierung bietet. Dies hilft sicherzustellen, dass Sie stets die erwarteten Ergebnisse erhalten.
Beim Festlegen der Daten für die Eingabezone entspricht das Standardzonenfeld 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.
Das Eingabe-Werte-Raster kann entweder ein Ganzzahl- oder ein Gleitkomma-Raster sein. Bei Gleitkomma-Rastern werden jedoch die zonalen Berechnungen für Mehrheit, Medianwert, Minderheit und Varianz nicht durchgeführt.
Wenn es bei Mehrheits- und Minderheitsberechnungen zu einem Gleichstand kommt, basiert die Ausgabe für die Zone auf dem niedrigsten der verbundenen Werte.
Ein Feld oder eine Reihe von Feldern wird in der Ausgabetabelle erstellt, abhängig von der Einstellung für Statistiktyp. Wenn die Werteingabe ganzzahlig ist, stehen sämtliche Statistiken (Minimum, Maximum, Bereich, Mittelwert, Standardabweichung, Summe, Varianz, Mehrheit, Minderheit und Medianwert) zur Berechnung zur Verfügung. Bei einer Eingabe in Form von Gleitkommawerten werden die Statistiken für "Mehrheit", "Minderheit", "Medianwert" und "Varianz" nicht berechnet.
Der Datentyp für jeden Wert unter den Elementen in der Ausgabetabelle ist abhängig von der zonalen Berechnung, die durchgeführt wird. Unter Funktionsweise von "Zonale Statistiken" finden Sie Informationen zum konkreten Verhalten der einzelnen Statistiken.
Die Anzahl der Zeilen in der Ausgabetabelle entspricht der Anzahl der Zonen.
Dieses Werkzeug nutzt standardmäßig Mehrkernprozessoren. Die maximale Anzahl der nutzbaren Kerne ist auf vier beschränkt.
Wenn das Werkzeug weniger Kerne nutzen soll, verwenden Sie die Umgebungseinstellung Faktor für parallele Verarbeitung.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
ZonalStatisticsAsTable (in_zone_data, zone_field, in_value_raster, out_table, {ignore_nodata}, {statistics_type})
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_value_raster | Raster, das die Werte für die Berechnung der Statistik enthält. | Raster Layer |
out_table | Ausgabetabelle, die die Zusammenfassung der Werte 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 |
ignore_nodata (optional) | Gibt an, ob sich NoData-Werte in der Werteingabe auf die Ergebnisse der Zone auswirken, in der sie liegen.
| Boolean |
statistics_type (optional) | Zu berechnender Statistiktyp.
| String |
Codebeispiel
ZonalStatisticsAsTable – Beispiel 1 (Python-Fenster)
In diesem Beispiel werden die Werte eines Rasters innerhalb der von einem Polygon-Shapefile definierten Zonen zusammengefasst und die Ergebnisse in einer Tabelle aufgezeichnet.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZSaT = ZonalStatisticsAsTable("zones.shp", "Classes", "valueforzone",
"zonalstattblout", "NODATA", "SUM")
ZonalStatisticsAsTable – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel werden die Werte eines Rasters innerhalb der von einem Polygon-Shapefile definierten Zonen zusammengefasst und die Ergebnisse in einer .dbf-Datei aufgezeichnet.
# Name: ZonalStatisticsAsTable_Ex_02.py
# Description: Summarizes values of a raster within the zones of
# another dataset and reports the results to a table.
# 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"
# Set local variables
inZoneData = "zones.shp"
zoneField = "Classes"
inValueRaster = "valueforzone"
outTable = "zonalstattblout02.dbf"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalStatisticsAsTable
outZSaT = ZonalStatisticsAsTable(inZoneData, zoneField, inValueRaster,
outTable, "NODATA", "MEAN")
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst