Raster Calculator

Open Table of Contents ToolBox Implementation
The Raster Calculator enables the user to perform complex mathematical calculation on rasters. The user can build expressions using large variety of arithmetic, logical, trigonometric, etc. functions provided. Up to 4 rasters can be used in a single expression. The expressions are evaluated by the Raster Calculator on the fly and the user is provided with the status of the formula as he/her builds it.

Inputs:

  • Rasters - up to 4 rasters can be used. If the Raster Calculator is used from the GUI, the rasters are selected from the raster layers loaded in ArcMap. In the ToolBox implementation the input can be a raster layer or raster dataset. The 4 rasters are called Raster A, Raster B, Raster C and Raster D. Raster A is required, the other rasters are optional.
  • Expression - the formula to be used for the calculation to be performed. For shortness the rasters should be entered with their letters in the expression - A for Raster A, B for Raster B, etc. All the functions available can be typed in the expression box or selected from the calculator buttons provided. The functions are not case sensitive - SIN, Sin and sin will be accepted as correct entries. Note that the operator for EQUAL is "==" and NOT "=" (which is operator for assignment). The syntax of all functions is discussed below.

Output:

  • If the Raster Calculator is used from the GUI, the raster dataset created when an expression is executed is a temp raster and is stored in the temp folder of ET Surface. If you want to save it as a permanent raster, use the Export Data tool.
  •  If the ToolBox implementation is used, the user is asked for an output name and location and the raster dataset created is permanent.
  • The output raster dataset will
    • Be FLOAT type
    • Have the cell size of the Raster A (if any of the other rasters used have a different cell size, it will be resampled)
    • The extent  will be calculated as the intersection of the extents of the input rasters.

Functions and operators:

  • Arithmetic
    • FLOOR - Returns the largest integer less than or equal to a number. FLOOR (3.66) = 3
    • CEILING - Returns the smallest integer greater than or equal to a number. CEILING (3.15)= 4
    • ROUND - Rounds a number to the nearest integer. ROUND (3.66) = 4,  ROUND (3.15) = 3
    • ABS - Returns the absolute value of a number. ABS(-14) = 14
    • SQRT - Returns the square root of a number. SQRT(4) = 2
    • SQR - Returns the square of a number. SQR(2) = 4
  • Trigonometric
    • Pi - adds constant Pi to the expression
    • RAD - converts an angle in degrees to an angle in radians.
    • SIN -  Returns the sine of an angle. The argument should be in radians. SIN(Pi/6) = 0.5; SIN(RAD(30)) = 0.5
    • COS -  Returns the cosine of an angle. The argument should be in radians. SIN(Pi/3) = 0.5, COS(RAD(60)) = 0.5
    • TAN - Returns the tangent of an angle. The argument should be in radians. TAN(RAD(45)) = 1
    • ASIN - Returns the angle (in radians) whose sine is the specified number. To convert the result to degrees multiply with 180/pi -  ASIN(0.5)*180/Pi = 30
    • ASIN - Returns the angle (in radians) whose cosine is the specified number.
    • ATAN - Returns the angle (in radians) whose tangent is the specified number.
  • Logarithmic
    • LOG - Returns the logarithm of a number.
    • LOG10 - Returns the base 10 logarithm of a specified number.
    • LN -  Returns the natural logarithm of a number.
    • EXP - Returns e raised to the specified power.
  • Statistics
    • SUM - Returns the sum of the arguments - SUM(1,2,3,4,5) = 15
    • MIN - Returns the minimum of the arguments - MIN(1,2,3,4,5) = 1
    • MAX - Returns the maximum of the arguments - MAX(1,2,3,4,5) = 5
    • AVG - Returns the average of the arguments - AVG(1,2,3,4,5) = 3
  • Logical
    • IF - logical if. The syntax is IF(expression, true result, false result) - IF(2>1,100,200) = 100
    • != - Not equal -  IF(2 != 1,100,200) = 100
    • == - equal  -  IF(2 == 1,100,200) = 200
    • AND - logical and -   IF(2 > 1 AND 3 == 4,100,200) = 200
    • OR - logical or -  IF(2 > 1 OR 3 == 4,100,200) = 100
    • XOR - logical xor -  IF(2 > 1 XOR 3 == 4,100,200) = 100
    • NOT - logical not - IF(NOT(2 == 1),100,200) = 100

Priority of the operators

Priority Operators
1 AND, OR, XOR
2 ==, !=, <=, >=, <, >
3 +, -
4 *, /
5 ^

NoData Values

  • The NoData value of the output raster will be equal to the NoData value of raster A
  • If any of the rasters participating in an expression have NoData value in certain location, the output will have NoData value at this location
  • The user can use NoData in an expression to set portions of the output raster to NoData. Example: IF(A<1500,NoData,A) - this expression will create a raster in which all cells with values  less than 1500 will be assigned to NoData, the rest of the cells will have the values of the input raster A.
  • To replace the NoData values of a raster with valid values use the Replace NoData function.

ToolBox implementation

Command line syntax

ETS_GPRasterCalculator  <Raster_A> {Raster_B} {Raster_C} {Raster_D} <out_raster>,<Expression>

Parameters

Expression Explanation
<Raster_A> A Raster dataset or Raster layer
{Raster_B} A Raster dataset or Raster layer
{Raster_C} A Raster dataset or Raster layer
{Raster_D} A Raster dataset or Raster layer
<out_raster> A String - the full name of the output raster (Araster with the same full name should not exist)
 <Expression> A String - the expression to be executed

Example: ETS_GPRasterCalculator  elev1 # # # c:\test\output.img IF(A > 1300, NoData, A)

Scripting syntax

ETS_GPRasterCalculator  (Raster_A, Raster_B, Raster_C, Raster_D, out_raster, expression)

See the explanations above:
<> - required parameter
{} - optional parameter

The Raster Calculator uses the free MuParser © Ingo Berg (see license).

All ESRI products mentioned are trademarks of Environmental Systems Research Institute, Inc.
Copyright© Ianko Tchoukanski