用法 | 返回 |
---|---|
Image.arrayReduce(reducer, axes, fieldAxis) | 图片 |
参数 | 类型 | 详细信息 |
---|---|---|
此:input | 图片 | 输入图片。 |
reducer | 缩减器 | 要应用的缩减器。 |
axes | 列表 | 要在每个像素中缩减的数组轴的列表。输出在所有这些轴上的长度都为 1。 |
fieldAxis | 整数,默认值:null | reducer 的输入和输出字段的轴。仅当 reducer 有多个输入或输出时才需要。 |
示例
代码编辑器 (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]]]
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]]]