Summary
Generate an Esri classifier definition (.ecd) file using the Iso Cluster classification definition.
The ISO Cluster classifier performs an unsupervised classification. This classifier can handle very large segmented images, whose attribute table can become large. Also, the tool can accept a segmented RGB raster from a third-party application. The tool works on standard Esri-supported raster files without restriction, as well as segmented raster datasets.
Usage
Any Esri-supported raster is accepted as input, including raster products, segmented raster, mosaics, image services, or generic raster datasets. Segmented rasters must be 8-bit rasters with 3-bands.
The Segment Attributes parameter is enabled only if one of the raster layer inputs is a segmented image.
Syntax
TrainIsoClusterClassifier (in_raster, max_classes, out_classifier_definition, {in_additional_raster}, {max_iterations}, {min_samples_per_cluster}, {skip_factor}, {used_attributes}, {max_merge_per_iter}, {max_merge_distance})
Parameter | Explanation | Data Type |
in_raster | Select the raster dataset you want to classify. The preferred input is a 3-band, 8-bit segmented raster dataset, where all the pixels in the same segment have the same color. The input can also be a 1-band 8-bit grayscale segmented raster. If no segmented raster is available, you can use any Esri-supported raster dataset | Raster Layer | Mosaic Layer |
max_classes | Maximum number of desired classes to group pixels or segments. This should be set based on the number of classes in your legend. It is possible that you will get fewer classes than what you specified for this parameter. If you need more, increase this value and aggregate classes after the training process is complete. | Long |
out_classifier_definition | This is a JSON file that contains attribute information, statistics, hyperplane vectors and other information needed for the classifier. A file with an .ecd extension is created. | File |
in_additional_raster (Optional) | Optionally incorporate ancillary raster datasets, such as a segmented image, a multispectral image, or a DEM, to generate attributes and other required information for classification. | Raster Layer | Mosaic Layer |
max_iterations (Optional) | Maximum number of iterations for the clustering process to run. The recommended range is between 10 and 20 iterations. Increasing this value will linearly increase the processing time. | Long |
min_samples_per_cluster (Optional) | Minimum number of pixels or segments in a valid cluster or class. The default value of 20 has shown to be effective in creating statistically significant classes. You can increase this number to have more robust classes; however, it may limit the overall number of classes that are created. | Long |
skip_factor (Optional) | Number of pixels to skip for a pixel image input. If a segmented image is an input, specify the number of segments to skip. | Long |
used_attributes used_attributes;used_attributes (Optional) | Specify the attributes to be included in the attribute table associated with the output raster. If the only input into the tool is a segmented image, the default attributes are COLOR, COUNT, COMPACTNESS, and RECTANGULARITY. If an in_additional_raster is also included as an input along with a segmented image, then MEAN and STD are available as options.
| String |
max_merge_per_iter (Optional) | Increasing the number of merges will reduce the number of classes that are created. A lower value will result in more classes. | Long |
max_merge_distance (Optional) | Increasing the distance will allow more clusters to merge, resulting in fewer classes. A lower value will result in more classes. The distance is spectral in nature and is based on RGB color. For example, the distance between a pixel with an RGB value of 100, 100, 100 has a distance of 50 from a pixel with an RGB value of 100, 130, 120. Although you can set this to any value you wish, values from 0 to 5 tend to give the best results. | Double |
Code sample
TrainIsoClusterClassifier example 1 (Python window)
The following Python window script uses the ISO Cluster classifier to create an unsupervised Esri classification definition file with a maximum of ten classes.
import arcpy
from arcpy.sa import *
TrainIsoClusterClassifier("c:/test/moncton_seg.tif", "10",
"c:/output/moncton_sig_iso.ecd","c:/test/moncton.tif",
"5", "10", "2", "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainIsoClusterClassifier example 2 (stand-alone script)
This script example uses the ISO Cluster classifier to create an unsupervised Esri classification definition file with a maximum of ten classes.
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inSegRaster = "c:/test/moncton_seg.tif"
maxNumClasses = "10"
out_definition = "c:/output/moncton_sig_iso.ecd"
in_additional_raster = "moncton.tif"
maxIteration = "20"
minNumSamples = "10"
skipFactor = "5"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
TrainIsoClusterClassifier(inSegRaster, maxNumClasses, out_definition,
in_additional_raster, maxIteration,
minNumSamples, skipFactor, attributes)
Environments
Licensing information
- ArcGIS Desktop Basic: Requires Spatial Analyst
- ArcGIS Desktop Standard: Requires Spatial Analyst
- ArcGIS Desktop Advanced: Requires Spatial Analyst