Fuzzy-Zugehörigkeit (Spatial Analyst)
Zusammenfassung
Wandelt das Eingabe-Raster in eine Skala von 0 bis 1 um, die die Stärke der Zugehörigkeit zu einer Menge angibt. Dabei wird ein bestimmter Fuzzyfizierungsalgorithmus zugrunde gelegt.
Der Wert 1 gibt die vollständige Zugehörigkeit zu der unscharfen Menge an, während der Wert 0 für die Zugehörigkeit angibt, dass es sich nicht um ein Element der unscharfen Menge handelt.
Weitere Informationen zur Funktionsweise des Werkzeugs "Fuzzy-Zugehörigkeit"
Verwendung
-
Dieses Werkzeug skaliert keine Kategoriedaten. Um Kategoriedaten in die Fuzzy-Überlagerungsanalyse einzuschließen, ist ein Vorverarbeitungsschritt notwendig. Sie können ein Modell erstellen oder die folgenden Geoverarbeitungswerkzeuge ausführen. Verwenden Sie zuerst das Werkzeug Reklassifizieren, um einen neuen Wertebereich (z. B. 1 bis 100) bereitzustellen. Dividieren Sie dann das Ergebnis durch einen Faktor (z. B. durch 100), um die Ausgabewerte auf den Bereich zwischen 0,0 und 1,0 zu normalisieren.
Die Spanne bestimmt, wie schnell sich die Fuzzy-Zugehörigkeitswerte von 1 auf 0 verringern. Je größer der Wert, desto steiler die Fuzzyfizierung um den Mittelpunkt. Anders ausgedrückt, wenn die Spanne kleiner wird, nähern sich die Fuzzy-Zugehörigkeiten langsamer dem Wert 0. Die Auswahl des entsprechenden Wertes für die Spanne ist ein subjektiver Prozess, der vom Bereich der exakten Werte abhängig ist. Für "Gauß'sche" und "Nah" ist der Standardwert 0,1 ein guter Ausgangspunkt. Üblicherweise schwanken die Werte innerhalb der Bereiche [0,01–1] bzw. [0,001–1]. Für "Klein" und "Groß" ist der Standardwert 5 ein guter Ausgangspunkt, bei dem die Werte üblicherweise zwischen 1 und 10 schwanken.
-
Es kann Fälle geben, in denen bei keinem der Eingabewerte die 100%ige Möglichkeit besteht, dass sie ein Teil des angegebenen Satzes sind. Mit anderen Worten hat keiner dieser Eingabewerte eine Fuzzy-Zugehörigkeit von 1. In dieser Situation können Sie die Fuzzy-Zugehörigkeitswerte neu skalieren, um die neue Skala wiederzugeben. Wenn der höchste Zugehörigkeitswert z. B. 0,75 ist, können Sie die neue Skala einrichten, indem Sie jeden der Fuzzy-Zugehörigkeitswerte mit 0,75 multiplizieren.
-
Die implementierten Hedges sind Very und Somewhat. Very ist auch als Konzentration bekannt und ist als Quadrat der Fuzzy-Zugehörigkeitsfunktion definiert. Somewhat ist als Dilatation bzw. "Mehr oder weniger" bekannt und ist die Quadratwurzel der Fuzzy-Zugehörigkeitsfunktion. Die Hedges "Very" und "Somewhat" verringern bzw. erhöhen die Fuzzy-Zugehörigkeitsfunktionen.
-
Negative Werte sind in den Zugehörigkeitsfunktionen "Klein" und "Groß" nicht zulässig.
-
Für die Zugehörigkeitsfunktion "Linear" muss es sich beim Eingabe-Raster um geordnete Daten handeln. Das Minimum kann kleiner sein als das Maximum, um eine positive Neigung zu erstellen, oder größer als das Maximum, um eine negative Neigung für die Transformation zu erstellen.
Wenn das Minimum kleiner ist als das Maximum, wird eine Funktion mit positiver Neigung für die Transformation verwendet; wenn das Minimum größer als das Maximum ist, wird eine Funktion mit negativer Neigung verwendet.
Syntax
Parameter | Erläuterung | Datentyp |
in_raster |
Das Eingabe-Raster, dessen Werte von 0 bis 1 skaliert werden. | Raster Layer |
fuzzy_function (optional) |
Gibt den für die Fuzzyfizierung des Eingabe-Rasters verwendeten Algorithmus an. Die unscharfen Klassen werden verwendet, um den Typ der Zugehörigkeit anzugeben. Es gibt folgende Typen von Zugehörigkeitsklassen: Formate der Zugehörigkeitsklassen:
| Fuzzy function |
hedge (optional) |
Durch Definition einer Hedge werden die Fuzzy-Zugehörigkeitswerte herauf oder herab gesetzt, die die Bedeutung einer unscharfen Menge ändern. Mithilfe von Hedges können Sie die Kriterien oder wichtige Attribute steuern.
| String |
Rückgabewert
Name | Erläuterung | Datentyp |
out_raster |
Die Ausgabe ist ein Gleitkomma-Raster mit Werten im Bereich von 0 bis 1. | Raster |
Codebeispiel
In diesem Beispiel wird mithilfe der Gauß'schen Funktion ein Fuzzy-Zugehörigkeits-Raster erstellt, wobei dem Mittelpunkt (1.200 ft) nähere Höhenwerte einen höheren Zugehörigkeitswert aufweisen.
import arcpy from arcpy.sa import * from arcpy import env env.workspace = "c:/sapyexamples/data" outFzyMember = FuzzyMembership("elevation", FuzzyGaussian(1200, 0.06)) outFzyMember.save("c:/sapyexamples/fzymemb")
In diesem Beispiel wird mithilfe der Gauß'schen Funktion und der Spanne 0,4 ein Fuzzy-Zugehörigkeits-Raster erstellt, wobei dem Mittelpunkt (1.000 ft) nähere Höhenwerte einen höheren Zugehörigkeitswert aufweisen.
# Name: FuzzyMembership_Ex_02.py # Description: Scales input raster data into values ranging from zero to one # indicating the strength of a membership in a set. # 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 = "elevation" # Create the FuzzyGaussian algorithm object midpoint = 1000 spread = 0.4 myFuzzyAlgorithm = FuzzyGaussian(midpoint, spread) # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute FuzzyMembership outFuzzyMember = FuzzyMembership(inRaster, myFuzzyAlgorithm) # Save the output outFuzzyMember.save("c:/sapyexamples/fzymemb2")