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.
Abbildung
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.
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-Werte-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 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.
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.
Das 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).
Im Histogramm wird die Anzahl von Klassen (Bins) für jede Zone durch das 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 wird die Gesamtzahl an Einzelwerten verwendet.
Ein Diagramm für ein zonales Histogramm wird nicht standardmäßig generiert. Um es bei der Ausführung des Werkzeugs erstellen zu lassen, müssen Sie einen Wert für Name des Ausgabediagramms angeben.
Das Diagramm ist nur temporär (In-Memory). Um eine permanente Version davon zu erstellen, erstellen Sie mit Hilfe des Werkzeugs Diagramm speichern eine .grf-Diagrammdatei oder eines der anderen in diesem Werkzeug verfügbaren Ausgabeformate.
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})
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 | Die Rasterwerte zur Erstellung der Histogramme. | Raster Layer |
out_table | Die Ausgabetabellendatei. 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. Die optionale Diagrammausgabe wird aus den Informationen in der Tabelle erstellt. | Table |
out_graph (optional) | Der Name des anzuzeigenden Ausgabediagramms. Das Diagramm ist temporär. Um es beizubehalten, verwenden Sie das Werkzeug Diagramm speichern. | Graph |
Codebeispiel
ZonalHistogram – Beispiel 1 (Python-Fenster)
In diesem Beispiel wird eine .dbf-Tabelle für das zonale Histogramm erstellt.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outZonHisto = ZonalHistogram("zoneras", "zonfield", "valueras", "znhist_tbl.dbf")
ZonalHistogram – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel werden eine .dbf-Tabelle für das zonale Histogramm und eine Diagrammdatei erstellt.
# Name: ZonalHistogram_Ex_02.py
# Description: Creates a zonal histogram output table and
# a graph 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 *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inZoneData = "zonras"
zoneField = "zonfield"
inValueRaster = "valueras"
outTable = "C:/sapyexamples/output/zonehist_tbl.dbf"
outGraph = "zonehist_gra"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ZonalHistogram
ZonalHistogram(inZoneData, zoneField, inValueRaster, outTable, outGraph)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst