Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Glättet die Grenze zwischen Zonen in einem Raster.
Weitere Informationen zur Funktionsweise von "Grenzen glätten"
Abbildung
Verwendung
Das Werkzeug Grenzen glätten generalisiert bzw. vereinfacht Raster, indem es die Grenzen zwischen Zonen glättet. Im Werkzeug sind Optionen verfügbar, mit denen gesteuert wird, welche Auswirkungen die Zellen der Eingabezonen auf das Glätten und den angewendeten Glättungsgrad haben.
Das Werkzeug wendet beim Glätten der Grenzen die mathematischen Morphologietechniken Ausdehnung (Dilatation) und Verkleinerung (Erosion) an (Serra, 1982). Jede Eingabezelle wird anhand ihrer direkten orthogonalen und diagonalen Nachbarn ausgewertet.
Beim Glättungsvorgang werden zuerst die Nachbarzellen nach einer bestimmten Priorität geordnet. Durch die Priorität wird festgelegt, welche Zone aus den Nachbarzellen den Wert der Verarbeitungszelle in der Ausgabe ersetzen kann.
Die Priorität kann entweder auf dem Wert der Zonen oder der Größe der Zonen basieren. Mit dem Parameter Sortiertyp (sort_type in Python) wird der verwendete Sortiertyp bestimmt.
Bei der Standardmethode Nicht sortieren (NO_SORT in Python) wird die Priorität basierend auf dem Wert der Zonen ausgewertet. Zellen aus Zonen mit höheren Werten haben für die Ausdehnung in Zonen mit niedrigeren Werten eine höhere Priorität. Die Größe der Zonen wird nicht berücksichtigt.
Die Größe bzw. Gesamtfläche der Zonen kann für die Sortierung nach Priorität verwendet werden. Die Größe bestimmt sich aus der Anzahl an Zellen, die jeweils eine Zone bilden. Mit der Einstellung Absteigend (DESCEND in Python) werden die Zonen in absteigender Reihenfolge nach Größe geordnet. Zonen mit größerer Gesamtfläche haben für die Ausdehnung in Zonen mit kleinerer Gesamtfläche eine höhere Priorität. Bei der Einstellung Aufsteigend (ASCEND in Python) trifft das Gegenteil zu: Zonen mit kleinerer Gesamtfläche haben für die Ausdehnung in Zonen mit größerer Gesamtfläche eine höhere Priorität.
Der Glättungsgrad wird mit dem Parameter Ausdehnen und Verkleinern zweimal durchlaufen (number_of_runs in Python) gesteuert. Damit wird die Anzahl der Durchgänge für den Ausdehnungs- und Verkleinerungsvorgang festgelegt.
Ist die Einstellung deaktiviert (ONE_WAY in Python), wird der Ausdehnungs- und Verkleinerungsvorgang einmal durchgeführt. Ist die Einstellung hingegen aktiviert (TWO_WAY in Python), wird der Ausdehnungs- und Verkleinerungsvorgang zweimal durchgeführt, sodass sich eine stärkere Glättung der Zonengrenzen ergibt.
Weitere Informationen zum Algorithmus finden Sie im Abschnitt "Grenzen glätten" unter Glätten von Zonenkanten mit "Grenzen glätten" und "Mehrheitsfilter".
Wenn die Werte aller acht Nachbarzellen dem der Verarbeitungszelle entsprechen, behält die Ausgabezelle den Wert der Eingabezelle bei.
Quellen:
- Serra, J., Image Analysis and Mathematical Morphology, Academic Press, London 1982.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
BoundaryClean(in_raster, {sort_type}, {number_of_runs})
Parameter | Erklärung | Datentyp |
in_raster | Das Eingabe-Raster, für das die Grenze zwischen Zonen geglättet wird. Die Eingabe muss den Typ "Ganzzahl" aufweisen. | Raster Layer |
sort_type (optional) | Gibt den Typ der Sortierung an, der im Glättungsprozess verwendet werden soll. Die Sortierung bestimmt die Priorität, durch die Zellen sich in ihre Nachbarn ausdehnen können. Die Sortierung kann auf Grundlage des Zonenwertes oder der Zonengröße erfolgen.
| String |
number_of_runs (optional) | Gibt an, wie oft der Glättungsprozess stattfinden soll: zweimal oder einmal.
| Boolean |
Rückgabewert
Name | Erklärung | Datentyp |
out_raster | Das generalisierte Ausgabe-Raster. Die Grenzen zwischen Zonen in der Eingabe werden geglättet. Die Ausgabe ist immer ganzzahlig. | Raster |
Codebeispiel
In diesem Beispiel wird die Grenze zwischen Zonen in absteigender Reihenfolge mit einer bidirektionalen Ausführung geglättet.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OutBndCln = BoundaryClean("land", "DESCEND", "TWO_WAY")
OutBndCln.save("c:/sapyexamples/output/bndcln_des2")
In diesem Beispiel wird die Grenze zwischen Zonen in absteigender Reihenfolge mit einer bidirektionalen Ausführung geglättet.
# Name: BoundaryClean_Ex_02.py
# Description: Smoothes the boundary between zones
# by expanding and shrinking it.
# 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
inRaster = "land"
# Execute BoundaryClean
OutBndCln = BoundaryClean(inRaster, "ASCEND", "TWO_WAY")
# Save the output
OutBndCln.save("c:/sapyexamples/output/bndcln_asc2")
Umgebungen
Lizenzinformationen
- Basic: Erfordert Spatial Analyst
- Standard: Erfordert Spatial Analyst
- Advanced: Erfordert Spatial Analyst