ee.ImageCollection.toArrayPerBand

چندین تصویر را در یک تصویر آرایه‌ای واحد به هم متصل می‌کند.

کاربرد بازگشت‌ها
ImageCollection. toArrayPerBand ( axis , dropMasked ) تصویر
استدلال نوع جزئیات
این: collection مجموعه تصاویر تصاویر برای الحاق. یک الحاق جداگانه برای هر باند انجام می‌شود، بنابراین همه تصاویر باید ابعاد و شکل یکسانی برای هر باند داشته باشند، به جز طول در امتداد محور الحاق.
axis عدد صحیح، پیش‌فرض: ۰ محوری که باید در امتداد آن الحاق شود؛ باید حداقل ۰ و حداکثر حداقل بُعد هر باندی در مجموعه باشد.
dropMasked بولی، پیش‌فرض: false اگر مقدار آن false (پیش‌فرض) باشد، مقدار ماسک پیکسل خروجی، حداقل مقدار ماسک پیکسل‌های ورودی است. اگر هر تصویری در مجموعه درون کادر محدوده محاسبات، در یک پیکسل کاملاً ماسک شده باشد، آن پیکسل خروجی نیز ماسک خواهد شد. در نتیجه، هر آرایه پیکسل خروجی بدون ماسک، اندازه یکسانی خواهد داشت. اگر مقدار آن true باشد، مقدار ماسک پیکسل خروجی، حداکثر مقدار ماسک ورودی‌ها است. تصاویر کاملاً ماسک شده در آن پیکسل نادیده گرفته می‌شوند و داده‌ای به آرایه خروجی اضافه نمی‌کنند. بنابراین، آرایه‌های خروجی لزوماً برای هر پیکسل اندازه یکسانی نخواهند داشت.

مثال‌ها

ویرایشگر کد (جاوااسکریپت)

// 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]

تنظیمات پایتون

برای اطلاعات بیشتر در مورد API پایتون و استفاده از geemap برای توسعه تعاملی، به صفحه محیط پایتون مراجعه کنید.

import ee
import geemap.core as geemap

کولب (پایتون)

# 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]