Available with Spatial Analyst license.
Available with Image Analyst license.
Summary
Generates an Esri classifier definition file (.ecd) using the Iso Cluster classification definition.
This tool performs an unsupervised classification.
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 | The raster dataset to classify. | Raster Layer; Mosaic Layer; Image Service; String |
max_classes | Maximum number of desired classes to group pixels or segments. This should be set to be greater than 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 | The output JSON file that contains attribute information, statistics, hyperplane vectors, and other information for the classifier. An .ecd file is created. | File |
in_additional_raster (Optional) | Ancillary raster datasets, such as a multispectral image or a DEM, are incorporated to generate attributes and other required information for classification. This parameter is optional. | Raster Layer; Mosaic Layer; Image Service; String |
max_iterations (Optional) | The maximum number of iterations the clustering process will 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) | The minimum number of pixels or segments in a valid cluster or class. The default value of 20 is effective in creating statistically significant classes. You can increase this number for 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) | Specifies the attributes to be included in the attribute table associated with the output raster.
This parameter is only enabled if the Segmented key property is set to true on the input raster. If the only input to the tool is a segmented image, the default attributes are COLOR, COUNT, COMPACTNESS, and RECTANGULARITY. If an in_additional_raster is included as an input with a segmented image, MEAN and STD are also available attributes. | String |
max_merge_per_iter (Optional) | The maximum number of cluster merges per iteration. 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) | The maximum distance between cluster centers in feature space. Increasing the distance will allow more clusters to merge, resulting in fewer classes. A lower value will result in more classes. Values from 0 to 5 tend to return the best results. | Double |
Code sample
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.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
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")
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.ia import *
"""Usage: TrainIsoClusterClassifier(in_raster, max_num_classes,
out_classifier_definition, {in_additional_raster},
{max_num_iterations}, {min_num_samples_per_cluster},
{skip_factor},{used_attributes})
"""
# 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 Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
TrainIsoClusterClassifier(inSegRaster, maxNumClasses,
out_definition,in_additional_raster,
maxIteration, minNumSamples, skipFactor, attributes)
Environments
Licensing information
- Basic: Requires Image Analyst or Spatial Analyst
- Standard: Requires Image Analyst or Spatial Analyst
- Advanced: Requires Image Analyst or Spatial Analyst