ee.Image.arrayReduce

Giảm các phần tử của từng pixel mảng.

Cách sử dụngGiá trị trả về
Image.arrayReduce(reducer, axes, fieldAxis)Hình ảnh
Đối sốLoạiThông tin chi tiết
this: inputHình ảnhHình ảnh đầu vào.
reducerBộ giảm tốcHàm rút gọn cần áp dụng.
axesDanh sáchDanh sách các trục mảng cần giảm trong mỗi pixel. Đầu ra sẽ có độ dài là 1 trên tất cả các trục này.
fieldAxisSố nguyên, mặc định: nullTrục cho các trường đầu vào và đầu ra của bộ giảm. Chỉ bắt buộc nếu trình giảm có nhiều đầu vào hoặc đầu ra.

Ví dụ

Trình soạn thảo mã (JavaScript)

// A function to print arrays 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 with length 6.
var arrayImg1D = ee.Image([0, 1, 2, 3, 4, 5]).toArray();
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [0, 1, 2, 3, 4, 5]

// Sum the elements in the 1D array image.
var arrayImg1Dsum = arrayImg1D.arrayReduce(ee.Reducer.sum(), [0]);
print('1D array image sum (pixel)', sampArrImg(arrayImg1Dsum));
// [15]

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

// Sum 2D array image along 0-axis.
var arrayImg2DsumRow = arrayImg2D.arrayReduce(ee.Reducer.sum(), [0]);
print('2D array image sum rows (pixel)', sampArrImg(arrayImg2DsumRow));
// [[3, 5, 7]]

// Sum 2D array image along 1-axis.
var arrayImg2DsumCol = arrayImg2D.arrayReduce(ee.Reducer.sum(), [1]);
print('2D array image sum columns (pixel)', sampArrImg(arrayImg2DsumCol));
// [[3],
//  [12]]

// Sum 2D array image 0-axis and 1-axis.
var arrayImg2DsumRowCol = arrayImg2D.arrayReduce(ee.Reducer.sum(), [0, 1]);
print('2D array image sum columns (pixel)', sampArrImg(arrayImg2DsumRowCol));
// [[15]]

// For reducers that provide several outputs (like minMax and percentile),
// you need to ensure you have a dimension to hold the results. For instance,
// if you want minMax for a 1D array, add a second dimension.
var arrayImg1Dto2D = arrayImg1D.toArray(1);
print('1D array image to 2D', sampArrImg(arrayImg1Dto2D));
// [[0],
//  [1],
//  [2],
//  [3],
//  [4],
//  [5]]

// Calculate min and max for 2D array, use the fieldAxis parameter.
var minMax1D = arrayImg1Dto2D.arrayReduce(ee.Reducer.minMax(), [0], 1);
print('1D array image minMax (pixel)', sampArrImg(minMax1D));
// [[0, 5]]

// If your array image is 2D and you want min and max, add a third dimension.
var arrayImg2Dto3D = arrayImg2D.toArray(2);
print('2D array image to 3D', sampArrImg(arrayImg2Dto3D));
// [[[0], [1], [2]],
//  [[3], [4], [5]]]

// Calculate min and max along the 0-axis, store results in 2-axis.
var minMax2D = arrayImg2Dto3D.arrayReduce(ee.Reducer.minMax(), [0], 2);
print('2D array image minMax (pixel)', sampArrImg(minMax2D));
// [[[0, 3],
//   [1, 4],
//   [2, 5]]]

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về API Python và cách sử dụng geemap cho quá trình phát triển tương tác.

import ee
import geemap.core as geemap

Colab (Python)

# A function to print arrays 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 with length 6.
array_img_1d = ee.Image([0, 1, 2, 3, 4, 5]).toArray()
print('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())
# [0, 1, 2, 3, 4, 5]

# Sum the elements in the 1D array image.
array_img_1d_sum = array_img_1d.arrayReduce(ee.Reducer.sum(), [0])
print('1D array image sum (pixel):', samp_arr_img(array_img_1d_sum).getInfo())
# [15]

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

# Sum 2D array image along 0-axis.
array_img_2d_sum_row = array_img_2d.arrayReduce(ee.Reducer.sum(), [0])
print(
    '2D array image sum rows (pixel):',
    samp_arr_img(array_img_2d_sum_row).getInfo()
)
# [[3, 5, 7]]

# Sum 2D array image along 1-axis.
array_img_2d_sum_col = array_img_2d.arrayReduce(ee.Reducer.sum(), [1])
print(
    '2D array image sum columns (pixel):',
    samp_arr_img(array_img_2d_sum_col).getInfo()
)
# [[3],
#  [12]]

# Sum 2D array image 0-axis and 1-axis.
array_img_2d_sum_row_col = array_img_2d.arrayReduce(ee.Reducer.sum(), [0, 1])
print(
    '2D array image sum columns (pixel):',
    samp_arr_img(array_img_2d_sum_row_col).getInfo()
)
# [[15]]

# For reducers that provide several outputs (like minMax and percentile),
# you need to ensure you have a dimension to hold the results. For instance,
# if you want minMax for a 1D array, add a second dimension.
array_img_1d_to_2d = array_img_1d.toArray(1)
print('1D array image to 2D:', samp_arr_img(array_img_1d_to_2d).getInfo())
# [[0],
#  [1],
#  [2],
#  [3],
#  [4],
#  [5]]

# Calculate min and max for 2D array, use the fieldAxis parameter.
min_max_1d = array_img_1d_to_2d.arrayReduce(ee.Reducer.minMax(), [0], 1)
print('1D array image minMax (pixel):', samp_arr_img(min_max_1d).getInfo())
# [[0, 5]]

# If your array image is 2D and you want min and max, add a third dimension.
array_img_2d_to_3d = array_img_2d.toArray(2)
print('2D array image to 3D:', samp_arr_img(array_img_2d_to_3d).getInfo())
# [[[0], [1], [2]],
#  [[3], [4], [5]]]

# Calculate min and max along the 0-axis, store results in 2-axis.
min_max_2d = array_img_2d_to_3d.arrayReduce(ee.Reducer.minMax(), [0], 2)
print('2D array image minMax (pixel):', samp_arr_img(min_max_2d).getInfo())
# [[[0, 3],
#   [1, 4],
#   [2, 5]]]