ee.ImageCollection.toArrayPerBand

Menggabungkan beberapa gambar menjadi satu gambar array.

PenggunaanHasil
ImageCollection.toArrayPerBand(axis, dropMasked)Gambar
ArgumenJenisDetail
ini: collectionImageCollectionGambar yang akan digabungkan. Penggabungan terpisah dilakukan per band, sehingga semua gambar harus memiliki dimensi dan bentuk yang sama per band, kecuali panjang di sepanjang sumbu penggabungan.
axisBilangan bulat, default: 0Sumbu untuk menggabungkan; harus minimal 0 dan maksimal dimensi minimum dari setiap band dalam koleksi.
dropMaskedBoolean, default: falseJika salah (default), nilai mask piksel output adalah minimum dari mask piksel input. Jika ada gambar dalam koleksi di dalam kotak pembatas komputasi yang sepenuhnya ditutupi pada piksel, piksel output tersebut akan ditutupi. Akibatnya, setiap array piksel output yang tidak tertutup akan memiliki ukuran yang sama. Jika benar, nilai mask piksel output adalah nilai maksimum mask input. Gambar yang sepenuhnya tertutup di piksel tersebut diabaikan dan tidak memberikan kontribusi data ke array output. Oleh karena itu, array output tidak selalu memiliki ukuran yang sama untuk setiap piksel.

Contoh

Editor Kode (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]

Penyiapan Python

Baca halaman Lingkungan Python untuk mengetahui informasi tentang Python API dan penggunaan geemap untuk pengembangan interaktif.

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]