ee.ImageCollection.toArrayPerBand

Nối nhiều hình ảnh thành một hình ảnh mảng duy nhất.

Cách sử dụngGiá trị trả về
ImageCollection.toArrayPerBand(axis, dropMasked)Hình ảnh
Đối sốLoạiThông tin chi tiết
this: collectionImageCollectionHình ảnh cần nối. Mỗi dải tần sẽ được nối riêng, vì vậy, tất cả hình ảnh phải có cùng tính chất và hình dạng trên mỗi dải tần, ngoại trừ độ dài dọc theo trục nối.
axisSố nguyên, mặc định: 0Trục để nối; phải có giá trị tối thiểu là 0 và tối đa là kích thước tối thiểu của bất kỳ dải nào trong tập hợp.
dropMaskedBoolean, mặc định: falseNếu là false (mặc định), giá trị mặt nạ của pixel đầu ra là giá trị tối thiểu của mặt nạ của các pixel đầu vào. Nếu bất kỳ hình ảnh nào trong bộ sưu tập nằm trong hộp giới hạn tính toán bị che hoàn toàn ở một điểm ảnh, thì điểm ảnh đầu ra đó sẽ bị che. Do đó, mọi mảng pixel đầu ra chưa được che đều sẽ có cùng kích thước. Nếu đúng, giá trị mặt nạ của pixel đầu ra là giá trị tối đa của mặt nạ đầu vào. Các hình ảnh được che hoàn toàn tại điểm ảnh đó sẽ bị bỏ qua và không đóng góp dữ liệu cho mảng đầu ra. Do đó, các mảng đầu ra không nhất thiết phải có cùng kích thước cho mỗi pixel.

Ví dụ

Trình chỉnh sửa mã (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]

Thiết lập Python

Hãy xem trang Môi trường Python để biết thông tin về Python API và cách sử dụng geemap cho quá trình phát triển có tính tương tác.

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]