Обучение классификатора K-ближайших соседей (Spatial Analyst)

Доступно с лицензией Image Analyst.

Доступно с лицензией Spatial Analyst.

Краткая информация

Создает файл определения классификатора Esri (.ecd) с использованием метода классификации K-ближайших соседей.

Классификатор K-ближайших соседей - это непараметрический метод классификации, который классифицирует пиксел или сегмент по множеству голосов его соседей. K - определенное количество соседей, используемых при голосовании.

Использование

  • Инструмент назначает обучающие выборки соответствующим классам. Класс входного пикселя определяется множеством голосов его K-ближайших соседей.

  • Любой поддерживаемый Esri растр принимается в качестве входных данных, включая растровые продукты, сегментированные растры, мозаики, сервисы изображений или наборы растровых данных в общих форматах. Сегментированные растры должны быть 8-битными растрами с тремя каналами.

  • Выходными данными этого инструмента является файл .ecd, который используется для классификации новых растров в инструменте Классификация растров. Затем инструмент Классифицировать растр вычисляет расстояние от каждого входного пиксела или сегмента до всех обучающих выборок.

    Обучающие выборки данных должны быть собраны за несколько раз с помощью Менеджера обучающих выборок. Значение размерности для каждой выборки указано в поле в векторном классе обучающих выборок, которое задано параметром Поле значения размерности.

  • Чтобы создать файл обучающей выборки, используйте панель Менеджер обучающей выборки из ниспадающего меню Инструменты классификации.

  • Для сегментированных растров, ключевое свойство которых задано как Сегментированный, инструмент вычисляет индексное изображение и связанные атрибуты сегмента из сегментированного растра RGB. Атрибуты вычисляются для создания файла определения классификатора, который должен быть использован в отдельном инструменте классификации. Атрибуты для каждого сегмента могут быть вычислены для любого, поддерживаемого Esri изображения.

  • Параметр Атрибуты сегмента активен только в том случае, когда одним из входных растровых слоёв является сегментированное изображение.

Параметры

ПодписьОписаниеТип данных
Входной растр

Набор растровых данных для классификации.

Одноканальный растр или сегментированный растр, многоканальный растр или многомерный растр, подлежащий классификации.

Mosaic Layer; Raster Layer; Image Service; String
Входной файл обучающей выборки

Выберите файл обучающей выборки или слой, который определяет районы обучающей выборки.

Это могут быть либо шейп-файлы, либо классы объектов, которые содержат обучающие выборки. В файле обучающей выборки должны быть поля со следующими именами:

  • classname – текстовое поле с указанием имени категории класса.
  • classvalue – поле типа long integer, содержащее целочисленное значение для каждой категории класса.

Feature Layer
Выходной файл определения классификатора

Файл .ecd в формате JSON, содержащий информацию об атрибутах, статистику или другую информацию для классификатора.

File
Дополнительный входной растр
(Дополнительный)

Вспомогательные наборы растровых данных, такие как мультиспектральный снимок или ЦМР, будут добавлены для создания атрибутов и другой необходимой для классификатора информации. Это дополнительный параметр.

Raster Layer; Mosaic Layer; Image Service; String
К- ближайшие соседи
(Дополнительный)

Количество соседей, которые будут использоваться при поиске для каждого входного пиксела или сегмента. Увеличение числа соседей уменьшит влияние отдельных соседей на результат классификации. Значение по умолчанию равно 1.

Long
Максимальное число образцов в классе
(Дополнительный)

Максимальное количество обучающих выборок, которые будут использоваться для каждого класса. Значение по умолчанию 1000 рекомендуется использовать, если входные данные представляют собой несегментированные растры. Значение, которое меньше или равно 0, означает, что система будет использовать все образцы из обучающих местоположений для обучения классификатора.

Long
Атрибуты сегмента
(Дополнительный)

Укажите атрибуты, которые будут включены в связанную с выходным растром таблицу атрибутов.

Это параметр активен только в тех случаях, когда для входного растра выбран ключевой параметр Сегментированный. Если для входных данных инструмента используется только сегментированное изображение, то атрибутами по умолчанию будут Конвергированный цвет, Число пикселов, Компактность и Прямоугольность. Если в качестве входных данных вместе с сегментированным изображением также используется значение Дополнительный входной растр, то тогда также будут доступны атрибуты Среднее число и Стандартное отклонение.

  • Конвергированный цветЗначения цвета RGB будут получены из входного растра на основе каждого сегмента. Это также называется цвет средней хроматичности.
  • Среднее числоСредний цифровой номер (DN) будет получен из дополнительного пиксельного изображения, на основе каждого сегмента.
  • Среднеквадратическое отклонениеСтандартное отклонение будет получено из дополнительного пиксельного изображения, на основе каждого сегмента.
  • Число пикселовЧисло пикселов, составляющих сегмент, на основе каждого сегмента.
  • КомпактностьСоединяет сегменты, которые были разрезаны границами листов в процессе сегментации. Значения находятся в диапазоне от 0 до 1, где 1 соответствует кругу.
  • ПрямоугольностьСтепень, определяющая, насколько сегмент является прямоугольным, на основе каждого сегмента. Значения находятся в диапазоне от 0 до 1, где 1 соответствует прямоугольнику.
String
Поле значения измерения
(Дополнительный)

Содержит значения измерений во входном классе объектов обучающей выборки.

Этот параметр требуется для классификации растровых данных временных рядов с помощью выходного растра анализа изменений из инструмента Анализ изменений с помощью CCDC в наборе инструментов Image Analyst.

Field

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

Выберите файл обучающей выборки или слой, который определяет районы обучающей выборки.

Это могут быть либо шейп-файлы, либо классы объектов, которые содержат обучающие выборки. В файле обучающей выборки должны быть поля со следующими именами:

  • classname – текстовое поле с указанием имени категории класса.
  • classvalue – поле типа long integer, содержащее целочисленное значение для каждой категории класса.

Feature Layer
out_classifier_definition

Файл .ecd в формате JSON, содержащий информацию об атрибутах, статистику или другую информацию для классификатора.

File
in_additional_raster
(Дополнительный)

Вспомогательные наборы растровых данных, такие как мультиспектральный снимок или ЦМР, будут добавлены для создания атрибутов и другой необходимой для классификатора информации. Это дополнительный параметр.

Raster Layer; Mosaic Layer; Image Service; String
kNN
(Дополнительный)

Количество соседей, которые будут использоваться при поиске для каждого входного пиксела или сегмента. Увеличение числа соседей уменьшит влияние отдельных соседей на результат классификации. Значение по умолчанию равно 1.

Long
max_samples_per_class
(Дополнительный)

Максимальное количество обучающих выборок, которые будут использоваться для каждого класса. Значение по умолчанию 1000 рекомендуется использовать, если входные данные представляют собой несегментированные растры. Значение, которое меньше или равно 0, означает, что система будет использовать все образцы из обучающих местоположений для обучения классификатора.

Long
used_attributes
[used_attributes;used_attributes,...]
(Дополнительный)

Укажите атрибуты, которые будут включены в связанную с выходным растром таблицу атрибутов.

  • COLORЗначения цвета RGB будут получены из входного растра на основе каждого сегмента. Это также называется цвет средней хроматичности.
  • MEANСредний цифровой номер (DN) будет получен из дополнительного пиксельного изображения, на основе каждого сегмента.
  • STDСтандартное отклонение будет получено из дополнительного пиксельного изображения, на основе каждого сегмента.
  • COUNTЧисло пикселов, составляющих сегмент, на основе каждого сегмента.
  • COMPACTNESSСоединяет сегменты, которые были разрезаны границами листов в процессе сегментации. Значения находятся в диапазоне от 0 до 1, где 1 соответствует кругу.
  • RECTANGULARITYСтепень, определяющая, насколько сегмент является прямоугольным, на основе каждого сегмента. Значения находятся в диапазоне от 0 до 1, где 1 соответствует прямоугольнику.

Это параметр активен только в тех случаях, когда для входного растра выбран ключевой параметр Сегментированный (Segmented). Если для входных данных инструмента используется только сегментированное изображение, то атрибутами по умолчанию будутCOLOR, COUNT, COMPACTNESS и RECTANGULARITY. Если в качестве входных данных вместе с сегментированным изображением также используется in_additional_raster, то тогда также будут доступны атрибуты MEAN и STD.

String
dimension_value_field
(Дополнительный)

Содержит значения измерений во входном классе объектов обучающей выборки.

Этот параметр требуется для классификации растровых данных временных рядов с помощью выходного растра анализа изменений из инструмента Анализ изменений с помощью CCDC в наборе инструментов Image Analyst.

Field

Пример кода

TrainKNearestNeighborClassifier, пример 1 (окно Python)

Пример скрипта Python для функции TrainKNearestNeighborClassifier.

# Import system modules 
import arcpy 
from arcpy.sa import * 
 
# Check out the ArcGIS Spatial Analyst extension license 
arcpy.CheckOutExtension("Spatial") 
 
# Execute  
arcpy.sa.TrainKNearestNeighborClassifier("landsat.tif", "training_sample.shp", r"c:\data\trained_knn.ecd", 5, "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainKNearestNeighborClassifier, пример 2 (автономный скрипт)

Это пример скрипта Python для функции TrainKNearestNeighborClassifier.

# Import system modules 
import arcpy 
from arcpy.sa import * 
 
# Check out the ArcGIS Spatial Analyst extension license 
arcpy.CheckOutExtension("Spatial") 
 
# 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.sa.TrainKNearestNeighborClassifier(in_raster, in_training_features, 
                                         out_classifier_definition, 
                                         number_of_neighbors, attributes)

Информация о лицензиях

  • Basic: Обязательно Spatial Analyst или Image Analyst
  • Standard: Обязательно Spatial Analyst или Image Analyst
  • Advanced: Обязательно Spatial Analyst или Image Analyst

Связанные разделы