Mehrheitsfilter (Spatial Analyst)

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"

Abbildung

Abbildung: Mehrheitsfilter
OutRas = MajorityFilter(InRas1)

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 Hälfte 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 Hälfte ermöglicht eine umfangreichere Filterung als die Option Mehrheit.

  • Das Nachbarschaftskriterium für Kanten- und Ecken-Raster-Zellen ist zwar gleich, es gelten jedoch unterschiedliche Regeln für Mehrheit und Hälfte. 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})
ParameterErklärungDatentyp
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.

  • FOUR Der Kernel des Filters sind die vier direkten (orthogonalen) Nachbarn der vorhandenen Zelle. Dies ist die Standardeinstellung.
  • EIGHT Der Kernel des Filters sind die acht unmittelbaren Nachbarn (ein Fenster aus drei mal drei Zellen) der derzeitigen Zelle.
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.

  • MAJORITY Eine Mehrheit der Zellen muss über den gleichen Wert verfügen und zusammenhängend sein. Drei von vier oder fünf von acht verbundenen Zellen müssen denselben Wert aufweisen.
  • HALF Die Hälfte der Zellen muss denselben Wert aufweisen und zusammenhängend sein. Zwei von vier oder vier von acht verbundenen Zellen müssen denselben Wert aufweisen. Diese Option führt zu einem stärkeren Glättungseffekt als die andere.
String

Rückgabewert

NameErklärungDatentyp
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"

# Execute MajorityFilter
outMajFilt = MajorityFilter(inRaster, "EIGHT", "HALF")

# Save the output 
outMajFilt.save("c:/sapyexamples/output/majfilter")

Lizenzinformationen

  • Basic: Erfordert Spatial Analyst
  • Standard: Erfordert Spatial Analyst
  • Advanced: Erfordert Spatial Analyst

Verwandte Themen