Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Erstellt eine Tabelle und ein Histogramm-Diagramm, in denen die Häufigkeitsverteilung der Zellenwerte für die Eingabe "Wert" für jede eindeutige Zone angezeigt wird.
Verwendung
Mit einem zonalen Histogramm können Sie die Häufigkeitsverteilung der Werte in einem Dataset innerhalb Klassen eines anderen Datasets untersuchen. Beispiele hierfür sind die Neigungsverteilung innerhalb der Landnutzungsklassen, die Niederschlagsverteilung innerhalb der Höhenklassen oder die Verbrechensverteilung nach Polizeibezirken.
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) um ein Raster handelt, muss dies ein Integer-Raster sein.
Wenn die Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) ein Feature sind, werden sie intern in ein Raster konvertiert, wobei die Zellengröße und die Zellenausrichtung aus dem Eingabe-Werte-Raster (in_value_raster in Python) verwendet werden.
Bei Abweichungen der Zellengröße zwischen den Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) und dem Eingabe-Werte-Raster (in_value_raster in Python) entspricht die Ausgabezellengröße dem Maximum der Eingabedaten. In diesem Fall wird das Eingabe-Werte-Raster intern als Fang-Raster verwendet. Wenn die Zellengröße übereinstimmt, die Zellen jedoch nicht ausgerichtet sind, wird das Eingabe-Wert-Raster 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 Werteingaben 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 dann kein internes Resampling durchgeführt.
Wenn die Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) ein Punkt-Feature sind, 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 dem niedrigsten ObjectID-Feld (z. B. OID oder FID) bestimmt.
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.
Der Wert des Parameters Zonenfeld (zone_field in Python) muss eine ganze Zahl (Datentyp "Integer") oder einen Text (Datentyp "Text") aufweisen.
Bei Angabe der Eingabe-Raster- oder -Feature-Zonen-Daten (in_zone_data in Python) entspricht das Standard-Zonenfeld 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).
Ein Diagramm für ein zonales Histogramm wird nicht standardmäßig generiert. Aktivieren Sie den Parameter Zonen als Zeilen in der Ausgabetabelle (legen Sie für den Parameter zones_as_rows die Option ZONES_AS_ROWS in Python fest) und geben Sie einen Wert für Ausgabe-Diagrammname (Parameter out_graph in Python) an, um das Diagramm zu erstellen. Das Diagramm für ein zonales Histogramm kann nur in der ArcGIS Pro-Anwendung erstellt werden und wird nicht von eigenständigen Skripten unterstützt.
Im Histogramm wird die Anzahl von Klassen (Bins) für jede Zone durch den Parameter Eingabewert-Raster bestimmt.
- Wenn ein Layer angegeben ist, dann definiert die Symbolisierung des Layers die Anzahl der Klassen.
- Ist ein Dataset angegeben, sind standardmäßig 256 Klassen vorhanden, außer die Eingabe ist eine ganze Zahl mit weniger als 26 Einzelwerten. In diesem Fall ist die Anzahl der Klassen die Gesamtzahl an Einzelwerten.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
ZonalHistogram(in_zone_data, zone_field, in_value_raster, out_table, {out_graph}, {zones_as_rows})
Parameter | Erklärung | 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 | 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_value_raster | Das Raster mit den Werten, die zum Erstellen des Histogramms verwendet werden. | Raster Layer |
out_table | Die Ausgabetabellendatei. 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. Die optionale Diagrammausgabe wird aus den Informationen in der Tabelle erstellt. | Table |
out_graph (optional) | Der Name des anzuzeigenden Ausgabediagramms. | Graph |
zones_as_rows (optional) | Gibt an, wie die Werte aus dem Eingabe-Werte-Raster in der Ausgabetabelle dargestellt werden.
| Boolean |
Codebeispiel
In diesem Beispiel werden eine .dbf-Tabelle für das zonale Histogramm und eine Diagrammdatei erstellt.
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonalHist = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf",
"znhist_graphl", "ZONES_AS_ROWS")
In diesem Beispiel wird eine .dbf-Tabelle für das zonale Histogramm erstellt.
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table
# showing the amount of value cells
# for each unique input zone.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tb2.dbf"
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable)
Umgebungen
Lizenzinformationen
- Basic: Erfordert Spatial Analyst
- Standard: Erfordert Spatial Analyst
- Advanced: Erfordert Spatial Analyst