ee.Image.arraySlice

تنشئ هذه الدالة مصفوفة فرعية من خلال تقسيم كل موضع على طول المحور المحدّد من "البداية" (شاملة) إلى "النهاية" (غير شاملة) بزيادات مقدارها "الخطوة". ستحتوي النتيجة على عدد الأبعاد نفسه في الإدخال، والطول نفسه في جميع الاتجاهات باستثناء محور التقسيم، حيث سيكون الطول هو عدد المواضع من "البداية" إلى "النهاية" حسب "الخطوة" التي تقع في نطاق طول مصفوفة الإدخال على طول "المحور". وهذا يعني أنّ النتيجة يمكن أن تكون بطول 0 على طول المحور المحدّد إذا كانت start=end، أو إذا كانت قيمتا البداية أو النهاية خارج النطاق تمامًا.

الاستخدامالمرتجعات
Image.arraySlice(axis, start, end, step)صورة
الوسيطةالنوعالتفاصيل
هذا: inputصورةصورة مصفوفة الإدخال
axisعدد صحيح، القيمة التلقائية: 0المحور المطلوب تقسيمه إلى مجموعات فرعية
startالصورة، القيمة التلقائية: nullإحداثيات الشريحة الأولى (شاملة) على طول "المحور". تُستخدَم الأرقام السالبة لتحديد موضع بداية التقطيع بالنسبة إلى نهاية المصفوفة، حيث تبدأ القيمة -1 من الموضع الأخير على المحور، وتبدأ القيمة -2 من الموضع قبل الأخير، وما إلى ذلك. يجب أن يكون هناك نطاق واحد لفهارس البداية، أو نطاق واحد لكل نطاق "إدخال". في حال عدم ضبط هذه الوسيطة أو إخفائها في بعض وحدات البكسل، ستبدأ الشريحة عند وحدة البكسل هذه بالفهرس 0.
endالصورة، القيمة التلقائية: nullالإحداثي (الحصري) الذي يجب التوقف عنده عن أخذ الشرائح. سيكون هذا هو طول المحور المحدّد تلقائيًا. تُستخدَم الأرقام السالبة لتحديد موضع نهاية التقطيع بالنسبة إلى نهاية المصفوفة، حيث سيؤدي الرقم -1 إلى استبعاد الموضع الأخير، وسيؤدي الرقم -2 إلى استبعاد الموضعين الأخيرين، وما إلى ذلك. يجب أن يكون هناك نطاق واحد لفهارس النهاية، أو نطاق واحد لكل نطاق "إدخال". إذا لم يتم ضبط هذه الوسيطة أو إخفاؤها في بعض وحدات البكسل، ستنتهي الشريحة عند وحدة البكسل هذه بعد الفهرس الأخير مباشرةً.
stepعدد صحيح، القيمة التلقائية: 1الفصل بين الشرائح على طول "المحور"؛ سيتم أخذ شريحة عند كل مضاعف كامل من "الخطوة" من "البداية" (شاملة) إلى "النهاية" (غير شاملة). يجب أن تكون موجبة.

أمثلة

محرّر الرموز البرمجية (JavaScript)

// A function to print arrays for a selected pixel in the following examples.
function sampArrImg(arrImg) {
  var point = ee.Geometry.Point([-121, 42]);
  return arrImg.sample(point, 500).first().get('array');
}

// Create a 1D array image with length 12.
var arrayImg1D = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray();
print('1D array image (pixel)', sampArrImg(arrayImg1D));
// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

// Get the first 3 elements.
print('1D array image first 3 elements (pixel)',
      sampArrImg(arrayImg1D.arraySlice(0, 0, 3)));
// [0, 1, 2]

// Get the last 3 elements.
print('1D array image last 3 elements (pixel)',
      sampArrImg(arrayImg1D.arraySlice(0, -3)));
// [9, 10, 11]

// Get elements at index positions 3 through 5 (0-based).
print('1D array image elements at index positions 3 through 5 (pixel)',
      sampArrImg(arrayImg1D.arraySlice(0, 3, 6)));
// [3, 4, 5]

// Get elements at index positions 4 through end (0-based).
print('1D array image elements at index positions 4 through end (pixel)',
      sampArrImg(arrayImg1D.arraySlice(0, 4)));
// [4, 5, 6, 7, 8, 9, 10, 11]

// Get elements using a step of 3.
print('1D array image elements at a step of 3 (pixel)',
      sampArrImg(arrayImg1D.arraySlice(0, 0, null, 3)));
// [0, 3, 6, 9]

// Create a 2D array image with 3 rows and 4 columns.
var arrayImg2D = arrayImg1D.arrayReshape(ee.Image([3, 4]).toArray(), 2);
print('2D array image (pixel)', sampArrImg(arrayImg2D));
// [[0, 1,  2,  3],
//  [4, 5,  6,  7],
//  [8, 9, 10, 11]]

// Get the second row.
print('2D array image second row (pixel)',
      sampArrImg(arrayImg2D.arraySlice(0, 1, 2)));
// [[4, 5, 6, 7]

// Get the second column.
print('2D array image second column (pixel)',
      sampArrImg(arrayImg2D.arraySlice(1, 1, 2)));
// [[1],
//  [5],
//  [9]]

// Get all columns except the last.
print('2D array image all columns except last (pixel)',
      sampArrImg(arrayImg2D.arraySlice(1, 0, -1)));
// [[0, 1,  2],
//  [4, 5,  6],
//  [8, 9, 10]]

إعداد Python

راجِع صفحة بيئة Python للحصول على معلومات حول واجهة برمجة التطبيقات Python واستخدام geemap للتطوير التفاعلي.

import ee
import geemap.core as geemap

Colab (Python)

# A function to print arrays for a selected pixel in the following examples.
def samp_arr_img(arr_img):
  point = ee.Geometry.Point([-121, 42])
  return arr_img.sample(point, 500).first().get('array')

# Create a 1D array image with length 12.
array_img_1d = ee.Image([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).toArray()
print('1D array image (pixel):', samp_arr_img(array_img_1d).getInfo())
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

# Get the first 3 elements.
print('1D array image first 3 elements (pixel):',
      samp_arr_img(array_img_1d.arraySlice(0, 0, 3)).getInfo())
# [0, 1, 2]

# Get the last 3 elements.
print('1D array image last 3 elements (pixel):',
      samp_arr_img(array_img_1d.arraySlice(0, -3)).getInfo())
# [9, 10, 11]

# Get elements at index positions 3 through 5 (0-based).
print('1D array image elements at index positions 3 through 5 (pixel):',
      samp_arr_img(array_img_1d.arraySlice(0, 3, 6)).getInfo())
# [3, 4, 5]

# Get elements at index positions 4 through end (0-based).
print('1D array image elements at index positions 4 through end (pixel)',
      samp_arr_img(array_img_1d.arraySlice(0, 4)).getInfo())
# [4, 5, 6, 7, 8, 9, 10, 11]

# Get elements using a step of 3.
print('1D array image elements at a step of 3 (pixel)',
      samp_arr_img(array_img_1d.arraySlice(0, 0, None, 3)).getInfo())
# [0, 3, 6, 9]

# Create a 2D array image with 3 rows and 4 columns.
array_img_2d = array_img_1d.arrayReshape(ee.Image([3, 4]).toArray(), 2)
print('2D array image (pixel)', samp_arr_img(array_img_2d).getInfo())
# [[0, 1,  2,  3],
#  [4, 5,  6,  7],
#  [8, 9, 10, 11]]

# Get the second row.
print('2D array image second row (pixel):',
      samp_arr_img(array_img_2d.arraySlice(0, 1, 2)).getInfo())
# [[4, 5, 6, 7]

# Get the second column.
print('2D array image second column (pixel):',
      samp_arr_img(array_img_2d.arraySlice(1, 1, 2)).getInfo())
# [[1],
#  [5],
#  [9]]

# Get all columns except the last.
print('2D array image all columns except last (pixel):',
      samp_arr_img(array_img_2d.arraySlice(1, 0, -1)).getInfo())
# [[0, 1,  2],
#  [4, 5,  6],
#  [8, 9, 10]]