Skip to main content

LinearUnmixing

Summary

Performs subpixel classification and calculates the fractional abundance of land-cover types for individual pixels.

Discussion

For more information about how this function works, see the Linear Spectral Unmixing raster function.

The referenced raster dataset for the raster object is temporary. To make it permanent, you can call the raster object's save method.

Syntax

LinearUnmixing(in_raster, in_spectral_profile_file, {value_option})

Parameter Explanation Data Type

in_raster

The input raster.

Raster

in_spectral_profile_file

The path to the spectral profile for the various land cover classes.

This can be provided as a polygon feature class, a classifier definition file (.ecd) generated from the Train Maximum Likelihood Classifier tool, or a JSON file (.json) that contains the class spectral profiles.

String

value_option

Specifies how the output pixel values will be defined.

  • SUM_TO_ONE—Class values for each pixel will be provided in decimal format with the sum of all classes equal to 1; for example, Class1 = 0.16; Class2 = 0.24; Class3 = 0.60.

  • NON_NEGATIVE—There will be no negative output values.

Both options can be specified by delimiting with a semicolon: "SUM_TO_ONE;NON_NEGATIVE".

String

Return value

Data Type Explanation

Raster

The output raster.

Code sample

LinearUnmixing example

This example resolves the fractional class values for each pixel in the multispectral raster.

from arcpy.sa import *
out_linearunmixing_raster = LinearUnmixing(
    "Landsat8.tif","C:/arcpyExamples/data/training_feature.ecd")
out_linearunmixing_raster.save(
    "C:/arcpyexamples/outputs/linearunmix_output.tif")
LinearUnmixing example

This example resolves the fractional class values for each pixel in the multispectral raster.

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

# Set the analysis environments
arcpy.env.workspace = "C:/arcpyExamples/data"

# Set the local variables
in_raster = "Landsat_8.tif"
in_spectral_profile = "C:/data/training_features.ecd"
value_options = "SUM_TO_ONE;NON_NEGATIVE"

# Apply LinearSpectralUnmixing function
unmixing_outputs = LinearUnmixing(in_raster, in_spectral_profile, value_options)

# Save the output
unmixing_outputs.save("C:/arcpyExamples/outputs/unmixing_results.tif")