Glätten von Zonenkanten mit "Grenzen glätten" und "Mehrheitsfilter"

Mit der Spatial Analyst-Lizenz verfügbar.

Die Werkzeuge Grenzen glätten und Mehrheitsfilter werden verwendet, um entlang der Zonenkanten in einem Raster eine Generalisierung vorzunehmen. Die Kanten werden durch eine von zwei Methoden geglättet: durch das Ausdehnen und Verkleinern von Grenzen zwischen den Zonen oder durch das Ersetzen von Zellen durch den Mehrheitswert der unmittelbaren Nachbarschaft.

Grenzen glätten

Das Werkzeug Grenzen glätten generalisiert bzw. vereinfacht Raster, indem es die Grenzen zwischen Zonen glättet. Angewendet wird eine Ausdehnungs- und Verkleinerungsmethode, mit der die einzelnen Zellen anhand der direkten Nachbarn ausgewertet werden. Es sind verschiedene Optionen verfügbar, mit denen gesteuert wird, welche Auswirkungen die Zellen der Zonen auf den Glättvorgang haben. Der Glättungsgrad kann ebenfalls gesteuert werden.

Nach Priorität sortieren

Zuerst werden die Zonen im Eingabe-Raster nach einer bestimmten Priorität sortiert. Für jede Zelle in der Eingabe wird anhand der Priorität bestimmt, welcher Zonenwert aus der umgebenden Nachbarschaft den Wert der Verarbeitungszelle ersetzen kann.

Die Sortierpriorität kann entweder auf dem Wert der Zonen oder der Größe der Zonen basieren. Mit dem Parameter Sortiertyp wird die verwendete Sortierpriorität festgelegt. Bei der Standardeinstellung Nicht sortieren haben Zellen aus Zonen mit höheren Werten für die Ausdehnung in Zonen mit niedrigeren Werten eine höhere Priorität. Bei der Einstellung Absteigend haben Zonen mit größerer Gesamtfläche für die Ausdehnung in Zonen mit kleinerer Gesamtfläche eine höhere Priorität. Bei der Einstellung Aufsteigend haben Zonen mit kleinerer Gesamtfläche für die Ausdehnung in Zonen mit größerer Gesamtfläche eine höhere Priorität.

Glättungsgrad

Der Glättungsgrad wird durch die Anzahl der Durchgänge für den Ausdehnungs- und Verkleinerungsvorgang gesteuert: Der Vorgang kann einmal oder zweimal erfolgen. Standardmäßig erfolgt er zweimalig, wodurch sich ein höherer Glättungsgrad ergibt.

Ausdehnungs- und Verkleinerungsvorgang

Beim Ausdehnungs- und Verkleinerungsvorgang werden die unmittelbaren Nachbarn der einzelnen Verarbeitungszellen entsprechend der im Parameter Sortiertyp festgelegten Sortierpriorität ausgewertet.

Dabei erfolgt eine Ausdehnung, die von einer Verkleinerung gefolgt ist. Dies erfolgt einmalig, wenn der Ausdehnen und Verkleinern zweimal durchlaufen deaktiviert ist (in Python: Parameter number_of_runs auf ONE_WAY festgelegt). Wenn der Parameter aktiviert ist (in Python: Parameter number_of_runs auf TWO_WAY festgelegt), wird der Ausdehnungs- und Verkleinerungsvorgang zweimal ausgeführt.

Im Folgenden erhalten Sie weitere Informationen zum verwendeten Algorithmus.

Unidirektionale Ausdehnung und Verkleinerung

Bei der unidirektionalen Einstellung wird der Ausdehnungs- und Verkleinerungsvorgang einmal durchgeführt.

Beim Ausdehnungsdurchgang geschieht Folgendes:

  • Für jede Verarbeitungszelle im Eingabe-Raster werden die Nachbarzellen ausgewertet.
  • Für jede Nachbarzelle wird ausgewertet, ob der Prioritätswert der Zelle niedriger als der Prioritätswert der Verarbeitungszelle ist. Falls dies zutrifft, wird als interne Nachbarschaftspriorität die Priorität der Eingabe-Verarbeitungszelle zugewiesen. Das interne erweiterte Raster wird mit dem neuen Prioritätswert aktualisiert, woraufhin mit der nächsten Nachbarzelle fortgefahren wird.

Beim Verkleinerungsdurchgang geschieht Folgendes:

  • Für jede Verarbeitungszelle im Eingabe-Raster werden die Nachbarzellen mit dem Wert des internen erweiterten Rasters aus dem ersten Durchgang ausgewertet.
  • Wenn die Priorität einer Nachbarzelle der Priorität der Verarbeitungszelle entspricht, wird der Zellenwert aus dem ursprünglichen Eingabe-Raster in die Ausgabe kopiert. Ist die Bedingung für keine der Nachbarzellen erfüllt, wird der Zellenwert aus dem erweiterten Raster in die Ausgabe kopiert.

Bidirektionale Ausdehnung und Verkleinerung

Wenn der Parameter Ausdehnen und Verkleinern zweimal durchlaufen aktiviert ist (in Python: Parameter number_of_runs auf TWO_WAY festgelegt), wird ein zweiter Ausdehnungs- und Verkleinerungsvorgang durchgeführt, jedoch mit umgekehrten Prioritäten. Die Ausgabe aus dem ersten Durchgang wird als Eingabe für den zweiten Durchgang verwendet.

Im ersten Ausdehnungsdurchgang findet dieselbe Logik wie im unidirektionalen Ausdehnungsdurchgang Anwendung.

Im ersten Verkleinerungsdurchgang findet dieselbe Logik wie im unidirektionalen Verkleinerungsdurchgang Anwendung.

Beim zweiten Ausdehnungsdurchgang geschieht Folgendes:

  • Für jede Verarbeitungszelle im internen Raster, das im ersten Ausdehnungs- und Verkleinerungsvorgang erstellt wurde, werden die einzelnen Nachbarzellen ausgewertet.
  • Für jede Nachbarzelle wird ausgewertet, ob der Prioritätswert der entsprechenden Zelle größer als der Prioritätswert der Verarbeitungszelle ist. Falls dies zutrifft, wird als interne Nachbarschaftspriorität die Priorität der Eingabe-Verarbeitungszelle zugewiesen. Das interne erweiterte Raster wird mit dem neuen Prioritätswert aktualisiert, woraufhin mit der nächsten Nachbarzelle fortgefahren wird.

Beim zweiten Verkleinerungsdurchgang geschieht Folgendes:

  • Für jede Verarbeitungszelle im internen erweiterten Raster aus dem vorherigen Schritt werden die einzelnen Nachbarzellen ausgewertet.
  • Für jede Nachbarzelle wird der Wert der Verarbeitungszelle aus dem ursprünglichen Raster in die Ausgabe kopiert, wenn der Prioritätswert der Nachbarzelle kleiner oder größer als der Wert der Verarbeitungszelle im Raster ist.
  • Wenn der Prioritätswert der Nachbarzelle dem Wert der Verarbeitungszelle im erweiterten Raster entspricht, wird der Wert der Verarbeitungszelle aus dem erweiterten Raster in die Ausgabe kopiert.

Umgang mit NoData-Werten

Eingabezellen mit NoData-Werten haben die niedrigste Priorität, wenn der Ausdehnungs- und Verkleinerungsvorgang einmal durchgeführt wird. Bei zweimaliger Durchführung ist dies der Fall im zweiten Durchgang. Im zweiten Durchgang der bidirektionalen Sortierung haben Zellen mit NoData-Werten die höchste Priorität.

Beispiel

Betrachten Sie die unten dargestellten Eingabe-Raster, um sich zu verdeutlichen, wie sich die verschiedenen Parameter auf die Ausgabe auswirken.

Beispielhaftes Eingabe-Raster für "Grenzen glätten"

Gezeigt ist ein beispielhaftes Eingabe-Raster für "Grenzen glätten". NoData-Zellen sind grau.

Die Ausgaben bei allen Einstellungen des Parameters Sortiertyp und bei beiden Einstellungen des Parameters Ausdehnen und Verkleinern zweimal durchlaufen (aktiviert oder deaktiviert) sind dargestellt.

Wenn der Parameter Sortiertyp auf Nicht sortieren festgelegt ist, ergeben sich folgende Ausgabe-Raster:

Beispielausgabe für "Nicht sortieren" und unidirektionaler Einstellung (deaktiviert)
Unidirektional (deaktiviert)
Beispielausgabe für "Nicht sortieren" und bidirektionaler Einstellung (aktiviert)
Bidirektional (aktiviert)

Wenn der Parameter Sortiertyp auf Absteigend festgelegt ist, ergeben sich folgende Ausgabe-Raster:

Beispielausgabe für "Absteigend" und unidirektionaler Einstellung (deaktiviert)
Unidirektional (deaktiviert)
Beispielausgabe für "Absteigend" und bidirektionaler Einstellung (aktiviert)
Bidirektional (aktiviert)

Wenn der Parameter Sortiertyp auf Aufsteigend festgelegt ist, ergeben sich folgende Ausgabe-Raster:

Beispielausgabe für "Aufsteigend" und unidirektionaler Einstellung (deaktiviert)
Unidirektional (deaktiviert)
Beispielausgabe für "Aufsteigend" und bidirektionaler Einstellung (aktiviert)
Bidirektional (aktiviert)

Mehrheitsfilter

Das Werkzeug Mehrheitsfilter ersetzt Zellen auf Grundlage des Mehrheitswertes der zusammenhängenden Nachbarschaft. Das Werkzeug muss zwei Kriterien erfüllen, bevor eine Ersetzung erfolgen kann. Erstens muss die Anzahl der benachbarten Zellen mit dem gleichen Wert groß genug sein, um der Mehrheitswert zu sein, oder es muss mindestens die Hälfte der Zellen über den gleichen Wert verfügen (abhängig vom angegebenen Parameter). Das heißt, dass drei von vier oder fünf von acht verbundenen Zellen den gleichen Wert wie der Mehrheitsparameter haben müssen und zwei von vier oder vier von acht für den halben Parameter benötigt werden. Zweitens müssen jene Zellen mit dem Mittelpunkt des angegebenen Filters zusammenhängen (z. B. müssen drei von vier Zellen gleich sein). Das zweite Kriterium in Bezug auf die räumliche Konnektivität der Zellen minimiert die Beschädigung von zellularen räumlichen Mustern. Wenn diese Kriterien nicht erfüllt werden, tritt keine Ersetzung auf und die Zelle behält ihren Wert bei.

In der folgenden Darstellung wurde Mehrheitsfilter mit einem Filter der nächstgelegenen vier Zellen auf das Eingabe-Raster angewendet, bei denen es sich um die vier orthogonal benachbarten Zellen handelt. Die Mehrheit (drei von vier Zellen) muss gleich sein, damit eine Zelle ihren Wert ändert. Nur jene Zellen, die von drei oder mehr (orthogonalen) Zellen mit dem gleichen Wert umgebenen sind, werden geändert.

Mehrheitsfilter: Abbildung 1
OutRas = MajorityFilter(InRas1)

In der folgenden Darstellung wurde das Werkzeug Mehrheitsfilter mit einem Filter der nächstgelegenen acht Zellen angewendet, bei denen mindestens die Hälfte der Werte (vier von acht Zellen) den gleichen Wert haben muss, damit eine Zelle ihren Wert ändert. Beachten Sie, dass es einen stärkeren Glättungseffekt gibt.

Mehrheitsfilter: Abbildung 2
OutRas = MajorityFilter(InRas1, eight, half)

Verwandte Themen