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

// 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]

See the Python Environment page for information on the Python API and using geemap for interactive development.

import ee
import geemap.core as geemap
# 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]