AI-generated Key Takeaways
-
The
arrayReshapefunction converts array bands of an image into a new shape. -
It takes the desired lengths of each new dimension and the total number of output dimensions as arguments.
-
A length value of -1 can be used to automatically calculate the length of that dimension based on the total size.
-
The function returns an Image with the reshaped arrays.
| Usage | Returns |
|---|---|
Image.
arrayReshape
(lengths, dimensions)
|
Image |
| Argument | Type | Details |
|---|---|---|
|
this:
image
|
Image | The image of arrays to reshape. |
lengths
|
Image | A 1-band image specifying the new lengths of each axis of the input image specified as a 1-D array per pixel. There should be 'dimensions' lengths values in each shape' array. If one of the lengths is -1, then the corresponding length for that axis will be computed such that the total size remains constant. In particular, a shape of [-1] flattens into 1-D. At most one component of shape can be -1. |
dimensions
|
Integer | The number of dimensions shared by all output array pixels. |
Examples
Code Editor (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] // Reshape the 1D 6-element array to a 2D 2 (row) x 3 (column) array. Notice // that elements are filled row by row in the reshaped result. var reshape2x3 = arrayImg1D . arrayReshape ( ee . Image ([ 2 , 3 ]). toArray (), 2 ); print ( '2D 2x3 array image (pixel)' , sampArrImg ( reshape2x3 )); // [[0, 1, 2], // [3, 4, 5]] // Use -1 to auto-determine a dimension length. For example, here we set // 3 rows and let Earth Engine determine the number of columns needed. var reshape3x_ = arrayImg1D . arrayReshape ( ee . Image ([ 3 , - 1 ]). toArray (), 2 ); print ( '2D 3x? array image (pixel)' , sampArrImg ( reshape3x_ )); // [[0, 1], // [2, 3], // [4, 5]] // Flatten a 2D 2x3 array to 1D 6-element array. var flattened = reshape2x3 . arrayReshape ( ee . Image ([ - 1 ]). toArray (), 1 ); print ( '2D array flattened to 1D' , sampArrImg ( flattened )); // [0, 1, 2, 3, 4, 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 () display ( '1D array image (pixel):' , samp_arr_img ( array_img_1d )) # [0, 1, 2, 3, 4, 5] # Reshape the 1D 6-element array to a 2D 2 (row) x 3 (column) array. Notice # that elements are filled row by row in the reshaped result. reshape2x3 = array_img_1d . arrayReshape ( ee . Image ([ 2 , 3 ]) . toArray (), 2 ) display ( '2D 2x3 array image (pixel):' , samp_arr_img ( reshape2x3 )) # [[0, 1, 2], # [3, 4, 5]] # Use -1 to auto-determine a dimension length. For example, here we set # 3 rows and let Earth Engine determine the number of columns needed. reshape3x_ = array_img_1d . arrayReshape ( ee . Image ([ 3 , - 1 ]) . toArray (), 2 ) display ( '2D 3x? array image (pixel):' , samp_arr_img ( reshape3x_ )) # [[0, 1], # [2, 3], # [4, 5]] # Flatten a 2D 2x3 array to 1D 6-element array. flattened = reshape2x3 . arrayReshape ( ee . Image ([ - 1 ]) . toArray (), 1 ) display ( '2D array flattened to 1D:' , samp_arr_img ( flattened )) # [0, 1, 2, 3, 4, 5]

