ee.Image.arrayAccum

通过将结果数组像素的每个元素设置为相应像素中沿指定轴的元素(包括轴上的当前位置)的缩减值,沿指定轴累积每个数组像素的元素。可用于生成累计和、单调递增序列等。

用法返回
Image.arrayAccum(axis, reducer)图片
参数类型详细信息
此:input图片输入图片。
axis整数执行累计总和运算的轴。
reducer缩减器,默认值:null用于累积值的 reducer。默认值为 SUM,用于生成每个向量沿指定轴的累计和。

示例

代码编辑器 (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([1, 2, 3]).toArray();
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [1, 2, 3]

// Perform accumulation procedures along axes using ee.Reducer functions.
// Here we calculate the cumulative sum along the 0-axis for a 1D array.
var accumSum1DAx0 = arrayImg1D.arrayAccum(0, ee.Reducer.sum());
print('Cumulative sum along 0-axis', sampArrImg(accumSum1DAx0));
// [1, 3, 6]

// Create a 2D 3x3 array image.
var arrayImg2D = ee.Image([1, 2, 3, 4, 5, 6, 7, 8, 9]).toArray()
  .arrayReshape(ee.Image([3, 3]).toArray(), 2);
print('2D 3x3 array image (pixel)', sampArrImg(arrayImg2D));
// [[1, 2, 3],
//  [4, 5, 6],
//  [7, 8, 9]]

// Calculate the cumulative sum along the 0-axis for a 2D array.
var accumSum2DAx0 = arrayImg2D.arrayAccum(0, ee.Reducer.sum());
print('Cumulative sum along 0-axis', sampArrImg(accumSum2DAx0));
// [[ 1,  2,  3],
//  [ 5,  7,  9],
//  [12, 15, 18]]

// Calculate the cumulative sum along the 1-axis for a 2D array.
var accumSum2DAx1 = arrayImg2D.arrayAccum(1, ee.Reducer.sum());
print('Cumulative sum along 1-axis', sampArrImg(accumSum2DAx1));
// [[1,  3,  6],
//  [4,  9, 15],
//  [7, 15, 24]]

Python 设置

如需了解 Python API 和如何使用 geemap 进行交互式开发,请参阅 Python 环境页面。

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([1, 2, 3]).toArray()
print('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())
# [1, 2, 3]

# Perform accumulation procedures along axes using ee.Reducer functions.
# Here we calculate the cumulative sum along the 0-axis for a 1D array.
accum_sum_1d_ax0 = array_img_1d.arrayAccum(0, ee.Reducer.sum())
print('Cumulative sum along 0-axis:', samp_arr_img(accum_sum_1d_ax0).getInfo())
# [1, 3, 6]

# Create a 2D 3x3 array image.
array_img_2d = ee.Image([1, 2, 3, 4, 5, 6, 7, 8, 9]).toArray().arrayReshape(
    ee.Image([3, 3]).toArray(),
    2)
print('2D 3x3 array image (pixel):', samp_arr_img(array_img_2d).getInfo())
# [[1, 2, 3],
#  [4, 5, 6],
#  [7, 8, 9]]

# Calculate the cumulative sum along the 0-axis for a 2D array.
accum_sum_2d_ax0 = array_img_2d.arrayAccum(0, ee.Reducer.sum())
print('Cumulative sum along 0-axis:', samp_arr_img(accum_sum_2d_ax0).getInfo())
# [[ 1,  2,  3],
#  [ 5,  7,  9],
#  [12, 15, 18]]

# Calculate the cumulative sum along the 1-axis for a 2D array.
accum_sum_2d_ax1 = array_img_2d.arrayAccum(1, ee.Reducer.sum())
print('Cumulative sum along 1-axis:', samp_arr_img(accum_sum_2d_ax1).getInfo())
# [[1,  3,  6],
#  [4,  9, 15],
#  [7, 15, 24]]