Announcement: All noncommercial projects registered to use Earth Engine before
April 15, 2025 must
verify noncommercial eligibility to maintain Earth Engine access.
ee.Number.expression
Stay organized with collections
Save and categorize content based on your preferences.
Computes a numeric expression.
Usage | Returns | ee.Number.expression(expression, vars) | Number |
Argument | Type | Details | expression | String | A mathematical expression string to be evaluated. In addition to the standard arithmetic, boolean and relational operators, expressions also support any function in Number, the '.' operator to extract child elements from the 'vars' dictionary, and mathematical constants Math.PI and Math.E. |
vars | Dictionary, default: null | A dictionary of named values that can be used in the expression. |
Examples
Code Editor (JavaScript)
// A dictionary of variables to use in expression.
var variables = {x: 5, y: 10};
// Arithmetic operators.
print('x + y',
ee.Number.expression('x + y', variables));
print('x - y',
ee.Number.expression('x - y', variables));
print('x * y',
ee.Number.expression('x * y', variables));
print('x / y',
ee.Number.expression('x / y', variables));
print('x ** y',
ee.Number.expression('x ** y', variables));
print('x % y',
ee.Number.expression('x % y', variables));
// Logical operators.
print('x || y',
ee.Number.expression('x || y', variables));
print('x && y',
ee.Number.expression('x && y', variables));
print('!(x)',
ee.Number.expression('!(x)', variables));
// Relational operators.
print('x > y',
ee.Number.expression('x > y', variables));
print('x >= y',
ee.Number.expression('x >= y', variables));
print('x < y',
ee.Number.expression('x < y', variables));
print('x <= y',
ee.Number.expression('x <= y', variables));
print('x == y',
ee.Number.expression('x == y', variables));
print('x != y',
ee.Number.expression('x != y', variables));
// Conditional (ternary) operator.
print('(x < y) ? 100 : 1000)',
ee.Number.expression('(x < y) ? 100 : 1000', variables));
// Constants in the expression.
print('100 * (x + y)',
ee.Number.expression('100 * (x + y)', variables));
// JavaScript Math constants.
print('Math.PI',
ee.Number.expression('Math.PI', null));
print('Math.E',
ee.Number.expression('Math.E', null));
// Dot notation to call on child elements.
print('Use dot notation to call on child elements',
ee.Number.expression('vals.x * vals.y', {vals: variables}));
// ee.Number functions.
print('Use ee.Number add: add(x, y)',
ee.Number.expression('add(x, y)', variables));
print('Use ee.Number add and subtract: subtract(add(x, y), 5)',
ee.Number.expression('subtract(add(x, y), 5)', variables));
Python setup
See the
Python Environment page for information on the Python API and using
geemap
for interactive development.
import ee
import geemap.core as geemap
Colab (Python)
# A dictionary of variables to use in expression.
variables = {'x': 5, 'y': 10}
# Arithmetic operators.
print('x + y:',
ee.Number.expression('x + y', variables).getInfo())
print('x - y:',
ee.Number.expression('x - y', variables).getInfo())
print('x * y:',
ee.Number.expression('x * y', variables).getInfo())
print('x / y:',
ee.Number.expression('x / y', variables).getInfo())
print('x ** y:',
ee.Number.expression('x ** y', variables).getInfo())
print('x % y:',
ee.Number.expression('x % y', variables).getInfo())
# Logical operators.
print('x || y:',
ee.Number.expression('x || y', variables).getInfo())
print('x && y:',
ee.Number.expression('x && y', variables).getInfo())
print('!(x):',
ee.Number.expression('!(x)', variables).getInfo())
# Relational operators.
print('x > y:',
ee.Number.expression('x > y', variables).getInfo())
print('x >= y:',
ee.Number.expression('x >= y', variables).getInfo())
print('x < y:',
ee.Number.expression('x < y', variables).getInfo())
print('x <= y:',
ee.Number.expression('x <= y', variables).getInfo())
print('x == y:',
ee.Number.expression('x == y', variables).getInfo())
print('x != y:',
ee.Number.expression('x != y', variables).getInfo())
# Conditional JavaScript (ternary) operator.
print('(x < y) ? 100 : 1000):',
ee.Number.expression('(x < y) ? 100 : 1000', variables).getInfo())
# Constants in the expression.
print('100 * (x + y):',
ee.Number.expression('100 * (x + y)', variables).getInfo())
# JavaScript Math constants.
print('Math.PI:',
ee.Number.expression('Math.PI', None).getInfo())
print('Math.E:',
ee.Number.expression('Math.E', None).getInfo())
# Dot notation to call on child elements.
print('Use dot notation to call on child elements:',
ee.Number.expression('vals.x * vals.y', {'vals': variables}).getInfo())
# ee.Number functions.
print('Use ee.Number add. add(x, y):',
ee.Number.expression('add(x, y)', variables).getInfo())
print('Use ee.Number add and subtract. subtract(add(x, y), 5):',
ee.Number.expression('subtract(add(x, y), 5)', variables).getInfo())
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-07-13 UTC.
[null,null,["Last updated 2024-07-13 UTC."],[[["\u003cp\u003e\u003ccode\u003eee.Number.expression\u003c/code\u003e computes a numeric expression provided as a string.\u003c/p\u003e\n"],["\u003cp\u003eIt supports standard arithmetic, boolean, relational operators, as well as \u003ccode\u003eee.Number\u003c/code\u003e functions, and mathematical constants.\u003c/p\u003e\n"],["\u003cp\u003eA dictionary of variables can be passed to the function to be used within the expression.\u003c/p\u003e\n"],["\u003cp\u003eDot notation can be utilized within the expression to access child elements of variables provided in the dictionary.\u003c/p\u003e\n"]]],["`ee.Number.expression` evaluates a mathematical expression string. It accepts an `expression` string and an optional `vars` dictionary containing named values. The expression supports arithmetic, boolean, and relational operators, as well as functions found in `ee.Number` and constants like `Math.PI` and `Math.E`. Dot notation accesses nested dictionary elements. The function returns a numerical result, allowing complex computations. Examples include adding, subtracting, multiplying, applying logical operations, and conditional logic.\n"],null,["# ee.Number.expression\n\nComputes a numeric expression.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|----------------------------------------------|---------|\n| `ee.Number.expression(expression, `*vars*`)` | Number |\n\n| Argument | Type | Details |\n|--------------|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `expression` | String | A mathematical expression string to be evaluated. In addition to the standard arithmetic, boolean and relational operators, expressions also support any function in Number, the '.' operator to extract child elements from the 'vars' dictionary, and mathematical constants Math.PI and Math.E. |\n| `vars` | Dictionary, default: null | A dictionary of named values that can be used in the expression. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// A dictionary of variables to use in expression.\nvar variables = {x: 5, y: 10};\n\n// Arithmetic operators.\nprint('x + y',\n ee.Number.expression('x + y', variables));\nprint('x - y',\n ee.Number.expression('x - y', variables));\nprint('x * y',\n ee.Number.expression('x * y', variables));\nprint('x / y',\n ee.Number.expression('x / y', variables));\nprint('x ** y',\n ee.Number.expression('x ** y', variables));\nprint('x % y',\n ee.Number.expression('x % y', variables));\n\n// Logical operators.\nprint('x || y',\n ee.Number.expression('x || y', variables));\nprint('x && y',\n ee.Number.expression('x && y', variables));\nprint('!(x)',\n ee.Number.expression('!(x)', variables));\n\n// Relational operators.\nprint('x \u003e y',\n ee.Number.expression('x \u003e y', variables));\nprint('x \u003e= y',\n ee.Number.expression('x \u003e= y', variables));\nprint('x \u003c y',\n ee.Number.expression('x \u003c y', variables));\nprint('x \u003c= y',\n ee.Number.expression('x \u003c= y', variables));\nprint('x == y',\n ee.Number.expression('x == y', variables));\nprint('x != y',\n ee.Number.expression('x != y', variables));\n\n// Conditional (ternary) operator.\nprint('(x \u003c y) ? 100 : 1000)',\n ee.Number.expression('(x \u003c y) ? 100 : 1000', variables));\n\n// Constants in the expression.\nprint('100 * (x + y)',\n ee.Number.expression('100 * (x + y)', variables));\n\n// JavaScript Math constants.\nprint('Math.PI',\n ee.Number.expression('Math.PI', null));\nprint('Math.E',\n ee.Number.expression('Math.E', null));\n\n// Dot notation to call on child elements.\nprint('Use dot notation to call on child elements',\n ee.Number.expression('vals.x * vals.y', {vals: variables}));\n\n// ee.Number functions.\nprint('Use ee.Number add: add(x, y)',\n ee.Number.expression('add(x, y)', variables));\nprint('Use ee.Number add and subtract: subtract(add(x, y), 5)',\n ee.Number.expression('subtract(add(x, y), 5)', variables));\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# A dictionary of variables to use in expression.\nvariables = {'x': 5, 'y': 10}\n\n# Arithmetic operators.\nprint('x + y:',\n ee.Number.expression('x + y', variables).getInfo())\nprint('x - y:',\n ee.Number.expression('x - y', variables).getInfo())\nprint('x * y:',\n ee.Number.expression('x * y', variables).getInfo())\nprint('x / y:',\n ee.Number.expression('x / y', variables).getInfo())\nprint('x ** y:',\n ee.Number.expression('x ** y', variables).getInfo())\nprint('x % y:',\n ee.Number.expression('x % y', variables).getInfo())\n\n# Logical operators.\nprint('x || y:',\n ee.Number.expression('x || y', variables).getInfo())\nprint('x && y:',\n ee.Number.expression('x && y', variables).getInfo())\nprint('!(x):',\n ee.Number.expression('!(x)', variables).getInfo())\n\n# Relational operators.\nprint('x \u003e y:',\n ee.Number.expression('x \u003e y', variables).getInfo())\nprint('x \u003e= y:',\n ee.Number.expression('x \u003e= y', variables).getInfo())\nprint('x \u003c y:',\n ee.Number.expression('x \u003c y', variables).getInfo())\nprint('x \u003c= y:',\n ee.Number.expression('x \u003c= y', variables).getInfo())\nprint('x == y:',\n ee.Number.expression('x == y', variables).getInfo())\nprint('x != y:',\n ee.Number.expression('x != y', variables).getInfo())\n\n# Conditional JavaScript (ternary) operator.\nprint('(x \u003c y) ? 100 : 1000):',\n ee.Number.expression('(x \u003c y) ? 100 : 1000', variables).getInfo())\n\n# Constants in the expression.\nprint('100 * (x + y):',\n ee.Number.expression('100 * (x + y)', variables).getInfo())\n\n# JavaScript Math constants.\nprint('Math.PI:',\n ee.Number.expression('Math.PI', None).getInfo())\nprint('Math.E:',\n ee.Number.expression('Math.E', None).getInfo())\n\n# Dot notation to call on child elements.\nprint('Use dot notation to call on child elements:',\n ee.Number.expression('vals.x * vals.y', {'vals': variables}).getInfo())\n\n# ee.Number functions.\nprint('Use ee.Number add. add(x, y):',\n ee.Number.expression('add(x, y)', variables).getInfo())\nprint('Use ee.Number add and subtract. subtract(add(x, y), 5):',\n ee.Number.expression('subtract(add(x, y), 5)', variables).getInfo())\n```"]]