Вероятность классов (Class Probability) (Spatial Analyst)
Краткая информация
Создаёт многоканальный растр каналов вероятности, при котором один канал создаётся для каждого класса, представленного в входном файле сигнатур.
Более подробно о том, как работает инструмент Вероятность классов
Использование
-
Любой файл сигнатур, созданный с помощью инструментов Создать сигнатуры (Create Signature), Редактировать сигнатуры (Edit Signature) или Изокластер (Iso Cluster), является действительным для использования в качестве входного файла сигнатур. Такой файл будет иметь расширение .gsg.
-
Данный инструмент производит расчет вероятностей классов по принципу байесовой статистики. Байесова статистика подразумевает подбор предварительной информации о данных с последующим обновлением этой информации после того, как информация собрана. Предварительная информация о значениях данных высчитывается с априорной вероятностью, затем информация корректируется функцией правдоподобия для получения апостериорной вероятности (обновленная информация). Функция правдоподобия определяется значениями данных для каждого класса/кластера.
Входной файл априорных вероятностей должен представлять собой ASCII-файл, состоящий из двух столбцов. Значения в левом столбце представляют идентификаторы классов (ID). Значения в правом столбце представляют априорные вероятности для соответствующих классов. Действительные значения априорных вероятностей для классов должны быть больше или равны нулю. Если для вероятности задано значение 0, то для классов в выходном многоканальном растре не будет создан связанный канал вероятности. Сумма заданных априорных вероятностей должна быть меньше или равна единице. Пример формата файла:
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, каждому.
Расширения для входного файла априорной вероятности могут быть .txt или .asc.
-
Значение, вводимое для максимального выходного значения, задает верхний диапазон значений на выходных каналах вероятностей. Используемое по умолчанию значение, равное 100, создает многоканальный растр, в котором каждый канал состоит из целочисленных значений в диапазоне от 0 до 100. Действительным максимальным выходным значением может быть любое целое значение, которое больше нуля. Только использование для аргумента максимального выходного значения числа 'единица' приведет к созданию каналов, состоящих из значений с плавающей точкой.
-
Если входные данные представлены слоем, созданным на основании многоканального растра, содержащего более трёх каналов, операция будет выполняться для всех каналов, связанных с исходным набором данных, а не только для трёх каналов, которые загружены слоем (то есть, отображаются символами).
Существует несколько способов для указания поднабора каналов многоканального растра, которые нужно использовать в качестве входных данных инструмента.
- При использовании диалогового окна инструмента перейдите к многоканальному растру с помощью кнопки обзора, расположенной рядом с пунктом Входные растровые каналы (Input raster bands), откройте растр и выберите нужные каналы.
- Если многоканальный растр является слоем в Таблице содержания, можно использовать инструмент Make Raster Layer (Создать растровый слой), чтобы создать новые многоканальный слой, содержащий только нужные каналы.
- Можно также создать новый набор данных, содержащий только нужные каналы, используя для этого инструмент Объединить каналы (Composite Bands), входными данными для которого будет являться полученный набор данных.
- В Python нужные каналы можно указать как список напрямую в параметре инструмента.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster_bands [in_raster_band,...] |
Входные каналы растров. Значения на каналах растра могут быть целочисленными или числами с плавающей точкой. | Raster Layer |
in_signature_file |
Входной файл сигнатур, сигнатуры классов которого используются для создания каналов априорных вероятностей. Требуется расширение .gsg. | File |
maximum_output_value (дополнительно) |
Коэффициент, устанавливающий диапазон значений на выходных каналах вероятностей. По умолчанию, значения находятся в диапазоне от 0 до 100. | Long |
a_priori_probabilities (дополнительно) | Задает, как будут определяться априорные вероятности.
| String |
in_a_priori_file (дополнительно) | Текстовой файл, содержащий априорные вероятности для входных классов сигнатур. Входные данные для файла априорных вероятностей являются обязательными только в том случае, если используется опция FILE. Расширением файла априорных вероятностей может быть расширение .txt или .asc. | File |
Возвращено значение
Имя | Объяснение | Тип данных |
out_multiband_raster |
Выходной многоканальный набор растровых данных. Если выходные данные — Esri Grid, имя файла не может иметь больше 9 символов. | Raster |
Пример кода
В этом примере создается многоканальный растр каналов вероятностей для каждого класса файла сигнатур.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outClassProbability = ClassProbability("redlands","C:/sapyexamples/data/wedit5.gsg",
100,"EQUAL","")
outClassProbability.save("c:/sapyexamples/output/classprob")
В этом примере создается многоканальный растр каналов вероятностей для каждого класса файла сигнатур.
# Name: ClassProbability_Ex_02.py
# Description: Creates probability layers for each class in a 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 = "redl123"
inSigFile = "c:/sapyexamples/data/wedit5.gsg"
maxValue = 100
aPrioriWeight = "EQUAL"
aPrioriFile = ""
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ClassProbability
outClassProbability = ClassProbability(inRaster,inSigFile,
maxValue, aPrioriWeight, aPrioriFile)
# Save the output
outClassProbability.save("c:/sapyexamples/output/classprob01")