Неконтролируемая классификация изокластера (Spatial Analyst)
Краткая информация
Выполняет неконтролируемую классификацию на ряде каналов входного растра, используя инструменты Изокластер (Iso Cluster) и Классификация по методу максимального подобия (Maximum Likelihood Classification).
Использование
-
В этом инструменте скомбинированы функции инструментов Изокластер (Iso Cluster) и Классификация по методу максимального подобия (Maximum Likelihood Classification). Выдает классифицированный растр. Дополнительно выдает файл сигнатур.
-
Полученный в результате работы этого инструмента файл сигнатур может использоваться в качестве входных данных для другого инструмента классификации, например, Классификации по методу максимального подобия (Maximum Likelihood Classification), для большего контроля параметров классификации.
-
Минимальное действительное значение для числа классов равно двум. Максимально возможное число классов не ограничено. В общем случае, определение большего числа кластеров предполагает необходимость выполнения большего числа итераций.
-
Чтобы предоставить достаточно качественную статистику, необходимую для создания файла сигнатур, который будет использоваться в последующей классификации, каждый кластер должен содержать достаточное для адекватного представления кластера количество ячеек. Значение, вводимое для минимального размера класса, должно быть примерно в 10 раз больше, чем число слоев на входных каналах растра.
-
Значение, вводимое для интервала выборки, указывает, что в вычислениях кластера используется одна ячейка из каждого блока размером n-на-n.
-
Вы не должны объединять или удалять классы, либо менять какую-либо статистику, включенную в ASCII-файл сигнатур.
-
Как правило, чем больше ячеек содержится в экстенте пересечения входных каналов, тем большие значения должны быть заданы для минимального размера класса и интервала образца. Значения, вводимые для интервала выборки, должны быть достаточно малы с тем, чтобы корректно создать кластер для самых небольших участков, соответствующих категориям во входных данных, которые вы хотите отобразить.
-
Значения идентификаторов классов (ID) в выходном файле сигнатур начинаются с единицы и последовательно увеличиваются до числа входных классов. Номера классам присваиваются случайным образом.
-
Имя выходного файла сигнатур должно иметь расширение .gsg.
Будут получены лучшие результаты, если все входные каналы будут иметь одинаковые диапазоны данных. Если каналы значений на разных слоях отличаются значительно, диапазоны данных могут быть преобразованы в один и тот же диапазон путем выравнивания с использованием Алгебры карт.
where: Z is the output raster with new data ranges. X is the input raster. oldmin is the minimum value of the input raster. oldmax is the maximum value of the input raster. newmin is the desired minimum value for the output raster. newmax is the desired maximum value for the output raster.
-
Если входные данные представлены слоем, созданным на основании многоканального растра, содержащего более трёх каналов, операция будет выполняться для всех каналов, связанных с исходным набором данных, а не только для трёх каналов, которые загружены слоем (то есть, отображаются символами).
Существует несколько способов для указания поднабора каналов многоканального растра, которые нужно использовать в качестве входных данных инструмента.
- При использовании диалогового окна инструмента перейдите к многоканальному растру с помощью кнопки обзора, расположенной рядом с пунктом Входные растровые каналы (Input raster bands), откройте растр и выберите нужные каналы.
- Если многоканальный растр является слоем в Таблице содержания, можно использовать инструмент Make Raster Layer (Создать растровый слой), чтобы создать новые многоканальный слой, содержащий только нужные каналы.
- Можно также создать новый набор данных, содержащий только нужные каналы, используя для этого инструмент Объединить каналы (Composite Bands), входными данными для которого будет являться полученный набор данных.
- В Python нужные каналы можно указать как список напрямую в параметре инструмента.
Синтаксис
Параметр | Объяснение | Тип данных |
Input_raster_bands [in_raster_band,...] |
Входные каналы растров. | Raster Layer |
Number_of_classes number_of_classes |
Число классов, в которые будут сгруппированы ячейки. | Long |
Minimum_class_size minimum_class_size (дополнительно) | Минимальное число ячеек в действительном классе. Значение по умолчанию равно 20. | Long |
Sample_interval sample_interval (дополнительно) |
Интервал, который будет использован для выборки. Значение по умолчанию равно 10. | Long |
Output_signature_file out_signature_file (дополнительно) |
Выходной файл сигнатур. Необходимо задать расширение .gsg. | File |
Возвращено значение
Имя | Объяснение | Тип данных |
Output_classified_raster |
Выходной классифицированный растр. | Raster |
Пример кода
В этом примере выполняется неконтролируемая классификация, распределяющая входные каналы в 5 классов, и выдается классифицированный растр.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outUnsupervised = IsoClusterUnsupervisedClassification("redlands", 5, 20, 50)
outUnsupervised.save("c:/temp/unsup01")
В этом примере выполняется неконтролируемая классификация, распределяющая входные каналы в 5 классов, и выдается классифицированный растр.
# Name: IsoClusterUnsupervisedClassification_Ex_02.py
# Description: Uses an isodata clustering algorithm to determine the
# characteristics of the natural groupings of cells in multidimensional
# attribute space and stores the results in an output ASCII signature file.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inRaster = "redlands"
classes = 5
minMembers = 50
sampInterval = 15
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute IsoCluster
outUnsupervised = IsoClusterUnsupervisedClassification(inRaster, classes, minMembers, sampInterval)
outUnsupervised.save("c:/temp/outunsup01.tif")