Regression-based unmixing

Implementation of the regression-based unmixing approach “Ensemble Learning From Synthetically Mixed Training Data for Quantifying Urban Land Cover With Support Vector Regression” in IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, vol. 10, no. 4, pp. 1640-1650, April 2017.

Usage:

  1. Start the algorithm from the Processing Toolbox panel.

  2. Select a training dataset ore create one by clicking the processing algorithm icon. Select a raster layer to process and a regressor. Adjust the parameterization if needed. Then click run.

    ../../../../_images/regression_unmixing.png

Parameters

Endmember dataset [file]

A classification dataset with spectral endmembers used for synthetical mixing.

Raster layer [raster]

A raster layer to be unmixed.

Regressor [string]

Scikit-Learn Python code specifying a regressor.

Number of mixtures per class [number]

Number of mixtures per class.

Default: 1000

Proportion of background mixtures (%) [number]

Proportion of background mixtures.

Default: 0

Include original endmembers [boolean]

Whether to include the original library spectra into the dataset.

Default: True

Mixing complexity probabilities [string]

A list of probabilities for using 2, 3, 4, … endmember mixing models. Trailing 0 probabilities can be skipped. The default values of 0.5, 0.5,result in 50% 2-endmember and 50% 3-endmember models.

Default: 0.5, 0.5

Allow within-class mixtures [boolean]

Whether to allow mixtures with profiles belonging to the same class.

Default: True

Class probabilities [string]

A list of probabilities for drawing profiles from each class. If not specified, class probabilities are proportional to the class size.

Ensemble size [number]

Number of individual runs/predictions.

Default: 1

Robust decision fusion [boolean]

Whether to use median and IQR (interquartile range) aggregation for ensemble decision fusion. The default is to use mean and standard deviation.

Default: False

Sum-to-one constraint [boolean]

Whether to ensure sum-to-one constraint for predicted fractions.

Default: False

Outputs

Output class fraction layer [rasterDestination]

Raster file destination.

Output classification layer [rasterDestination]

Raster file destination.

Output class fraction variation layer [rasterDestination]

Raster file destination.

Command-line usage

>qgis_process help enmapbox:RegressionbasedUnmixing:

----------------
Arguments
----------------

dataset: Endmember dataset
    Argument type:  file
    Acceptable values:
            - Path to a file
raster: Raster layer
    Argument type:  raster
    Acceptable values:
            - Path to a raster layer
regressor: Regressor
    Argument type:  string
    Acceptable values:
            - String value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
n: Number of mixtures per class
    Default value:  1000
    Argument type:  number
    Acceptable values:
            - A numeric value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
background: Proportion of background mixtures (%)
    Default value:  0
    Argument type:  number
    Acceptable values:
            - A numeric value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
includeEndmember: Include original endmembers
    Default value:  true
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
mixingProbabilities: Mixing complexity probabilities (optional)
    Default value:  0.5, 0.5
    Argument type:  string
    Acceptable values:
            - String value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
allowWithinClassMixtures: Allow within-class mixtures
    Default value:  true
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
classProbabilities: Class probabilities (optional)
    Argument type:  string
    Acceptable values:
            - String value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
ensembleSize: Ensemble size
    Default value:  1
    Argument type:  number
    Acceptable values:
            - A numeric value
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
robustFusion: Robust decision fusion (optional)
    Default value:  false
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
sumToOne: Sum-to-one constraint (optional)
    Default value:  false
    Argument type:  boolean
    Acceptable values:
            - 1 for true/yes
            - 0 for false/no
            - field:FIELD_NAME to use a data defined value taken from the FIELD_NAME field
            - expression:SOME EXPRESSION to use a data defined value calculated using a custom QGIS expression
outputFraction: Output class fraction layer
    Argument type:  rasterDestination
    Acceptable values:
            - Path for new raster layer
outputClassification: Output classification layer (optional)
    Argument type:  rasterDestination
    Acceptable values:
            - Path for new raster layer
outputFractionVariation: Output class fraction variation layer (optional)
    Argument type:  rasterDestination
    Acceptable values:
            - Path for new raster layer

----------------
Outputs
----------------

outputFraction: <outputRaster>
    Output class fraction layer
outputClassification: <outputRaster>
    Output classification layer
outputFractionVariation: <outputRaster>
    Output class fraction variation layer