ee.ImageCollection.toArrayPerBand

Łączy wiele obrazów w jeden obraz tablicy.

WykorzystanieZwroty
ImageCollection.toArrayPerBand(axis, dropMasked)Obraz
ArgumentTypSzczegóły
to: collectionImageCollectionObrazy do połączenia. Dla każdego pasma wykonywana jest osobna konkatenacja, więc wszystkie obrazy muszą mieć te same wymiary i kształt w każdym pasmie, z wyjątkiem długości wzdłuż osi konkatenacji.
axisLiczba całkowita, domyślnie: 0Oś, wzdłuż której ma nastąpić łączenie. Musi być większa lub równa 0 i mniejsza lub równa minimalnemu wymiarowi dowolnego pasma w kolekcji.
dropMaskedWartość logiczna, domyślnie: falseJeśli wartość to false (domyślnie), wartość maski piksela wyjściowego jest minimalną wartością masek pikseli wejściowych. Jeśli jakikolwiek obraz w kolekcji w ramce ograniczającej obliczenia jest całkowicie zamaskowany w pikselu, ten piksel wyjściowy zostanie zamaskowany. Dzięki temu każda niezasłonięta tablica pikseli wyjściowych będzie miała ten sam rozmiar. Jeśli wartość jest prawdziwa, wartość maski piksela wyjściowego jest maksymalną wartością maski danych wejściowych. Całkowicie zamaskowane obrazy w tym pikselu są ignorowane i nie dostarczają danych do tablicy wyjściowej. Tablice wyjściowe nie muszą więc mieć tego samego rozmiaru dla każdego piksela.

Przykłady

Edytor kodu (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]

Konfiguracja Pythona

Informacje o interfejsie API dla Pythona oraz o używaniu geemap do interaktywnego programowania znajdziesz na stronie środowiska 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]