Классифицировать растр с использованием спектральной функции (Инструменты Image Analyst)
Краткая информация
Классифицирует многоканальный набор растровых данных с использованием спектральных методов сопоставления изображений. Входные спектральные данные могут быть заданы как класс точечных объектов или файл .json.
Использование
Если входной файл .json содержит спектральные значения, которые представлены процентом отражающей способности поверхности, набор растровых данных должен быть пересчитан с использованием коэффициента масштабирования определенных типов сенсоров. Например, продукты отражающей способности поверхности Landsat 8 и 9 collection 2 level-2 можно пересчитать по шкале 0–1, используя следующее выражение: Raster*0.0000275+(-0.2).
После применения коэффициентов масштабирования и смещения могут встречаться отрицательные значения, особенно в районах темных объектов, например, воды. Эти отрицательные пикселы необходимо замаскировать перед использованием метода классификации на основе расхождения спектральной информации (SID).
Порядок в выходном классифицированном растре соответствует порядку входного спектрального профиля.
Ниже приведен пример спектрального профиля в виде файла .json:
Спектральная информация для разных классов пикселов.
Файл спектральной библиотеки (.esl) содержит спектральные сигнатуры для классов, класс точечных объектов обучающей выборки, сгенерированных на панели Менеджер обучающей выборки, или файл .json, который содержит спектральные сигнатуры класса.
Feature Layer; File; String
Метод
Определяет метод спектрального сопоставления, который будет использован.
Сопоставление спектральных углов–Будет вычислен векторный угол между входным многоканальным растром и эталонным спектром, в котором спектр каждого пиксела рассматривается как вектор. Значения угла выражены в радианах.
Расхождение спектральной информации–Будет вычислено расхождение спектральной информации между входным многоканальным растром и эталонным спектром. Оценка будет рассчитана для каждого пиксела на основе расхождения распределений вероятности эталонного спектра и спектра пиксела. Значения в радианах.
Расхождение спектральной информации и Сопоставление спектральных углов–Будет вычислено произведение показателя Расхождение спектральной информации и тангенса показателя Сопоставление спектральных углов. Эта опция имеет лучшую дискриминационную способность по сравнению с опциями SID и SAM по отдельности.
Нормализованная оценка спектрального сходства–Будет рассчитан метод Нормализованная оценка спектрального сходства. Этот метод вычисляет оценку спектрального соответствия на основе евклидова расстояния и оценки Сопоставления спектральных углов. Эта опция обладает высокой дискриминационной способностью, но для высокой точности требует обширных базовых данных.
String
Пороговые значения
(Дополнительный)
Пороговое значение, которое будет использоваться для спектрального сопоставления. Значения пикселов, превышающие пороговые, будут классифицированы как неопределенные. Это может быть одно значение, применимое ко всем спектральным классам, или список значений для каждого класса, разделенный пробелами.
String
Выходной растр оценки
(Дополнительный)
Многоканальный растр, который сохраняет результаты сопоставления для каждого конечного участника. Порядок каналов соответствует порядку классов в значении параметра Спектр или точки. Если входной растр представлен многомерным растром, выходной формат должен быть CRF.
Спектральная информация для разных классов пикселов.
Файл спектральной библиотеки (.esl) содержит спектральные сигнатуры для классов, класс точечных объектов обучающей выборки, сгенерированных на панели Менеджер обучающей выборки, или файл .json, который содержит спектральные сигнатуры класса.
Feature Layer; File; String
method
Определяет метод спектрального сопоставления, который будет использован.
SAM–Будет вычислен векторный угол между входным многоканальным растром и эталонным спектром, в котором спектр каждого пиксела рассматривается как вектор. Значения угла выражены в радианах.
SID–Будет вычислено расхождение спектральной информации между входным многоканальным растром и эталонным спектром. Оценка будет рассчитана для каждого пиксела на основе расхождения распределений вероятности эталонного спектра и спектра пиксела. Значения в радианах.
SIDSAM–Будет вычислено произведение показателя Расхождение спектральной информации и тангенса показателя Сопоставление спектральных углов. Эта опция имеет лучшую дискриминационную способность по сравнению с опциями SID и SAM по отдельности.
NS3–Будет рассчитан метод Нормализованная оценка спектрального сходства. Этот метод вычисляет оценку спектрального соответствия на основе евклидова расстояния и оценки Сопоставления спектральных углов. Эта опция обладает высокой дискриминационной способностью, но для высокой точности требует обширных базовых данных.
String
thresholds
(Дополнительный)
Пороговое значение, которое будет использоваться для спектрального сопоставления. Значения пикселов, превышающие пороговые, будут классифицированы как неопределенные. Это может быть одно значение, применимое ко всем спектральным классам, или список значений для каждого класса, разделенный пробелами.
String
out_score_raster
(Дополнительный)
Многоканальный растр, который сохраняет результаты сопоставления для каждого конечного участника. Порядок каналов соответствует порядку классов в значении параметра in_spectra_file. Если входной растр представлен многомерным растром, выходной формат должен быть CRF.
Raster Dataset
out_classifier_definition
(Дополнительный)
Выходной файл .ecd.
File
Возвращаемое значение
Имя
Объяснение
Тип данных
out_classified_raster
Выходной классифицированный растр.
Raster
Пример кода
ClassifyRasterUsingSpectra, пример 1
В этом примере выполняется Сопоставление спектральных углов (SAM) для растра Landsat 8 с пороговыми значениями, указанными для каждого класса. Эталонный спектр указан в файле .json.
# Import system modules
import arcpy
from arcpy.ia import *
# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.json"
method = "SAM"
thresholds = ".08 .04 .05 .07"
out_score_raster = "C:/Data/scoreSAM.crf"
out_classifier_definition = "C:/Data/SAM_classifier.ecd"
# Run
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)
# Save output
Classified_output.save("C:/data/Classified_output.crf")
ClassifyRasterUsingSpectra, пример 2
В этом примере вычисляется Расхождение спектральной информации (SID) между растром Landsat 8 и эталонным спектром, полученным из класса точечных объектов.
# Import system modules
import arcpy
from arcpy.ia import *
# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.shp"
method = "SID"
thresholds = .08
out_score_raster = "C:/Data/scoreSID.crf"
out_classifier_definition = "C:/Data/SID_classifier.ecd"
# Run
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)
# Save output
Classified_output.save("C:/data/Classified_output.crf")