Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Ersetzt Zellen in einem Raster auf Basis der Mehrheit der zusammenhängenden Nachbarzellen.
Weitere Informationen zur Funktionsweise des Werkzeugs "Mehrheitsfilter"
Bild
Verwendung
Das Werkzeug Mehrheitsfilter muss zwei Kriterien erfüllen, bevor eine Ersetzung erfolgen kann. Die Anzahl der benachbarten Zellen mit ähnlichem Wert muss groß genug sein (entweder indem es sich um die Mehrheit oder um die Hälfte aller Zellen handelt), und diese Zellen müssen um dem Mittelpunkt des Filter-Kernels zusammenhängen. Das zweite Kriterium in Bezug auf die räumliche Konnektivität der Zellen minimiert die Beschädigung von zellularen räumlichen Mustern.
Bei Verwendung von vier Nachbarn werden die Ecken von rechteckigen Bereichen beibehalten. Bei Verwendung von acht Nachbarn werden die Ecken von rechteckigen Bereichen geglättet.
Wenn die Anzahl der Nachbarn auf acht festgelegt wird, wird "zusammenhängend" als gemeinsame Kante definiert. Wenn die Anzahl der Nachbarn auf vier festgelegt wird, wird "zusammenhängend" als gemeinsame Ecke definiert.
Wenn der Schwellenwert beim Ersetzen auf HALF festgelegt ist und zwei Werte als gleiche Hälften auftreten, erfolgt keine Ersetzung, wenn der Wert der bearbeiteten Zelle gleich dem Wert einer der Hälften ist. Die Option HALF ermöglicht eine umfangreichere Filterung als die Option MAJORITY.
Das Nachbarschaftskriterium für Kanten- und Ecken-Raster-Zellen ist zwar gleich, es gelten jedoch unterschiedliche Regeln für MAJORITY und HALF. Wenn die Anzahl der zu verwendenden Nachbarn vier ist, benötigt eine Kanten- oder Eckzelle stets zwei passende Nachbarn, damit eine Ersetzung erfolgen kann. Bei acht Nachbarn müssen alle Nachbarn einer Eckzelle denselben Wert haben, damit sie geändert werden kann. Bei einer Kantenzelle sind drei zusammenhängende Nachbarn erforderlich, einschließlich einem an der Kante, damit eine Änderung erfolgen kann.
Das Ausgabe-Raster wird nach einigen Ausführungen von Mehrheitsfilter stabilisiert (ändert sich nicht mehr).
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
MajorityFilter (in_raster, {number_neighbors}, {majority_definition})
Parameter | Erläuterung | Datentyp |
in_raster | Das zu filternde Eingabe-Raster auf Basis der Mehrheit der zusammenhängenden Nachbarzellen. Die Eingabe muss den Typ "Ganzzahl" aufweisen. | Raster Layer |
number_neighbors (optional) | Bestimmt die Anzahl der im Kernel des Filters zu verwendenden benachbarten Zellen.
| String |
majority_definition (optional) | Gibt die Anzahl der zusammenhängenden (räumlich verbunden) Zellen an, die vom gleichen Wert sein müssen, damit eine Ersetzung erfolgt.
| String |
Rückgabewert
Name | Erläuterung | Datentyp |
out_raster | Das gefilterte Ausgabe-Raster. Die Ausgabe ist immer ganzzahlig. | Raster |
Codebeispiel
MajorityFilter – Beispiel 1 (Python-Fenster)
In diesem Beispiel wird das Eingabe-Raster unter Verwendung aller acht Nachbarn gefiltert. Dabei wird ein stärkerer Glättungseffekt erzielt, wenn vorgeschrieben wird, dass für die Ersetzung die Hälfte davon denselben Wert aufweisen muss.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outMajFilt = MajorityFilter("land", "EIGHT", "HALF")
outMajFilt.save("c:/sapyexamples/output/outmajfilt")
MajorityFilter – Beispiel 2 (eigenständiges Skript)
In diesem Beispiel wird das Eingabe-Raster unter Verwendung aller acht Nachbarn gefiltert. Dabei wird ein stärkerer Glättungseffekt erzielt, wenn vorgeschrieben wird, dass für die Ersetzung die Hälfte davon denselben Wert aufweisen muss.
# Name: MajorityFilter_Ex_02.py
# Description: Replaces cells in a raster based on the
# majority of their contiguous neighboring cells.
# 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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")
# Save the output
outMajFilt.save("c:/sapyexamples/output/majfilter")
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert Spatial Analyst
- ArcGIS for Desktop Standard: Erfordert Spatial Analyst
- ArcGIS for Desktop Advanced: Erfordert Spatial Analyst