BandMath - Band Math

Outputs a monoband image which is the result of a mathematical operation on several multi-band images.

Detailed description

This application performs a mathematical operation on several multi-band images and outputs the result into a monoband image. The given expression is computed at each pixel position. Evaluation of the mathematical formula is done by the muParser libraries.

The formula can be written using:

  • numerical values ( 2.3, -5, 3.1e4, ...)
  • variables containing pixel values (e.g. : ‘im2b3’ is the pixel value in 2nd image, 3rd band)
  • binary operators:
    • ‘+’ addition, ‘-‘ subtraction, ‘*’ multiplication, ‘/’ division
    • ‘^’ raise x to the power of y
    • ‘<’ less than, ‘>’ greater than, ‘<=’ less or equal, ‘>=’ greater or equal
    • ‘==’ equal, ‘!=’ not equal
    • ‘||’ logical or, ‘&&’ logical and
  • if-then-else operator: ‘(condition ? value_true : value_false)’
  • functions : exp(), log(), sin(), cos(), min(), max(), ...

The full list of features and operators is available on the muParser website [1].


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 BandMath .

[1]Table: Parameters table for Band Math.
Parameter Key Parameter Name Parameter Type
il Input image-list Input image list
out Output Image Output image
ram Available RAM (Mb) Int
exp Expression String
inxml Load otb application from xml file XML input parameters file
outxml Save otb application to xml file XML output parameters file
  • Input image-list: Image-list of operands to the mathematical expression.
  • Output Image: Output image which is the result of the mathematical expressions on input image-list operands.
  • Available RAM (Mb): Available memory for processing (in MB).
  • Expression: The muParser mathematical expression to apply on input images.
  • 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_BandMath -il verySmallFSATSW_r.tif verySmallFSATSW_nir.tif verySmallFSATSW.tif -out apTvUtBandMathOutput.tif -exp 'cos( im1b1 ) > cos( im2b1 ) ? im3b1 : im3b2'

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 BandMath application
BandMath = otbApplication.Registry.CreateApplication("BandMath")

# The following lines set all the application parameters:
BandMath.SetParameterStringList("il", ['verySmallFSATSW_r.tif', 'verySmallFSATSW_nir.tif', 'verySmallFSATSW.tif'])

BandMath.SetParameterString("out", "apTvUtBandMathOutput.tif")

BandMath.SetParameterString("exp", "'cos( im1b1 ) > cos( im2b1 ) ? im3b1 : im3b2'")

# The following line execute the application




This application has been written by OTB-Team.

See Also

These additional resources can be useful for further information: