Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Generiert eine Esri Classifier Definition (.ecd)-Datei mithilfe der Klassifizierungsdefinition für Support Vector Machine (SVM).
Verwendung
Der SVM-Klassifikator ist eine moderne, leistungsfähige Methode für überwachte Klassifizierung. Er eignet sich gut für die segmentierte Raster-Eingabe, kann jedoch auch Standardbilddaten verarbeiten. Hierbei handelt es sich um eine Klassifizierungsmethode, die häufig in der Forschungs-Community verwendet wird.
Für die Eingabe von Standardbildern akzeptiert das Werkzeug Multiband-Bilddaten mit beliebiger Bittiefe. Dabei erfolgt die SVM-Klassifizierung auf Grundlage der Trainings-Feature-Datei auf Pixelbasis.
Indexbild und damit verbundene Segmentattribute von segmentierten Rastern (Schlüssel ist auf Segmentiert festgelegt) berechnet das Werkzeug aus dem RGB-segmentierten Raster. Die Berechnung der Attribute erfolgt zwecks Generierung der Klassifikatordefinitionsdatei, die in einem separaten Klassifizierungswerkzeug verwendet werden kann. Die Attribute des jeweiligen Segments lassen sich aus einem beliebigen von Esri unterstützten Bild berechnen.
Gegenüber der Maximum-Likelihood-Klassifizierung hat das SVM-Klassifizierungswerkzeug einige Vorteile vorzuweisen:
- Der SVM-Klassifikator benötigt weitaus weniger Proben und erfordert keine normale Verteilung der Proben.
- Er ist weniger anfällig für Rauschen, korrelierte Bänder oder eine unausgewogene Anzahl oder Größe von Training-Sites in der jeweiligen Klasse.
Als Eingabe werden beliebige von Esri unterstützte Raster akzeptiert, darunter Raster-Produkte, segmentierte Raster, Mosaike, Image-Services oder generische Raster-Datasets. Die segmentierten Raster müssen 8-Bit-Raster mit 3 Bändern sein.
Verwenden Sie zum Erstellen der Trainingsgebietdatei den Trainingsgebiet-Manager auf der Werkzeugleiste Bildklassifizierung. Weitere Informationen zum Verwenden der Werkzeugleiste Bildklassifizierung finden Sie unter Was ist Bildklassifizierung?
Der Parameter Segmentattribute ist nur dann aktiviert, wenn eine der Raster-Layer-Eingaben ein segmentiertes Bild ist.
Syntax
TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes})
Parameter | Erklärung | Datentyp |
in_raster | Das Raster-Dataset, das klassifiziert werden soll. Als Eingabe eignet sich am besten ein segmentiertes 3-Band, 8-Bit-Raster-Dataset, bei dem alle Pixel desselben Segments dieselbe Farbe aufweisen. Auch ein 1-Band-, 8-Bit-Graustufen-segmentiertes Raster kann als Eingabe dienen. Steht kein segmentiertes Raster zur Verfügung, können Sie ein beliebiges von Esri unterstütztes Raster-Dataset verwenden. | Raster Layer; Mosaic Layer; Image Service; String |
in_training_features | Die Trainingsgebietdatei bzw. der Trainingsgebiet-Layer, der Ihre Training-Sites abgrenzt. Ihre Trainingsgebiete können entweder in Shapefiles oder in Feature-Classes enthalten sein. In der Trainingsgebiet-Datei werden die folgenden Feldnamen benötigt:
| Feature Layer; Raster Catalog Layer |
out_classifier_definition | Die JSON-Ausgabedatei, die Attributinformationen, Statistiken, Hyperebenenvektoren und weitere Daten für den Klassifikator enthält. Es wird eine .ecd-Datei erstellt. | File |
in_additional_raster (optional) | Integrieren Sie Zusatz-Raster-Datasets, wie ein Multispektralbild oder ein DEM, um Attribute und weitere erforderliche Informationen für die Klassifizierung zu generieren. Dieser Parameter ist optional. | Raster Layer; Mosaic Layer; Image Service; String |
max_samples_per_class (optional) | Die maximale Anzahl von Beispielen, die zum Definieren der jeweiligen Klasse verwendet wird. Empfehlenswert ist ein Standardwert von 500, wenn es sich bei den Eingaben um unsegmentierte Raster handelt. Ein Wert kleiner oder gleich 0 bedeutet, dass zum Trainieren des Klassifikators alle in den Training-Sites enthaltenen Stichproben verwendet werden. | Long |
used_attributes [used_attributes;used_attributes,...] (optional) | Gibt die Attribute an, die in die dem Ausgabe-Raster zugeordnete Attributtabelle aufgenommen werden sollen.
Dieser Parameter ist nur aktiviert, wenn die Schlüsseleigenschaft Segmentiert auf das Eingabe-Raster festgelegt ist. Wenn die einzige Eingabe für das Werkzeug ein segmentiertes Bild ist, lauten die Standardattribute COLOR, COUNT, COMPACTNESS und RECTANGULARITY. Wenn ein in_additional_raster als Eingabe mit einem segmentierten Bild einbezogen wird, sind die Attribute MEAN und STD ebenfalls verfügbar. | String |
Codebeispiel
TrainSupportVectorClassifier – Beispiel 1 (Python-Fenster)
In diesem Python-Beispiel wird zum Klassifizieren eines segmentierten Rasters der SVM-Klassifikator verwendet.
import arcpy
from arcpy.sa import *
arcpy.gp.TrainSupportVectorMachineClassifier(
"c:/test/moncton_seg.tif", "c:/test/train.gdb/train_features",
"c:/output/moncton_sig_SVM.ecd", "c:/test/moncton.tif", "10",
"COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainSupportVectorClassifier – Beispiel 2 (eigenständiges Skript)
In diesem Python-Skript wird zum Klassifizieren eines segmentierten Rasters der SVM-Klassifikator verwendet.
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inSegRaster = "c:/test/moncton_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/moncton_sig.ecd"
in_additional_raster = "c:/moncton.tif"
maxNumSamples = "10"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
#Execute
arcpy.gp.TrainSupportVectorMachineClassifier(
inSegRaster, train_features, out_definition,
in_additional_raster, maxNumSamples, attributes)
Umgebungen
Lizenzinformationen
- Basic: Erfordert Spatial Analyst
- Standard: Erfordert Spatial Analyst
- Advanced: Erfordert Spatial Analyst