Классифицировать растр с использованием спектральной функции (Image Analyst)

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

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

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

Классифицирует многоканальный набор растровых данных с использованием спектральных методов сопоставления изображений. Входные спектральные данные могут быть заданы как класс точечных объектов или файл .json.

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

  • Если входной файл .json содержит спектральные значения, которые представлены процентом отражающей способности поверхности, набор растровых данных должен быть пересчитан с использованием коэффициента масштабирования определенных типов сенсоров. Например, продукты отражающей поверхности Landsat 8 и 9 collection 2 level-2 можно пересчитать по шкале 0–1 используя следующее выражение: Raster*0.0000275+(-0.2).

  • После применения коэффициентов масштабирования и смещения могут встречаться отрицательные значения, особенно в районах темных объектов, например, воды. К этим отрицательным пикселам необходимо применить маску до использования метода классификации SID.

  • Порядок в выходном классифицированном растре соответствует порядку входного спектрального профиля.

  • Ниже приведен пример спектрального профиля в виде файла .json:

    
    {
      "EsriEndmemberDefinitionFile" : 0,
      "FileVersion" : 1,
      "NumberOfEndmembers" : 4,
      "NumberOfBands" : 7,
      "Endmembers" : [	
        {
          "EndmemberID" : 1,
          "EndmemberName" : "basalt",
          "SpectralProfile" : [
                0.076036952,
    			                       0.08137,
    			                       0.09371,
    			                       0.10768,
    			                       0.11076,
    			                       0.11424,
    			                       0.09824
              ]
        }, 
        {
          "EndmemberID" : 2,
          "EndmemberName" : "quartz",
          "SpectralProfile" : [
                              0.75812,
                              0.77608,
                              0.80143,
                              0.81418,
                              0.82648,
                              0.85234,
                              0.86170
              ]
        },
        {
          "EndmemberID" : 3,
          "EndmemberName" : "salt deposits",
          "SpectralProfile" : [
                              0.53381,
                              0.59598,
                              0.70402,
                              0.79024,
                              0.86628,
                              0.89397,
                              0.89507
              ]
        },
        {
          "EndmemberID" : 4,
          "EndmemberName" : "limestone",
          "SpectralProfile" : [
                              0.15477,
                              0.16733,
                              0.19435,
                              0.21431,
                              0.24765,
                              0.32578,
                              0.32451
              ]
        }
      ]        
    }
  • Точечные объекты должны содержать следующие поля:

    • classname– Текстовое поле с указанием названия категории класса.
    • classvalue— Длинное целочисленное поле, в котором хранится целое значение для каждой категории класса
  • Выходной файл определения классификатора Esri (.ecd)) можно использовать как входной в инструменте Классифицировать растр.

Параметры

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

Входной многоканальный растр.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
Спектр или точки

Спектральная информация для разных классов пикселов.

Эта спектральная информация может быть представлена в виде точечных объектов, как класс точечных объектов обучающей выборки, сгенерированный в Менеджере обучающей выборки, или файл .json который содержит спектральные профили класса.

Feature Layer; File; String
Метод

Определяет метод спектрального сопоставления, который будет использован.

  • Сопоставление спектральных угловБудет вычислен векторный угол между входным многоканальным растром и эталонным спектром, в котором спектр каждого пиксела рассматривается как вектор. Значения угла выражены в радианах.
  • Расхождение спектральной информацииБудет вычислено расхождение спектральной информации между входным многоканальным растром и эталонным спектром. Оценка будет рассчитана для каждого пиксела на основе расхождения распределений вероятности эталонного спектра и спектра пиксела. Значения в радианах.
String
Пороговые значения
(Дополнительный)

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

String
Выходной растр оценки
(Дополнительный)

Многоканальный растр, который сохраняет результаты сопоставления для каждого конечного участника. Порядок каналов соответствует порядку классов в значение параметра Спектр или точки. Если входной растр представлен многомерным растром, выходной формат должен быть CRF.

Raster Dataset
Выходной файл определения классификатора
(Дополнительный)

Выходной файл .ecd.

File

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной классифицированный растр

Выходной классифицированный растр.

Raster

ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, {thresholds}, {out_score_raster}, {out_classifier_definition})
ИмяОписаниеТип данных
in_raster

Входной многоканальный растр.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
in_spectra_file

Спектральная информация для разных классов пикселов.

Эта спектральная информация может быть представлена в виде точечных объектов, как класс точечных объектов обучающей выборки, сгенерированный в Менеджере обучающей выборки, или файл .json который содержит спектральные профили класса.

Feature Layer; File; String
method

Определяет метод спектрального сопоставления, который будет использован.

  • SAMБудет вычислен векторный угол между входным многоканальным растром и эталонным спектром, в котором спектр каждого пиксела рассматривается как вектор. Значения угла выражены в радианах.
  • SIDБудет вычислено расхождение спектральной информации между входным многоканальным растром и эталонным спектром. Оценка будет рассчитана для каждого пиксела на основе расхождения распределений вероятности эталонного спектра и спектра пиксела. Значения в радианах.
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 *

#Check out ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# 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"

# Execute 
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 *

#Check out ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# 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"

# Execute 
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")

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