AI-generated Key Takeaways
-
The
arrayFlattenmethod converts a single-band image of equal-shape multidimensional pixels to an image with one band for each element of the array. -
The method requires
coordinateLabels, a list defining the name of each position along each axis, and an optionalseparatorstring for band names. -
The result is an Image object where each band corresponds to a flattened element from the input array image.
| Usage | Returns |
|---|---|
Image.
arrayFlatten
(coordinateLabels, separator
)
|
Image |
| Argument | Type | Details |
|---|---|---|
|
this:
image
|
Image | Image of multidimensional pixels to flatten. |
coordinateLabels
|
List | Name of each position along each axis. For example, 2x2 arrays with axes meaning 'day' and 'color' could have labels like [['monday', 'tuesday'], ['red', 'green']], resulting in band names'monday_red', 'monday_green', 'tuesday_red', and 'tuesday_green'. |
separator
|
String, default: "_" | Separator between array labels in each band name. |
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' ); } // A 1D array image. var arrayImg1D = ee . Image ([ 0 , 1 , 2 ]). toArray (); print ( '1D array image (pixel)' , sampArrImg ( arrayImg1D )); // [0, 1, 2] // Define image band names for a 1D array image with 3 rows. You are labeling // all rows and columns using a list of lists; the 1st sub list defines labels // for array rows and the 2nd (if applicable) defines labels for array columns. var bandNames1D = [[ 'row0' , 'row1' , 'row2' ]]; // Flatten the 1D array image into an image with n bands equal to all // combinations of rows and columns. Here, we have 3 rows and 0 columns, // so the result will be a 3-band image. var imgFrom1Darray = arrayImg1D . arrayFlatten ( bandNames1D ); print ( 'Image from 1D array' , imgFrom1Darray ); // Make a 2D array image by repeating the 1D array on 2-axis. var arrayImg2D = arrayImg1D . arrayRepeat ( 1 , 2 ); print ( '2D array image (pixel)' , sampArrImg ( arrayImg2D )); // [[0, 0], // [1, 1], // [2, 2]] // Define image band names for a 2D array image with 3 rows and 2 columns. // Recall that you are labeling all rows and columns using a list of lists; // The 1st sub list defines labels for array rows and the 2nd (if applicable) // defines labels for array columns. var bandNames2D = [[ 'row0' , 'row1' , 'row2' ], [ 'col0' , 'col1' ]]; // Flatten the 2D array image into an image with n bands equal to all // combinations of rows and columns. Here, we have 3 rows and 2 columns, // so the result will be a 6-band image. var imgFrom2Darray = arrayImg2D . arrayFlatten ( bandNames2D ); print ( 'Image from 2D array' , imgFrom2Darray );
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' ) # A 1D array image. array_img_1d = ee . Image ([ 0 , 1 , 2 ]) . toArray () display ( '1D array image (pixel):' , samp_arr_img ( array_img_1d )) # [0, 1, 2] # Define image band names for a 1D array image with 3 rows. You are labeling # all rows and columns using a list of lists; the 1st sub list defines labels # for array rows and the 2nd (if applicable) defines labels for array columns. band_names_1d = [[ 'row0' , 'row1' , 'row2' ]] # Flatten the 1D array image into an image with n bands equal to all # combinations of rows and columns. Here, we have 3 rows and 0 columns, # so the result will be a 3-band image. img_from_1d_array = array_img_1d . arrayFlatten ( band_names_1d ) display ( 'Image from 1D array:' , img_from_1d_array ) # Make a 2D array image by repeating the 1D array on 2-axis. array_img_2d = array_img_1d . arrayRepeat ( 1 , 2 ) display ( '2D array image (pixel):' , samp_arr_img ( array_img_2d )) # [[0, 0], # [1, 1], # [2, 2]] # Define image band names for a 2D array image with 3 rows and 2 columns. # Recall that you are labeling all rows and columns using a list of lists; # The 1st sub list defines labels for array rows and the 2nd (if applicable) # defines labels for array columns. band_names_2d = [[ 'row0' , 'row1' , 'row2' ], [ 'col0' , 'col1' ]] # Flatten the 2D array image into an image with n bands equal to all # combinations of rows and columns. Here, we have 3 rows and 2 columns, # so the result will be a 6-band image. img_from_2d_array = array_img_2d . arrayFlatten ( band_names_2d ) display ( 'Image from 2D array:' , img_from_2d_array )

