Hauptkomponentenanalyse (Spatial Analyst)
Zusammenfassung
Führt eine Hauptkomponentenanalyse (Principal Component Analysis, PCA) für eine Gruppe von Raster-Bändern aus und generiert ein einzelnes Multiband-Raster als Ausgabe.
Weitere Informationen zur Funktionsweise des Werkzeugs "Hauptkomponentenanalyse".
Verwendung
-
Der für die Anzahl der Hauptkomponenten angegebene Wert bestimmt die Anzahl der Haupteskomponentenbänder im Ausgabe-Multiband-Raster. Die Zahl darf nicht größer sein als die Gesamtzahl der Raster-Bänder in der Eingabe.
-
Die Raster-Bänder müssen einen gemeinsamen Schnittpunkt haben. Wenn dieser nicht vorhanden ist, tritt ein Fehler auf, und es wird keine Ausgabe erzeugt.
-
Neben dem angegebenen Dateinamen für die Ausgabedaten werden die Korrelations- und Kovarianzmatrizen, die Eigenwerte und Eigenvektoren sowie die prozentuale Varianz durch die einzelnen Eigenwerte und die beschriebene kumulierte Varianz in einer ASCII-Datei gespeichert.
Die prozentuale Varianz gibt die Größe der Varianz an, die von den einzelnen Eigenwerten erfasst wird. Dies kann für die Interpretation der PCA-Ergebnisse nützlich sein. Wenn die Mehrheit der Varianz von wenigen Eigenwerten erfasst wird (die jeweils Bändern im Ausgabe-Raster entsprechen), kann es angebracht sein, diese Teilmenge von Bändern in einer nachfolgenden Analyse zu verwenden, da durch sie möglicherweise die Mehrheit der Interaktionen innerhalb des ursprünglichen Multiband-Datasets erfasst wird.
Bei der Bestimmung der prozentualen Varianz, die von den einzelnen Eigenwerten erfasst wird, ist die Summe der Eigenwerte in die folgende Formel einzugeben: (Eigenwert * 100)/Summe. Der erste Eigenwert (und dessen zugehöriges Band) erfasst die größte Varianz, und die nachfolgenden Eigenwerte erfassen eine immer geringere Varianz. Der kumulierte Prozentsatz der Varianz ergibt sich aus der Summe aller Varianzen, die von den einzelnen Eigenwerten erfasst werden.
-
Wenn die Eingabe ein Layer ist, der aus einem Multiband-Raster mit mehr als drei Bändern erstellt wurde, berücksichtigt der Vorgang alle mit dem Quellen-Dataset verknüpften Bänder und nicht nur die drei vom Layer geladenen (symbolisierten) Bänder.
Sie haben verschiedene Möglichkeiten, eine Teilmenge von Bändern eines Multiband-Rasters als Eingabe für das Werkzeug festzulegen.
- Wechseln Sie bei Verwendung des Werkzeugdialogfeldes in das Multiband-Raster, indem Sie die Schaltfläche "Durchsuchen" neben dem Eintrag Eingabe-Raster-Bänder verwenden. Öffnen Sie das Raster, und wählen Sie die gewünschten Bänder aus.
- Wenn es sich bei dem Multiband-Raster um einen Layer im Inhaltsverzeichnis handelt, können Sie mit dem Werkzeug Raster-Layer erstellen einen neuen Multiband-Layer erstellen, der nur die gewünschten Bänder enthält.
- Sie können auch mithilfe der Option Bänder zusammensetzen ein neues Dataset erstellen, das nur die gewünschten Bänder enthält, und dieses als Eingabe für das Werkzeug verwenden.
- In Python können die gewünschten Bänder direkt als Liste im Werkzeugparameter festgelegt werden.
Syntax
Parameter | Erläuterung | Datentyp |
in_raster_bands [in_raster_band,...] |
Die Eingabe-Raster-Bänder. | Raster Layer |
number_components (optional) |
Anzahl der Hauptkomponenten. Die Anzahl muss größer 0 und kleiner oder gleich der Gesamtzahl an Eingabe-Raster-Bändern sein. Die Standardvorgabe ist die Gesamtzahl der Raster in der Eingabe. | Long |
out_data_file (optional) |
Ausgabe-ASCII-Datendatei zur Speicherung der Hauptkomponentenparameter. Die Erweiterung für die Ausgabedatei kann .txt oder .asc sein. | File |
Rückgabewert
Name | Erläuterung | Datentyp |
out_multiband_raster |
Das Ausgabe-Multiband-Raster-Dataset. Wenn die Ausgabe ein Esri Grid-Raster ist, muss der Dateiname weniger als 10 Zeichen umfassen. | Raster |
Codebeispiel
In diesem Beispiel wird eine Hauptkomponentenanalyse (Principal Component Analysis, PCA) für ein Multiband-Raster als Eingabe ausgeführt und ebenfalls ein Multiband-Raster als Ausgabe generiert.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outPrincipalComp = PrincipalComponents(["redlands"], 4,"pcdata.txt") outPrincipalComp.save("C:/sapyexamples/output/outpc01")
In diesem Beispiel wird eine Hauptkomponentenanalyse (Principal Component Analysis, PCA) für ein Multiband-Raster als Eingabe ausgeführt und ebenfalls ein Multiband-Raster als Ausgabe generiert.
# Name: PrincipalComponents_Ex_02.py # Description: Performs principal components analysis on a set of raster bands. # 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 inRasterBand1 = "redlands/redlandsc1" inRasterBand2 = "redlands/redlandsc3" numberComponents = 2 outDataFile = "C:/sapyexamples/output/pcdatafile.txt" # Check out the ArcGIS Spatial Analyst extension license arcpy.checkOutExtension("Spatial") # Execute PrincipalComponents outPrincipalComp = PrincipalComponents([inRasterBand1, inRasterBand2], 2, outDataFile) # Save the output outPrincipalComp.save("C:/sapyexamples/output/outpc01")