DimensionalityReduction - Dimensionality reduction

Perform Dimension reduction of the input image.

Detailed description

Performs dimensionality reduction on input image. PCA,NA-PCA,MAF,ICA methods are available. It is also possible to compute the inverse transform to reconstruct the image. It is also possible to optionally export the transformation matrix to a text file.


This section describes in details the parameters available for this application. Table [1] presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is DimensionalityReduction .

[1]Table: Parameters table for Dimensionality reduction.
Parameter Key Parameter Name Parameter Type
in Input Image Input image
out Output Image Output image
rescale Rescale Output. Group
rescale.outmin Output min value Float
rescale.outmax Output max value Float
outinv Inverse Output Image Output image
method Algorithm Choices
method pca PCA Choice
method napca NA-PCA Choice
method maf MAF Choice
method ica ICA Choice
method.napca.radiusx Set the x radius of the sliding window. Int
method.napca.radiusy Set the y radius of the sliding window. Int
method.ica.iter number of iterations Int
method.ica.mu Give the increment weight of W in [0, 1] Float
nbcomp Number of Components. Int
normalize Normalize. Boolean
outmatrix Transformation matrix output (text format) Output File name
ram Available RAM (Mb) Int
inxml Load otb application from xml file XML input parameters file
outxml Save otb application to xml file XML output parameters file

Input Image: The input image to apply dimensionality reduction.

Output Image: output image. Components are ordered by decreasing eigenvalues.

[Rescale Output.]

  • Output min value: Minimum value of the output image.
  • Output max value: Maximum value of the output image.

Inverse Output Image: reconstruct output image.

Algorithm: Selection of the reduction dimension method. Available choices are:

  • PCA: Principal Component Analysis.
  • NA-PCA: Noise Adjusted Principal Component Analysis.
  • Set the x radius of the sliding window.
  • Set the y radius of the sliding window.
  • MAF: Maximum Autocorrelation Factor.
  • ICA: Independent Component Analysis.
  • number of iterations
  • Give the increment weight of W in [0, 1]

Number of Components.: Number of relevant components kept. By default all components are kept.

Normalize.: center AND reduce data before Dimensionality reduction.

Transformation matrix output (text format): Filename to store the transformation matrix (csv format).

Available RAM (Mb): Available memory for processing (in MB).

Load otb application from xml file: Load otb application from xml file.

Save otb application to xml file: Save otb application to xml file.


To run this example in command-line, use the following:

otbcli_DimensionalityReduction -in cupriteSubHsi.tif -out FilterOutput.tif -method pca

To run this example from Python, use the following code snippet:


# Import the otb applications package
import otbApplication

# The following line creates an instance of the DimensionalityReduction application
DimensionalityReduction = otbApplication.Registry.CreateApplication("DimensionalityReduction")

# The following lines set all the application parameters:
DimensionalityReduction.SetParameterString("in", "cupriteSubHsi.tif")

DimensionalityReduction.SetParameterString("out", "FilterOutput.tif")


# The following line execute the application


This application does not provide the inverse transform and the transformation matrix export for the MAF.


This application has been written by OTB-Team.

See Also

These additional resources can be useful for further information:
“Kernel maximum autocorrelation factor and minimum noise fraction transformations,” IEEE Transactions on Image Processing, vol. 20, no. 3, pp. 612-624, (2011)