Majority Filter (Spatial Analyst)
Zusammenfassung
Ersetzt Zellen in einem Raster auf Basis der Mehrheit der zusammenhängenden Nachbarzellen.
Weitere Informationen zur Funktionsweise des Werkzeugs "Majority Filter"
Bild
Verwendung
Das Werkzeug Majority Filter 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 minimieren die Beschädigung von zellularen räumlichen Mustern.
-
Bei Verwendung von FOUR für die Anzahl der Nachbarn werden die Ecken von rechteckigen Bereichen beibehalten. Bei Verwendung von EIGHT werden die Ecken von rechteckigen Bereichen geglättet.
-
Laut Definition bedeutet "zusammenhängend", dass bei einem Kernel des Typs "EIGHT" eine Kante gemeinsam ist, und bei einem Kernel des Typs "FOUR" eine Ecke.
-
Wenn der Ersetzungsschwellenwert HALF angegeben ist und zwei Werte als gleiche Hälften auftreten, findet keine Ersetzung statt, wenn der Wert der bearbeiteten Zelle gleich dem Wert einer der Hälften ist. HALF ermöglicht eine umfangreichere Filterung als MAJORITY.
-
Das Nachbarschaftskriterium für Kanten- und Ecken-Raster-Zellen ist zwar gleich, es gelten jedoch unterschiedliche Regeln für MAJORITY und HALF. Bei einem Kernel vom Typ FOUR benötigt eine Kanten- oder Eckzelle stets zwei passende Nachbarn, damit eine Ersetzung erfolgen kann. Bei einem Kernel vom Typ EIGHT 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 Majority Filter stabilisiert (ändert sich nicht mehr).
Syntax
Parameter | Erläuterung | Datentyp |
in_raster |
Das zu filternde Eingabe-Raster auf Basis der Mehrheit der zusammenhängenden Nachbarzellen. Es 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. | Raster |
Codebeispiel
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")
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")