This task performs an independent component analysis (ICA) procedure to transform a set of mixed, random signals into components that are mutually independent. See Independent Components Analysis for details.

Note: An ICA transform consumes a lot of system memory. Running this process on a large dataset may take a long time.

References:

Hyvarinen, A., and E. Oja. "Independent Component Analysis: Algorithms and Applications." Neural Networks 13, No. 4-5 (2000): 411-430.

Hyvarinen, A. "Fast and Robust Fixed-Point Algorithms for Independent Component Analysis." IEEE Transactions on Neural Networks 10, No. 3 (1999): 626-634.

Example


; Start the application
e = ENVI()
 
; Open an input file
File = Filepath('qb_boulder_msi', Subdir=['data'], $
  Root_Dir=e.Root_Dir)
Raster = e.OpenRaster(File)
 
; Get the task from the catalog of ENVITasks
Task = ENVITask('ForwardICATransform')
 
; Define inputs
Task.INPUT_RASTER = Raster
 
; Run the task
Task.Execute
 
; Get the collection of data objects currently available in the Data Manager
DataColl = e.Data
 
; Add the output to the Data Manager
DataColl.Add, Task.OUTPUT_RASTER
 
; Display the result
View = e.GetView()
Layer = View.CreateLayer(Task.OUTPUT_RASTER)

Syntax


Result = ENVITask('ForwardICATransform')

Input properties (Set, Get): CHANGE_THRESHOLD, COEFFICIENT, CONTRAST_FUNCTION, INPUT_RASTER, MAXIMUM_ITERATIONS, MAXIMUM_STABILIZATION_ITERATIONS, OUTPUT_RASTER_URI, SAMPLING_PERCENT, SORT_OUTPUT

Output properties (Get only): OUTPUT_RASTER

Properties marked as "Set" are those that you can set to specific values. You can also retrieve their current values any time. Properties marked as "Get" are those whose values you can retrieve but not set.

Methods


This task inherits the following methods from ENVITask:

AddParameter

Execute

Parameter

ParameterNames

RemoveParameter

Properties


This task inherits the following properties from ENVITask:

COMMUTE_ON_DOWNSAMPLE

COMMUTE_ON_SUBSET

DESCRIPTION

DISPLAY_NAME

NAME

REVISION

TAGS

This task also contains the following properties:

CHANGE_THRESHOLD (optional)

Specify a floating-point value used to optimize independent component (IC) analysis. If the change of the IC is less than this value, then the IC iteration stops. The default value is 0.0001. The allowable range is 0.00000001 to 0.1. Increasing the value increases the speed of convergence but may provide a less optimal solution.

COEFFICIENT (optional)

Set the coefficient to use only when setting the LogCosh or Gaussian option for CONTRAST_FUNCTION. The valid range is 1.0 (default value) to 2.0 for LogCosh and greater than or equal to 1.0 for Gaussian.

CONTRAST_FUNCTION (optional)

Specify the contrast function:

  • LogCosh (default):
  • Kurtosis:
  • Gaussian:

INPUT_RASTER (required)

Specify a raster on which to perform an ICA transform.

MAXIMUM_ITERATIONS (optional)

Specify the maximum number of iterations to perform for IC optimization using a fixed-point algorithm. The minimum value is 100 (also the default), and the maximum value is 32767. More iterations will help find more optimal components; however, each iteration adds to processing time depending on the CUP and system load.

MAXIMUM_STABILIZATION_ITERATIONS (optional)

Specify the maximum number of iterations to perform for IC optimization using a stabilized fixed-point algorithm. When estimating one IC, the fixed-point algorithm runs first. If the algorithm does not converge after the maximum number of iterations, the stabilized fixed-point algorithm runs to improve convergence. The minimum value is 0, the default value is 100, and the maximum value is 32767. Enabling stabilization and increasing stabilization iterations will help find more optimal components; however, each iteration adds to processing time depending on the CUP and system load.

OUTPUT_RASTER

This is a reference to the output raster of filetype ENVI.

OUTPUT_RASTER_URI (optional)

Specify a string with the fully qualified filename and path of the associated OUTPUT_RASTER. If you do not specify this property, or set it to an exclamation symbol (!), a temporary file will be created.

SAMPLING_PERCENT (optional)

Specify a floating-point percentage (0 to 100) for sub-sampling the data when calculating the IC transform. Sub-sampling reduces the IC sample size to fit into memory and increases computation speed. A setting of 100 does not change the data. A sampling percentage of 50 will use every other pixel in the statistics calculations and the IC sample. Setting this value too low could lose features of interest, as those pixels may be discarded.

SORT_OUTPUT (optional)

Set this property to sort output ICA bands by decreasing spatial coherence. The options are true (default) or false.

Version History


ENVI 5.2

Introduced

API Version


4.3

See Also


ENVITask, ForwardMNFTransform Task, ForwardPCATransform Task, DimensionalityExpansionRaster Task