Announcement: All noncommercial projects registered to use Earth Engine before
April 15, 2025 must
verify noncommercial eligibility to maintain Earth Engine access.
ee.Array.firstNonZero
Stay organized with collections
Save and categorize content based on your preferences.
On an element-wise basis, selects the first value if it is non-zero, and the second value otherwise.
Usage | Returns | Array.firstNonZero(right) | Array |
Argument | Type | Details | this: left | Array | The left-hand value. |
right | Array | The right-hand value. |
Examples
Code Editor (JavaScript)
var empty = ee.Array([], ee.PixelType.int8());
print(empty.firstNonZero(empty)); // []
print(ee.Array([0]).firstNonZero(0)); // [0]
print(ee.Array([0]).firstNonZero([0])); // [0]
print(ee.Array([0]).firstNonZero([1])); // [1]
print(ee.Array([2]).firstNonZero([3])); // [2]
print(ee.Array([1]).firstNonZero([0])); // [1]
print(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])); // [-1,-1,1]
// [[1,2],[3,4]]
print(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]));
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)
empty = ee.Array([], ee.PixelType.int8())
display(empty.firstNonZero(empty)) # []
display(ee.Array([0]).firstNonZero(0)) # [0]
display(ee.Array([0]).firstNonZero([0])) # [0]
display(ee.Array([0]).firstNonZero([1])) # [1]
display(ee.Array([2]).firstNonZero([3])) # [2]
display(ee.Array([1]).firstNonZero([0])) # [1]
display(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])) # [-1, -1, 1]
# [[1, 2], [3, 4]]
display(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]))
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 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[[["\u003cp\u003e\u003ccode\u003eArray.firstNonZero()\u003c/code\u003e selects the first array's element if it's non-zero; otherwise, it selects the corresponding element from the second array.\u003c/p\u003e\n"],["\u003cp\u003eThis function operates element-wise on two input arrays (\u003ccode\u003eleft\u003c/code\u003e and \u003ccode\u003eright\u003c/code\u003e).\u003c/p\u003e\n"],["\u003cp\u003eIf the \u003ccode\u003eleft\u003c/code\u003e array element is 0, the corresponding element from the \u003ccode\u003eright\u003c/code\u003e array is chosen.\u003c/p\u003e\n"],["\u003cp\u003eThe function returns a new array containing the selected elements.\u003c/p\u003e\n"],["\u003cp\u003eIt's useful for scenarios like conditional data selection based on zero/non-zero values.\u003c/p\u003e\n"]]],["The `firstNonZero` method compares two arrays (`left` and `right`) element-wise. If an element in the `left` array is non-zero, that value is selected. Otherwise, the corresponding element from the `right` array is chosen. The method returns a new array where each element is the result of this comparison. Both JavaScript and Python examples show how to implement and the result. The return value is an array.\n"],null,["# ee.Array.firstNonZero\n\nOn an element-wise basis, selects the first value if it is non-zero, and the second value otherwise.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|-----------------------------|---------|\n| Array.firstNonZero`(right)` | Array |\n\n| Argument | Type | Details |\n|--------------|-------|-----------------------|\n| this: `left` | Array | The left-hand value. |\n| `right` | Array | The right-hand value. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\nvar empty = ee.Array([], ee.PixelType.int8());\nprint(empty.firstNonZero(empty)); // []\n\nprint(ee.Array([0]).firstNonZero(0)); // [0]\nprint(ee.Array([0]).firstNonZero([0])); // [0]\nprint(ee.Array([0]).firstNonZero([1])); // [1]\nprint(ee.Array([2]).firstNonZero([3])); // [2]\nprint(ee.Array([1]).firstNonZero([0])); // [1]\n\nprint(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])); // [-1,-1,1]\n\n// [[1,2],[3,4]]\nprint(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]));\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\nempty = ee.Array([], ee.PixelType.int8())\ndisplay(empty.firstNonZero(empty)) # []\n\ndisplay(ee.Array([0]).firstNonZero(0)) # [0]\ndisplay(ee.Array([0]).firstNonZero([0])) # [0]\ndisplay(ee.Array([0]).firstNonZero([1])) # [1]\ndisplay(ee.Array([2]).firstNonZero([3])) # [2]\ndisplay(ee.Array([1]).firstNonZero([0])) # [1]\n\ndisplay(ee.Array([-1, 0, 1]).firstNonZero([2, -1, 2])) # [-1, -1, 1]\n\n# [[1, 2], [3, 4]]\ndisplay(ee.Array([[1, 2], [0, 0]]).firstNonZero([[0, 0], [3, 4]]))\n```"]]