Линейное спектральное несмешивание (Spatial Analyst)

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

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

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

Выполняет субпиксельную классификацию и вычисляет относительную распространенность различных типов почвенно-растительного покрова для отдельных пикселов.

Иллюстрация инструмента Линейное спектральное несмешивание

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

  • Этот инструмент вычисляет частичное покрытие для отдельных пикселов, которые содержат несколько типов почвенно-растительного покрова. Он генерирует многоканальный растр, в котором каждый канал соответствует частичному содержанию каждого класса почвенно-растительного покрова. Например, вы можете использовать его для классификации почвенно-растительного покрова на мультиспектральном снимке, чтобы идентифицировать зеленую растительность, открытый почвенный покров и мертвую растительность, т.е. растительность, в которой не происходит фотосинтез.

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

  • Число классов не может превышать количество каналов входного растра. Например, вы не можете извлечь из восьмиканального растра информации больше, чем о 8 классах.

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

    
    {
      "EsriEndmemberDefinitionFile" : 0,
      "FileVersion" : 1,
      "NumberOfEndmembers" : 3,
      "NumberOfBands" : 7,
      "Endmembers" : [	
        {
          "EndmemberID" : 1,
          "EndmemberName" : "urban",
          "SpectralProfile" : [
                88,
    			                     42,
    			                     48,
    			                     38,
    			                     86,
    			                    115,
    			                     59
              ]
        },
        {
          "EndmemberID" : 2,
          "EndmemberName" : "vegetation",
          "SpectralProfile" : [
    			                       50,
    			                       21,
    			                       20,
    			                       35,
    			                       50,
    			                      110,
    			                       23
              ]
        },
        {
          "EndmemberID" : 3,
          "EndmemberName" : "water",
          "SpectralProfile" : [
    			                       51,
    			                       20,
    			                       14,
    			                        9,
    			                        7,
    			                      116,
    			                        4
              ]
        }
      ]        
    }
  • Файлы определения классификатора (.ecd), созданные с помощью инструмента Обучить классификатор по методу максимального правдоподобия, являются единственными выходными данными классификатора, поддерживаемыми в настоящее время.

  • Для полигональных объектов требуются следующие имена полей:

    • classname– Текстовое поле с указанием названия категории класса.
    • classvalue— Длинное целочисленное поле, в котором хранится целое значение для каждой категории класса
  • При расчете частичного содержания каждого класса почвенно-растительного покрова решение может содержать отрицательные коэффициенты или дроби. В этом случае просмотрите обучающие образцы в вашем входном спектральном профиле, чтобы убедиться, что они точно представляют каждый класс. Если они корректны, выберите Неотрицательный для Опции выходного значения.

Параметры

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

Входной набор растровых данных

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
Входные обучающие объекты или Спектральный профиль

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

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

File; Feature Layer; String
Опции выходного значения
(Дополнительный)

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

  • Сумма равна единицеЗначения класса для каждого пиксела будут заданы в десятичном формате, причем сумма всех классов будет равна единице. Например: Class1 = 0.16; Class2 = 0.24; Class3 = 0.60.
  • НеотрицательныеНе должно быть отрицательных выходных значений.
String

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

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

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

Raster

LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option})
ИмяОписаниеТип данных
in_raster

Входной набор растровых данных

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
in_spectral_profile_file

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

Она может быть представлена в виде полигональных объектов, файла определения классификатора (.ecd), сгенерированного инструментом Обучить классификатор по методу максимального подобия или файла JSON (.json), который содержит спектральные профили класса.

File; Feature Layer; String
value_option
[value_option,...]
(Дополнительный)

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

  • SUM_TO_ONEЗначения класса для каждого пиксела будут заданы в десятичном формате, причем сумма всех классов будет равна единице. Например: Class1 = 0.16; Class2 = 0.24; Class3 = 0.60.
  • NON_NEGATIVEНе должно быть отрицательных выходных значений.
String

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

ИмяОписаниеТип данных
out_raster

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

Raster

Пример кода

LinearSpectralUnmixing, пример 1 (окно Python)

В этом примере вычисляется частичное содержание классов файла определения классификатора (.ecd) и создается многоканальный растр.

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Execute 
unmixing_outputs = LinearSpectralUnmixing("C:/data/landsat7_image.crf",
    "C:/data/train_maxi_likelihood_ecd_output.ecd", "SUM_TO_ONE;NON_NEGATIVE")
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs.crf")
LinearSpectralUnmixing, пример 2 (автономный скрипт)

В этом примере вычисляется частичное содержание классов файла определения классификатора (.ecd) и создается многоканальный растр.

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Define input parameters
inFile = "C:/data/landsat7_image.crf"
json_file = "C:/data/customized_endmembers.json"
options = "SUM_TO_ONE" 

# Execute 
unmixing_outputs = LinearSpectralUnmixing(inFile, json_file, options)
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_json.crf")
LinearSpectralUnmixing, пример 3 (автономный скрипт)

В этом примере вычисляется частичное содержание классов класса объектов обучающей выборки (.ecd) и создается многоканальный растр.

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# Define input parameters
inFile = "C:/data/landsat7_image.crf"
training_features = "C:/data/training_features.shp"
options = "SUM_TO_ONE;NON_NEGATIVE" 

# Execute 
unmixing_outputs = LinearSpectralUnmixing(inFile, training_features, options)
	
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_training_features.crf")

Информация о лицензиях

  • Basic: Обязательно Spatial Analyst или Image Analyst
  • Standard: Обязательно Spatial Analyst или Image Analyst
  • Advanced: Обязательно Spatial Analyst или Image Analyst

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