Resumen
Genera un archivo de definición de clasificador de Esri (.ecd) utilizando la definición de clasificación de Máquina de vectores de soporte (SVM).
Uso
El clasificador de SVM proporciona un método de clasificación supervisado potente y moderno que permite manejar una entrada de ráster segmentado o una imagen estándar. Se trata de un método de clasificación relativamente nuevo cuyo uso está muy extendido entre los investigadores.
Para las entradas de imagen estándar, la herramienta acepta imágenes de varias bandas con cualquier profundidad de bit y realiza la clasificación de SVM por píxel, según el archivo de entidades de formación de entrada.
Para los rásteres segmentados, que tienen establecida la propiedad clave en Segmentada, la herramienta calcula la imagen de índice y los atributos de segmento asociados del ráster segmentado RGB. Se calculan los atributos para generar el archivo de definición de clasificador que se va a utilizar en una herramienta de clasificación aparte. Los atributos de cada segmento se pueden calcular desde cualquier imagen compatible con Esri.
La herramienta de clasificador de SVM ofrece varias ventajas, en comparación con los métodos de clasificación tradicionales:
- El clasificador de SVM permite manejar imágenes segmentadas muy grandes cuya tabla de atributos puede llegar a ser bastante grande, algo que resulta especialmente útil en imágenes de alta resolución.
- Es menos susceptible al ruido, a las bandas correlacionadas y al desequilibrio entre la cantidad o el tamaño de los sitios de formación dentro de cada clase.
Se acepta como entrada cualquier ráster compatible con Esri, incluidos productos de ráster, rásteres segmentados, mosaicos, servicios de imágenes o datasets ráster genéricos. Los rásteres segmentados deben tener 8 bits y 3 bandas.
Los Atributos de segmento están habilitados solo si una de las entradas de capa ráster es una imagen segmentada.
Sintaxis
TrainSupportVectorMachineClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes})
Parámetro | Explicación | Tipo de datos |
in_raster | Seleccione el dataset ráster que desee clasificar. Como entrada se prefiere un dataset de ráster segmentado de 3 bandas y 8 bits, donde todos los píxeles del mismo segmento tienen el mismo color. La entrada también puede ser un ráster segmentado en escala de grises de 1 banda y 8 bits. Si no hay disponible ningún ráster segmentado, puede utilizar cualquier dataset ráster compatible con Esri. | Raster Dataset | Mosaic Dataset | Raster Layer | Mosaic Layer | Image Service Layer |
in_training_features | La clase de entidad de muestra de formación se debe haber creado en ArcMap. No hay ningún método para crearlas en Python. | Feature Layer | Raster Catalog Layer |
out_classifier_definition | Se trata de un archivo JSON que contiene información de atributos, estadísticas, vectores de hiperplano y otra información necesaria para el clasificador. Se crea un archivo con la extensión .ecd. | File |
in_additional_raster (Opcional) | Existe la opción de incorporar datasets ráster auxiliares, como una imagen segmentada, un rango multiespectral o un DEM, para generar atributos, así como otra información necesaria para la clasificación. | Raster Dataset | Mosaic Dataset | Raster Layer | Mosaic Layer | Image Service Layer |
max_samples_per_class (Opcional) | El número máximo de muestras que se van a utilizar para definir cada clase. Se recomienda un valor predeterminado de 100 cuando las entradas son rásteres no segmentados. Un valor igual o menor que 0 significa que el sistema siempre utilizará todas las muestras de los sitios de formación para preparar el clasificador. | Long |
used_attributes used_attributes;used_attributes (Opcional) | Especifique los atributos que se deben incluir en la tabla de atributos asociada al ráster de salida. Este parámetro solo está habilitado si la propiedad clave SEGMENTED se establece en verdadera en el ráster de entrada. Si la única entrada en la herramienta es una imagen segmentada, los atributos predeterminados son COLOR, COUNT, COMPACTNESS y RECTANGULARITY. Si también se incluye un in_additional_raster como entrada junto a la imagen segmentada, MEAN y STD están disponibles como opciones.
| String |
Ejemplo de código
Ejemplo 1 de TrainSupportVectorClassifier (ventana de Python)
En este ejemplo de Python se utiliza el clasificador de SVM para clasificar un ráster segmentado.
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")
Ejemplo 2 de TrainSupportVectorClassifier (secuencia de comandos independiente)
En esta secuencia de comandos de Python se utiliza el clasificador de SVM para clasificar un ráster segmentado.
# 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)