ee.ImageCollection.toArrayPerBand

Объединяет несколько изображений в один массив изображений.

Использование Возвраты
ImageCollection. toArrayPerBand ( axis , dropMasked ) Изображение
Аргумент Тип Подробности
это: collection Коллекция изображений Изображения для объединения. Объединение выполняется отдельно для каждого канала, поэтому все изображения в каждом канале должны иметь одинаковую размерность и форму, за исключением длины вдоль оси объединения.
axis Целое число, по умолчанию: 0 Ось, вдоль которой производится конкатенация; должна быть не менее 0 и не более минимального размера любой полосы в коллекции.
dropMasked Логическое значение, по умолчанию: false Если значение равно false (по умолчанию), значение маски выходного пикселя равно минимальному значению масок входных пикселей. Если какое-либо изображение в коллекции внутри вычислительного ограничивающего прямоугольника полностью замаскировано в определенном пикселе, этот выходной пиксель также будет замаскирован. В результате каждый массив незамаскированных выходных пикселей будет иметь одинаковый размер. Если значение маски выходного пикселя равно true, значение маски выходного пикселя равно максимальному значению масок входных пикселей. Полностью замаскированные изображения в этом пикселе игнорируются и не вносят данные в выходной массив. Поэтому выходные массивы не обязательно будут иметь одинаковый размер для каждого пикселя.

Примеры

Редактор кода (JavaScript)

// A function to extract and print the array of a selected pixel.
function sampleArrayImage(arrImg) {
  var point = ee.Geometry.Point([0, 0]);
  return arrImg.sample(point, 1).first().get('b1');
}

// Define three single-band constant images with unified data types.
var img0 = ee.Image(0).byte().rename('b1');
var img1 = ee.Image(1).byte().rename('b1');
var img2 = ee.Image(2).byte().rename('b1');

// 1. Basic usage: concatenate fully valid images along axis 0.
var colSimple = ee.ImageCollection([img0, img1, img2]);

var arrayBasic = colSimple.toArrayPerBand();
print('Basic toArrayPerBand (pixel array):', sampleArrayImage(arrayBasic));
// Result: [0, 1, 2]

// 2. Masking behavior: introduce an image with a masked pixel.
// Update mask so img1 has no valid data at the sampled pixel.
var img1Masked = img1.updateMask(0);
var colMasked = ee.ImageCollection([img0, img1Masked, img2]);

// By default (dropMasked = false), if any input image is masked at a pixel,
// the output array is masked at that pixel. Since sampling a masked pixel
// returns no features, we inspect the output image's mask directly.
var arrayDefault = colMasked.toArrayPerBand();
print('Default masking behavior (pixel mask is 0):',
      sampleArrayImage(arrayDefault.mask()));
// Result: 0

// With dropMasked = true, if any input image is masked at a specific pixel,
// its value is omitted from the output array at that pixel. As a result,
// array lengths can vary across different pixels.
var arrayDropped = colMasked.toArrayPerBand(0, true);
print('dropMasked=true (pixel array omits image-specific masked pixels):',
      sampleArrayImage(arrayDropped));
// Result: [0, 2]

настройка Python

Информацию об API Python и использовании geemap для интерактивной разработки можно найти на странице «Среда Python» .

import ee
import geemap.core as geemap

Colab (Python)

# A function to extract and print the array of a selected pixel.
def sample_array_image(arr_img):
  point = ee.Geometry.Point([0, 0])
  return arr_img.sample(point, 1).first().get('b1')


# Define three single-band constant images with unified data types.
img0 = ee.Image(0).byte().rename('b1')
img1 = ee.Image(1).byte().rename('b1')
img2 = ee.Image(2).byte().rename('b1')

# 1. Basic usage: concatenate fully valid images along axis 0.
col_simple = ee.ImageCollection([img0, img1, img2])

array_basic = col_simple.toArrayPerBand()
display('Basic toArrayPerBand (pixel array):', sample_array_image(array_basic))
# Result: [0, 1, 2]

# 2. Masking behavior: introduce an image with a masked pixel.
# Update mask so img1 has no valid data at the sampled pixel.
img1_masked = img1.updateMask(0)
col_masked = ee.ImageCollection([img0, img1_masked, img2])

# By default (dropMasked = False), if any input image is masked at a pixel,
# the output array is masked at that pixel. Since sampling a masked pixel
# returns no features, we inspect the output image's mask directly.
array_default = col_masked.toArrayPerBand()
display(
    'Default masking behavior (pixel mask is 0):',
    sample_array_image(array_default.mask()),
)
# Result: 0

# With dropMasked = true, if any input image is masked at a specific pixel,
# its value is omitted from the output array at that pixel. As a result,
# array lengths can vary across different pixels.
array_dropped = col_masked.toArrayPerBand(0, True)
display(
    'dropMasked=True (pixel array omits image-specific masked pixels):',
    sample_array_image(array_dropped),
)
# Result: [0, 2]