Классификации по методу максимального подобия (Maximum Likelihood Classification) (Spatial Analyst)
Резюме
Выполняет классификацию по методу максимального подобия для набора каналов растра и создаёт классифицированный растр в качестве выходных данных.
Более подробно о том, как работает Классификация по методу максимального подобия
Использование
-
Любой файл сигнатур, созданный с помощью инструментов Создать сигнатуры (Create Signature), Редактировать сигнатуры (Edit Signature) или Изокластер (Iso Cluster), является действительным для использования в качестве входного файла сигнатур. Такой файл будет иметь расширение .gsg.
-
По умолчанию, на выходном растре будут классифицированы все ячейки, при этом к сигнатурам каждого из классов будут присоединены равные веса вероятностей.
-
Входной файл априорных вероятностей должен представлять собой ASCII-файл, состоящий из двух столбцов. Значения в левом столбце представляют идентификаторы классов (ID). Значения в правом столбце представляют априорные вероятности для соответствующих классов. Действительные значения априорных вероятностей для классов должны быть больше или равны нулю. Если в качестве вероятности задан ноль, класс не будет отображаться на выходном растре. Сумма заданных априорных вероятностей должна быть меньше или равна единице. Формат файла следующий:
1 .3 2 .1 4 .0 5 .15 7 .05 8 .2
Классы, пропущенные в файле, получат среднюю априорную вероятность той части, которая останется от единицы. В примере выше, все классы с 1 по 8 представлены в файле сигнатур. Априорные вероятности классов 3 и 6 отсутствуют во входном файле априорной вероятности. Так как сумма всех вероятностей, определенных в файле выше, равна 0,8, остаток (0,2) делится на число не определенных классов (2). Следовательно, классам 3 и 6 будет присвоена вероятность, равная 0,1, каждому.
-
Заданная доля отклонения, которая лежит между двумя действительными значениями, будет присвоена следующему верхнему действительному значению. Например, значение 0,02 будет преобразовано в значение 0,025.
-
Существует прямая зависимость между числом неклассифицированных ячеек на выходном растре, вытекающем из доли отклонения, и числом ячеек, представленных суммой уровней доверия, меньших, чем соответствующее значение, введенное для доли отклонения.
-
Если входные данные представлены слоем, созданным на основании многоканального растра, содержащего более трёх каналов, операция будет выполняться для всех каналов, связанных с исходным набором данных, а не только для трёх каналов, которые загружены слоем (то есть, отображаются символами).
Существует несколько способов для указания поднабора каналов многоканального растра, которые нужно использовать в качестве входных данных инструмента.
- При использовании диалогового окна инструмента перейдите к многоканальному растру с помощью кнопки обзора, расположенной рядом с пунктом Входные растровые каналы (Input raster bands), откройте растр и выберите нужные каналы.
- Если многоканальный растр является слоем в Таблице содержания, можно использовать инструмент Make Raster Layer (Создать растровый слой), чтобы создать новые многоканальный слой, содержащий только нужные каналы.
- Можно также создать новый набор данных, содержащий только нужные каналы, используя для этого инструмент Объединить каналы (Composite Bands), входными данными для которого будет являться полученный набор данных.
- В Python нужные каналы можно указать как список напрямую в параметре инструмента.
Если имя класса в файле подписи отличается от идентификатора класса, в таблицу атрибутов выходного растра будет добавлено дополнительное поле CLASSNAME. Для каждого класса в выходной таблице CLASSNAME будет содержаться имя класса, связанное с этим классом. Например, если имена классов файла подписи имеют описательные строковые имена (например, хвойные деревья, вода и город), эти имена будут перенесены в поле CLASSNAME.
-
Расширение входного файла априорных вероятностей - .txt.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster_bands [in_raster_band,...] |
Входные каналы растров. | Raster Layer |
in_signature_file |
Входной файл сигнатур, сигнатуры классов которого используются алгоритмом классификации по методу максимального подобия. Требуется расширение .gsg. | File |
reject_fraction (дополнительно) |
Доля ячеек, которые останутся неклассифицированными, из-за нижнего значения вероятности корректного отнесения ячейки к тому или иному классу. Значение по умолчанию равно 0,0; оно означает, что все ячейки будут классифицированы. Есть 14 действительных записей: 0,0, 0,005, 0,01, 0,025, 0,05, 0,1, 0,25, 0,5, 0,75, 0,9, 0,95, 0,975, 0,99 и 0,995. | String |
a_priori_probabilities (дополнительно) | Задает, как будут определяться априорные вероятности.
| String |
in_a_priori_file (дополнительно) | Текстовой файл, содержащий априорные вероятности для входных классов сигнатур. Входные данные для файла априорных вероятностей являются обязательными только в том случае, если используется опция FILE. Расширением файла априорных вероятностей может быть расширение .txt или .asc. | File |
out_confidence_raster (дополнительно) |
Выходной набор растровых данных доверия, на котором показана достоверность классификации с 14 уровнями доверия, при этом, чем ниже значения, тем выше надежность классификации. | Raster Dataset |
Возвращено значение
Имя | Объяснение | Тип данных |
out_classified_raster |
Выходной классифицированный растр. | Raster |
Пример кода
В этом примере создается выходной классифицированный растр, содержащий 5 классов, полученных из входного файла сигнатур и многоканального растра.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
mlcOut = MLClassify("redlands", "c:/sapyexamples/data/wedit5.gsg", "0.0",
"EQUAL", "", "c:/sapyexamples/output/redmlcconf")
mlcOut.save("c:/sapyexamples/output/redmlc")
В этом примере создается выходной классифицированный растр, содержащий 5 классов, полученных из входного файла сигнатур и многоканального растра.
# Name: MLClassify_Ex_02.py
# Description: Performs a maximum likelihood classification on a set of
# raster bands.
# 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"
sigFile = "c:/sapyexamples/data/wedit5.gsg"
probThreshold = "0.0"
aPrioriWeight = "EQUAL"
aPrioriFile = ""
outConfidence = "c:/sapyexamples/output/redconfmlc"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
mlcOut = MLClassify(inRaster, sigFile, probThreshold, aPrioriWeight,
aPrioriFile, outConfidence)
# Save the output
mlcOut.save("c:/sapyexamples/output/redmlc02")