| Expression Editor | ![]() |
DAT's expression editor provides a convenient way to construct arithmetic expressions with C syntax from various data sources, such as bands, tie-point grids and flag values. You can combine these data sources by a number of comparison, arithmetic, logical and binary operators or use them as arguments for mathematical functions.

Selects the current input product providing source bands, tie-point grids and flags.
The list of available data sources provided by the selected input product. Click on a data source to move it into the expression text field.
Show Bands checkbox
Checks whether or not the bands of a product are shown in the list of available data sources.
Show Tie Point Grids checkbox
Checks whether or not the tie-point grids of a product are shown in the list of available data sources.
Show single Flags checkbox
Checks whether or not the flags of a product are shown in the list of available data sources.
The expression text field. You can also directly edit the expression here.
| Select All Button | Selects the entire text in the expression text field. |
| Clear Button | Clears the entire text in the expression text field. |
| Undo Button | Undoes multiple last edits in the expression text field. |
Accepts the expression.
Important note: The operators listed here are enumerated in decreasing operator precedence
(or increasing operator priority). If not otherwise stated, binary operators always bind (and evaluate) from left
to right, so that A - B - C - D is equivalent to ((A - B) - C) - D.
This operator returns a value depending on a given boolean expression X.
A ? B : C |
if A then B, else C |
These operators are meant to be used in conjunction with a data product's quality flags. The arguments must always be Boolean.
X || Y |
Logical OR |
X && Y |
Logical AND |
These operators return Boolean values true or false.
You can use the conditional operator to convert the Boolean return value into
a real number, for example (radiance_13 <= 0) ? 0 : 10*sqrt(radiance_13)
X == Y |
Equal to |
X != Y |
Not equal to |
X < Y |
Less than |
X <= Y |
Less than or equal to |
X > Y |
Greater then |
X >= Y |
Greater then or equal to |
X | Y |
Bitwise OR |
X ^ Y |
Bitwise XOR |
X & Y |
Bitwise AND |
X + Y |
Plus |
X - Y |
Minus |
X * Y |
Division |
X / Y |
Multiplication |
X % Y |
Modulo (remainder) |
+ X |
Arithmetic positive sign, no actual operation, equivalent to 1 * X |
- X |
Arithmetic negation, equivalent to -1 * X |
! X not X |
Logical NOT of Boolean argument X |
~ X |
Bitwise NOT of integer argument X |
PI |
PI = 3.14159265358979323846. The double value that is closer than any other to PI |
E |
E = 2.7182818284590452354. The double value that is closer than any other to E, the base of the natural logarithms |
NaN |
NaN = 0.0 / 0.0. A constant holding a Not-a-Number (NaN) value |
X |
The X-position of the current pixel. |
Y |
The Y-position of the current pixel. |
sqrt( X ) |
Returns square root of X |
pow( X , Y ) |
X raised to the power of Y |
exp( X ) |
Returns Euler's number e raised to the power of X |
exp10( X ) |
Returns the value of 10 raised to the power of X |
log( X ) |
Returns the natural logarithm (base e) of X |
log10( X ) |
Returns the common logarithm, the logarithm with base 10 of X. |
sin( X ) |
Returns the trigonometric sine of an angle X in radians |
cos( X ) |
Returns the trigonometric cosine of an angle X in radians |
tan( X ) |
Returns the trigonometric tangent of an angle X in radians |
asin( X ) |
Returns the trigonometric arc-sine of X |
acos( X ) |
Returns the trigonometric arc-cosine of X |
atan( X ) |
Returns the trigonometric arc-tangent of X |
atan2( Y , X ) |
Returns the angle of polar co-ordinate of X,Y |
ampl( R , I ) |
Returns the amplitude function of a complex argument, same as sqrt(R * R + I * I) |
phase( R , I ) |
Returns the phase function of a complex argument, same as atan2(I, R) |
rad( X ) |
Converts X from decimal degree to radian |
deg( X ) |
Converts X from radian to decimal degree |
abs( X ) |
Returns the absolute value of X |
sign( X ) |
Returns the sign of A, always one of -1, 0, +1 |
min( X , Y ) |
Returns the smaller value of X and Y |
max( X , Y ) |
Returns the greater value of X and Y |
floor( X ) |
Returns the largest (closest to positive infinity) double value that is less than or equal to X and is equal to a mathematical integer |
round( X ) |
Returns the closest long to X. The result is rounded to an integer by adding 1/2, taking the floor of the result, and casting the result to type long |
ceil( X ) |
Returns the smallest (closest to negative infinity) double value that is greater than or equal to X and is equal to a mathematical integer |
rint( X ) |
Returns the double value that is closest in value to X and is equal to a mathematical integer. If two double values that are mathematical integers are equally close, the result is the integer value that is even |
feq( X , Y ) |
Performs a fuzzy equal operation for the X and Y arguments |
feq( X , Y , EPS ) |
Performs a fuzzy equal operation for the X and Y arguments by using EPS as maximum deviation |
fneq( X , Y ) |
Performs a fuzzy not equal operation for the X and Y arguments |
fneq( X , Y , EPS ) |
Performs a fuzzy not equal operation for the X and Y arguments by using EPS as maximum deviation |
nan( X ) |
Returns true if X is a Not-a-Number (NaN) value, false otherwise |
inf( X ) |
Returns true if X is infinitely large in magnitude, false otherwise |