Concatenates pixels from each band into a single array per pixel. The result will be masked if any input bands are masked.
Usage | Returns | Image.toArray(axis) | Image |
Argument | Type | Details | this: image | Image | Image of bands to convert to an array per pixel. Bands must have scalar pixels, or array pixels with equal dimensionality. |
axis | Integer, default: 0 | Axis to concatenate along; must be at least 0 and at most the dimension of the inputs. If the axis equals the dimension of the inputs, the result will have 1 more dimension than the inputs. |
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 3-band image of constants.
var img = ee.Image([0, 1, 2]);
print('3-band image', img);
// Convert the 3-band image to an array image. The resulting array image has a
// single band named "array". The "array" band stores the per-pixel band values
// from the input ee.Image as a 1D array.
var arrayImg1D = img.toArray();
print('1D array image', arrayImg1D);
// Sample a single pixel to see its 1D array using the `sampArrImg` function
// defined above. Similar arrays are present for all pixels in a given array
// image; looking at just one helps conceptualize the structure.
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [0, 1, 2]
// Array images can be displayed to the Code Editor map and queried with the
// inspector tool. Per-pixel, the first element in the array is shown.
// Single-band grayscale is used to represent the data. Style parameters `min`
// and `max` are valid. Styling the layer with the Code Editor's layer
// visualization tool is invalid.
Map.addLayer(arrayImg1D, {min: 0, max: 2}, 'Image array');
// Create a 2D array image by concatenating the values in a 1D array image
// along the 1-axis using `toArray(1)`. For a 3D array, apply `toArray(2)` to
// the result.
var arrayImg2D = arrayImg1D.toArray(1);
print('2D array image (pixel)', sampArrImg(arrayImg2D));
// [[0],
// [1],
// [2]]
Python setup
See the
Python Environment page for information on the Python API and using
geemap
for interactive development.
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 3-band image of constants.
img = ee.Image([0, 1, 2])
display('3-band image', img)
# Convert the 3-band image to an array image. The resulting array image has a
# single band named "array". The "array" band stores the per-pixel band values
# from the input ee.Image as a 1D array.
array_img_1_d = img.toArray()
display('1D array image', array_img_1_d)
# Sample a single pixel to see its 1D array using the `samp_arr_img` function
# defined above. Similar arrays are present for all pixels in a given array
# image looking at just one helps conceptualize the structure.
display('1D array image (pixel)', samp_arr_img(array_img_1_d))
# [0, 1, 2]
# Array images can be displayed to the Code Editor map and queried with the
# inspector tool. Per-pixel, the first element in the array is shown.
# Single-band grayscale is used to represent the data. Style parameters `min`
# and `max` are valid. Styling the layer with the Code Editor's layer
# visualization tool is invalid.
m = geemap.Map()
m.add_layer(array_img_1_d, {'min': 0, 'max': 2}, 'Image array')
display(m)
# Create a 2D array image by concatenating the values in a 1D array image
# along the 1-axis using `toArray(1)`. For a 3D array, apply `toArray(2)` to
# the result.
array_img_2_d = array_img_1_d.toArray(1)
display('2D array image (pixel)', samp_arr_img(array_img_2_d))
# [[0],
# [1],
# [2]]