ee.Image.arrayArgmax

Computes the positional indices of the maximum value in image of array values. If there are multiple occurrences of the maximum, the indices reflect the first.

UsageReturns
Image.arrayArgmax()Image
ArgumentTypeDetails
this: imageImageThe input image.

Examples

Code Editor (JavaScript)

// A function to print the array for a selected pixel in the following examples.
function sampArrImg(arrImg) {
  var point = ee.Geometry.Point([-121, 42]);
  return arrImg.sample(point, 500).first().get('array');
}

// Create a 1D array image.
var arrayImg1D = ee.Image([0, 1, 5, 2, 3, 4]).toArray();
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [0, 1, 5, 2, 3, 4]

// Get the position of the maximum value in a 1D array.
var maxValue1D = arrayImg1D.arrayArgmax();
print('Position of the maximum 1D array value', sampArrImg(maxValue1D));
// [2]

// Create a 2D 2x3 array image (reshape the 1D array image).
var arrayImg2D = arrayImg1D.arrayReshape(ee.Image([2, 3]).toArray(), 2);
print('2D 2x3 array image (pixel)', sampArrImg(arrayImg2D));
// [[0, 1, 5],
//  [2, 3, 4]]

// Get the position of the maximum value in a 2D array.
var maxValue2D = arrayImg2D.arrayArgmax();
print('Position of the maximum 2D array value', sampArrImg(maxValue2D));
// [0, 2]

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 function to print the array for a selected pixel in the following examples.
def samp_arr_img(arr_img):
  point = ee.Geometry.Point([-121, 42])
  return arr_img.sample(point, 500).first().get('array')

# Create a 1D array image.
array_img_1d = ee.Image([0, 1, 5, 2, 3, 4]).toArray()
print('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())
# [0, 1, 5, 2, 3, 4]

# Get the position of the maximum value in a 1D array.
max_value_1d = array_img_1d.arrayArgmax()
print(
    'Position of the maximum 1D array value:',
    samp_arr_img(max_value_1d).getInfo()
    )
# [2]

# Create a 2D 2x3 array image (reshape the 1D array image).
array_img_2d = array_img_1d.arrayReshape(ee.Image([2, 3]).toArray(), 2)
print('2D 2x3 array image (pixel):', samp_arr_img(array_img_2d).getInfo())
# [[0, 1, 5],
#  [2, 3, 4]]

# Get the position of the maximum value in a 2D array.
max_value_2d = array_img_2d.arrayArgmax()
print(
    'Position of the maximum 2D array value:',
    samp_arr_img(max_value_2d).getInfo()
)
# [0, 2]