ee.Array.slice

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

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

أمثلة

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

var array1x6 = ee.Array([1, 2, 3, 4, 5, 6]);
print(array1x6.slice());  // [1,2,3,4,5,6]
print(array1x6.slice(0));  // [1,2,3,4,5,6]
print(array1x6.slice(0, 0, 6, 1));  // [1,2,3,4,5,6]
print(array1x6.slice(0, 0, 10, 1));  // [1,2,3,4,5,6]

print(array1x6.slice(0, 2));  // [3,4,5,6]
print(array1x6.slice(0, 5));  // [6]
print(array1x6.slice(0, 6));  // []
print(array1x6.slice(0, 0, 2));  // [1,2]
print(array1x6.slice(0, 0, 0));  // []

// Negative start and end.
print(array1x6.slice(0, 0, -3));  // [1,2,3]
print(array1x6.slice(0, -2, 6));  // [5,6]

print(array1x6.slice(0, 0, 6, 2));  // [1,3,5]
print(array1x6.slice(0, 0, 6, 3));  // [1,4]
print(array1x6.slice(0, 0, 6, 4));  // [1,5]
print(array1x6.slice(0, 0, 6, 6));  // [1]

print(array1x6.slice(0, 2, 6, 2));  // [3,5]

var array3x2 = ee.Array([[1, 2], [3, 4], [5, 6]]);
print(array3x2.slice());  // [[1,2],[3,4],[5,6]]
print(array3x2.slice(0));  // [[1,2],[3,4],[5,6]]
print(array3x2.slice(0, 0));  // [[1,2],[3,4],[5,6]]
print(array3x2.slice(0, 0, 1));  // [[1,2]]
print(array3x2.slice(0, 0, 2));  // [[1,2],[3,4]]
print(array3x2.slice(0, 0, 3, 1));  // [[1,2],[3,4],[5,6]]
print(array3x2.slice(0, 0, 3, 2));  // [[1,2],[5,6]]
print(array3x2.slice(0, 1, 3, 2));  // [[3,4]]
print(array3x2.slice(0, 0, 3, 3));  // [[1,2]]

print(array3x2.slice(1));  // [[1,2],[3,4],[5,6]]
print(array3x2.slice(1, 1));  // [[2],[4],[6]]
print(array3x2.slice(1, 0, 1));  // [[1],[3],[5]]

var empty = ee.Array([], ee.PixelType.int8());
print(empty.slice());  // []
print(empty.slice(0));  // []
print(empty.slice(0, 0, 0, 1));  // []

إعداد Python

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

import ee
import geemap.core as geemap

Colab (Python)

array1x6 = ee.Array([1, 2, 3, 4, 5, 6])
display(array1x6.slice())  # [1, 2, 3, 4, 5, 6]
display(array1x6.slice(0))  # [1, 2, 3, 4, 5, 6]
display(array1x6.slice(0, 0, 6, 1))  # [1, 2, 3, 4, 5, 6]
display(array1x6.slice(0, 0, 10, 1))  # [1, 2, 3, 4, 5, 6]

display(array1x6.slice(0, 2))  # [3, 4, 5, 6]
display(array1x6.slice(0, 5))  # [6]
display(array1x6.slice(0, 6))  # []
display(array1x6.slice(0, 0, 2))  # [1, 2]
display(array1x6.slice(0, 0, 0))  # []

# Negative start and end.
display(array1x6.slice(0, 0, -3))  # [1, 2, 3]
display(array1x6.slice(0, -2, 6))  # [5, 6]

display(array1x6.slice(0, 0, 6, 2))  # [1, 3, 5]
display(array1x6.slice(0, 0, 6, 3))  # [1, 4]
display(array1x6.slice(0, 0, 6, 4))  # [1, 5]
display(array1x6.slice(0, 0, 6, 6))  # [1]

display(array1x6.slice(0, 2, 6, 2))  # [3, 5]

array3x2 = ee.Array([[1, 2], [3, 4], [5, 6]])
display(array3x2.slice())  # [[1, 2], [3, 4], [5, 6]]
display(array3x2.slice(0))  # [[1, 2], [3, 4], [5, 6]]
display(array3x2.slice(0, 0))  # [[1, 2],[3, 4],[5, 6]]
display(array3x2.slice(0, 0, 1))  # [[1, 2]]
display(array3x2.slice(0, 0, 2))  # [[1, 2], [3, 4]]
display(array3x2.slice(0, 0, 3, 1))  # [[1, 2], [3, 4], [5, 6]]
display(array3x2.slice(0, 0, 3, 2))  # [[1, 2], [5, 6]]
display(array3x2.slice(0, 1, 3, 2))  # [[3, 4]]
display(array3x2.slice(0, 0, 3, 3))  # [[1, 2]]

display(array3x2.slice(1))  # [[1, 2], [3, 4], [5, 6]]
display(array3x2.slice(1, 1))  # [[2], [4], [6]]
display(array3x2.slice(1, 0, 1))  # [[1], [3], [5]]

empty = ee.Array([], ee.PixelType.int8())
display(empty.slice())  # []
display(empty.slice(0))  # []
display(empty.slice(0, 0, 0, 1))  # []