| 标注 | 说明 | 数据类型 | 
| 输入栅格 | 待分类的栅格数据集。 要分类的单波段栅格或分割栅格、多波段栅格或多维栅格。 | Mosaic Layer; Raster Layer; Image Service; String | 
| 输入训练样本文件 | 用于描绘训练场的训练样本文件或图层。 它们可以是包含训练样本的 shapefile 或要素类。 训练样本文件中需要以下字段名称: 
 | Feature Layer | 
| 输出分类器定义文件 | 包含属性信息、统计数据和分类器的其他信息的 JSON 格式的 .ecd 文件。 | File | 
| 附加输入栅格 (可选) | 将对其他栅格数据集(如多光谱影像或 DEM)进行整合,从而为分类生成属性和其他所需信息。 设置此参数属于可选操作。 | Raster Layer; Mosaic Layer; Image Service; String | 
| K 最近邻域 (可选) | 将用于搜索每个输入像素或线段的邻域数。 增加邻域的数量将降低单个邻域对分类结果的影响。 默认值为 1。 | Long | 
| 每个类的最大样本数 (可选) | 将用于每个类的最大训练样本数。 如果输入为非分割栅格,建议使用默认值 1000。 值小于或等于 0 表示系统将使用训练场中的所有样本来训练分类器。 | Long | 
| 分割影像属性 (可选) | 指定要包括在与输出栅格相关联的属性表中的属性。 仅当在输入栅格上将分割关键属性设置为 true 时,此参数才会激活。 如果该工具中的唯一输入是分割影像,则默认属性为聚合颜色、像素计数、紧密度和垂直度。 如果将附加输入栅格值作为输入与分割影像一起添加进来,则还可以使用平均数字值和标准差属性。 
 | String | 
| 维度值字段 (可选) | 在输入训练样本要素类中包含尺寸值。 使用使用 CCDC 分析变化工具的变化分析栅格输出来分类栅格数据的时间序列时,需要使用此参数。 | Field | 
获得 Image Analyst 许可后可用。
需要 Spatial Analyst 许可。
摘要
使用 K 最近邻 (KNN) 分类方法生成 Esri 分类器定义文件 (.ecd)。
K - 最近邻域分类器是一种非参数分类方法,它通过其邻域的多数票对像素或线段进行分类。 K 是定义的投票中所用邻域的数量。
使用情况
- 此工具将训练样本分配到相应类别。 输入像素的类别取决于其 K 最近邻域的多数票。 
- 任何 Esri 支持的栅格都可用作输入,包括栅格产品、分割栅格、镶嵌、影像服务和通用栅格数据集。 分隔栅格必须为 8 位三波段栅格。 
- 此工具的输出为 .ecd 文件,用于在分类栅格工具中对新栅格进行分类。 然后,分类栅格工具将计算从每个输入像素或线段到所有训练样本的距离。 - 训练样本数据必须通过训练样本管理器多次进行收集。 训练样本要素类的一个字段中列出了每个样本的维度值,该字段在维度值字段参数中指定。 
- 要创建训练样本文件,请使用分类工具下拉菜单中的训练样本管理器窗格。 
- 对于关键属性设置为分割的分割栅格,此工具将计算 RGB 分割栅格中的索引影像及相关的分割影像属性。 计算的属性将用于生成要在独立分类工具中使用的分类器定义文件。 可根据任意 Esri 支持的影像计算每个分段的属性。 
- 仅在其中一个栅格图层输入为分隔影像的情况下激活分割属性参数。 
参数
TrainKNearestNeighborClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {kNN}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})| 名称 | 说明 | 数据类型 | 
| in_raster | 待分类的栅格数据集。 要分类的单波段栅格或分割栅格、多波段栅格或多维栅格。 | Mosaic Layer; Raster Layer; Image Service; String | 
| in_training_features | 用于描绘训练场的训练样本文件或图层。 它们可以是包含训练样本的 shapefile 或要素类。 训练样本文件中需要以下字段名称: 
 | Feature Layer | 
| out_classifier_definition | 包含属性信息、统计数据和分类器的其他信息的 JSON 格式的 .ecd 文件。 | File | 
| in_additional_raster (可选) | 将对其他栅格数据集(如多光谱影像或 DEM)进行整合,从而为分类生成属性和其他所需信息。 设置此参数属于可选操作。 | Raster Layer; Mosaic Layer; Image Service; String | 
| kNN (可选) | 将用于搜索每个输入像素或线段的邻域数。 增加邻域的数量将降低单个邻域对分类结果的影响。 默认值为 1。 | Long | 
| max_samples_per_class (可选) | 将用于每个类的最大训练样本数。 如果输入为非分割栅格,建议使用默认值 1000。 值小于或等于 0 表示系统将使用训练场中的所有样本来训练分类器。 | Long | 
| used_attributes [used_attributes;used_attributes,...] (可选) | 指定要包括在与输出栅格相关联的属性表中的属性。 
 仅当在输入栅格上将分割关键属性设置为 true 时,此参数才可用。 如果仅对此工具输入分割影像,则默认属性为 COLOR、COUNT、COMPACTNESS 和 RECTANGULARITY。 如果将 in_additional_raster 值作为输入与分割影像一起添加进来,则还可以使用 MEAN 和 STD 属性。 | String | 
| dimension_value_field (可选) | 在输入训练样本要素类中包含尺寸值。 使用使用 CCDC 分析变化工具的变化分析栅格输出来分类栅格数据的时间序列时,需要使用此参数。 | Field | 
代码示例
这是 TrainKNearestNeighborClassifier 函数的 Python 示例。
# Import system modules 
import arcpy 
from arcpy.ia import * 
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
# Execute  
arcpy.ia.TrainKNearestNeighborClassifier("landsat.tif", "training_sample.shp", r"c:\data\trained_knn.ecd", 5, "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")这是 TrainKNearestNeighborClassifier 函数的 Python 脚本。
# Import system modules 
import arcpy 
from arcpy.ia import * 
 
# Check out the ArcGIS Image Analyst extension license 
arcpy.CheckOutExtension("ImageAnalyst") 
 
# Define input parameters 
in_raster = r"C:/Data/ landsat.tif" 
in_training_features = r"C:/Data/training_sample.shp" 
out_classifier_definition = r"C:/Data/trained_knn.ecd" 
number_of_neighbors = 5
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
     
# Execute  - train K-Nearest Neighbor Classifier
arcpy.ia.TrainKNearestNeighborClassifier(in_raster, in_training_features, out_classifier_definition,  
           number_of_neighbors, attributes)许可信息
- Basic: 需要 Image Analyst 或 Spatial Analyst
- Standard: 需要 Image Analyst 或 Spatial Analyst
- Advanced: 需要 Image Analyst 或 Spatial Analyst