标注 | 说明 | 数据类型 |
输入栅格 | 待分类的栅格数据集。 首选输入项为 8 位 3 波段分割栅格数据集,其中所有位于同一分割的像素具有相同的颜色。输入也可以是 8 位单波段灰度分割栅格。如果没有可用的分割栅格,可使用任何 Esri 支持的栅格数据集 | Raster Layer; Mosaic Layer; Image Service; String |
输入训练样本文件 | 用于描绘训练场的训练样本文件或图层。 它们可以是包含训练样本的 shapefile 或要素类。 训练样本文件中需要以下字段名称:
| Feature Layer |
输出分类器定义文件 | 包含属性信息、统计数据、超平面矢量和分类器所需的其他信息的输出 JSON 格式文件。 将创建 .ecd 文件。 | File |
附加输入栅格 (可选) | 将对其他栅格数据集(如多光谱影像或 DEM)进行整合,从而为分类生成属性和其他所需信息。 设置此参数属于可选操作。 | Raster Layer; Mosaic Layer; Image Service; String |
每个类的最大样本数 (可选) | 用于定义每个类的最大样本数。 如果输入为非分割栅格,建议使用默认值 500。 值小于或等于 0 表示系统将使用训练场中的所有样本来训练分类器。 | Long |
所用的分割影像属性 (可选) | 指定要包括在与输出栅格相关联的属性表中的属性。 仅当在输入栅格上将分割关键属性设置为 true 时,此参数才会激活。 如果该工具中的唯一输入是分割影像,则默认属性为聚合颜色、像素计数、紧密度和垂直度。 如果将附加输入栅格值作为输入与分割影像一起添加进来,则还可以使用平均数字值和标准差属性。
| String |
维度值字段 (可选) | 在输入训练样本要素类中包含尺寸值。 使用使用 CCDC 分析变化工具的变化分析栅格输出来分类栅格数据的时间序列时,需要使用此参数。 | Field |
需要 Spatial Analyst 许可。
获得 Image Analyst 许可后可用。
摘要
使用支持向量机 (SVM) 分类定义生成 Esri 分类器定义文件 (.ecd)。
使用情况
SVM 分类器是一种监督分类方法。非常适合用于处理分割栅格输入,还可以处理标准影像。是研究团体常用的一种分类方法。
对于标准影像输入,工具接受具有任意位深度的多波段影像,它还会基于输入训练要素文件基于像素执行 SVM 分类。
对于关键属性设置为分割的分割栅格,此工具将计算 RGB 分割栅格中的索引影像及相关的分割影像属性。计算的属性将用于生成要在独立分类工具中使用的分类器定义文件。可根据任意 Esri 支持的影像计算每个分割影像的属性。
使用 SVM 分类器而不是最大似然分类方法有几个优点:
- SVM 分类器需要的样本较少,且不需要样本呈正态分布。
- 它更不容易被噪音、关联波段以及每个类中不平衡的训练场数量或大小所影响。
任何 Esri 支持的栅格都可用作输入,包括栅格产品、分割栅格、镶嵌、影像服务或通用栅格数据集。分割栅格必须为 8 位 3 波段栅格。
要创建训练样本文件,请使用分类工具下拉菜单中的训练样本管理器窗格。
仅在其中一个栅格图层输入为分割影像的情况下激活分割属性参数。
要使用连续变化检测和分类 (CCDC) 算法对时间序列栅格数据进行分类,请首先运行使用 CCDC 分析变化工具,然后使用输出变化分析栅格作为此训练工具的输入栅格。
训练样本数据必须已使用 训练样本管理器进行多次采集。 每个样本的尺寸值将在训练样本要素类的一个字段中列出,而该值是在维度值字段参数中指定。
参数
TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})
名称 | 说明 | 数据类型 |
in_raster | 待分类的栅格数据集。 首选输入项为 8 位 3 波段分割栅格数据集,其中所有位于同一分割的像素具有相同的颜色。输入也可以是 8 位单波段灰度分割栅格。如果没有可用的分割栅格,可使用任何 Esri 支持的栅格数据集 | Raster Layer; Mosaic 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 |
max_samples_per_class (可选) | 用于定义每个类的最大样本数。 如果输入为非分割栅格,建议使用默认值 500。 值小于或等于 0 表示系统将使用训练场中的所有样本来训练分类器。 | Long |
used_attributes [used_attributes;used_attributes,...] (可选) | 指定要包括在与输出栅格相关联的属性表中的属性。
仅当在输入栅格上将分割关键属性设置为 true 时,此参数才可用。 如果仅对此工具输入分割影像,则默认属性为 COLOR、COUNT、COMPACTNESS 和 RECTANGULARITY。 如果将 in_additional_raster 值作为输入与分割影像一起添加进来,则还可以使用 MEAN 和 STD 属性。 | String |
dimension_value_field (可选) | 在输入训练样本要素类中包含尺寸值。 使用使用 CCDC 分析变化工具的变化分析栅格输出来分类栅格数据的时间序列时,需要使用此参数。 | Field |
代码示例
此 Python 示例使用 SVM 分类器对分割栅格进行分类。
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
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")
此 Python 脚本使用 SVM 分类器对分割栅格进行分类。
# Import system modules
import arcpy
from arcpy.ia import *
""" 'TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster},
{max_num_samples_per_class}, {used_attributes})
"""
# 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 Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
#Execute
TrainSupportVectorMachineClassifier(inSegRaster, train_features, out_definition, in_additional_raster,
maxNumSamples, attributes)
该 Python 脚本使用 SVM 分类器,通过来自使用 CCDC 分析变化工具的输出对时间序列多维栅格进行分类。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
in_changeAnalysisRaster = "c:/test/LandsatCCDC.crf"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/change_detection.ecd"
additional_raster = ''
attributes = None
dimension_field = "DateTime"
# Execute
arcpy.ia.TrainSupportVectorMachineClassifier(
in_changeAnalysisRaster, train_features, out_definition,
additional_raster, attributes, dimension_field)
许可信息
- Basic: 需要 Image Analyst 或 Spatial Analyst
- Standard: 需要 Image Analyst 或 Spatial Analyst
- Advanced: 需要 Image Analyst 或 Spatial Analyst