تقليل ImageCollection

لتركيب الصور في ImageCollection، استخدِم imageCollection.reduce(). سيؤدي ذلك إلى دمج جميع الصور في المجموعة في صورة واحدة تمثّل، على سبيل المثال، الحد الأدنى أو الحد الأقصى أو المتوسط أو الانحراف المعياري للصور. (اطّلِع على قسم "العوامل المُختزلة" للحصول على مزيد من المعلومات عن عوامل الاختزال). على سبيل المثال، لإنشاء صورة لقيمة متوسطة من مجموعة ما:

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

// Load a Landsat 8 collection for a single path-row.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01');

// Compute a median image and display.
var median = collection.median();
Map.setCenter(-122.3578, 37.7726, 12);
Map.addLayer(median, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Median');

إعداد لغة Python

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

import ee
import geemap.core as geemap

Colab (Python)

# Load a Landsat 8 collection for a single path-row.
collection = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01')
)

# Compute a median image and display.
median = collection.median()
m = geemap.Map()
m.set_center(-122.3578, 37.7726, 12)
m.add_layer(median, {'bands': ['B4', 'B3', 'B2'], 'max': 0.3}, 'Median')
m

في كل موقع في الصورة الناتجة، وفي كل نطاق، تكون قيمة البكسل هي المتوسط لجميع البكسلات غير المحجوبة في صور الإدخال (الصور في المجموعة). في المثال السابق ، median() هي طريقة مساعدة للاستدعاء التالي:

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

// Reduce the collection with a median reducer.
var median = collection.reduce(ee.Reducer.median());

// Display the median image.
Map.addLayer(median,
             {bands: ['B4_median', 'B3_median', 'B2_median'], max: 0.3},
             'Also median');

إعداد لغة Python

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

import ee
import geemap.core as geemap

Colab (Python)

# Reduce the collection with a median reducer.
median = collection.reduce(ee.Reducer.median())

# Display the median image.
m.add_layer(
    median,
    {'bands': ['B4_median', 'B3_median', 'B2_median'], 'max': 0.3},
    'Also median',
)
m

يُرجى العلم أنّ أسماء النطاقات تختلف نتيجة استخدام reduce() بدلاً من طريقة تسهيل الاستخدام. على وجه التحديد، تم إلحاق أسماء المُخفِّض بأسماء النطاقات.

من الممكن أيضًا إجراء عمليات تقليل أكثر تعقيدًا باستخدام reduce(). على سبيل المثال، لحساب الاتجاه الخطي على المدى الطويل على مستوى مجموعة، استخدِم أحد أدوات تقليل الانحدار الخطي. تحسب التعليمة البرمجية التالية المؤشر الخطي لمؤشر MODIS Enhanced Vegetation Index (EVI):

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

// This function adds a band representing the image timestamp.
var addTime = function(image) {
  return image.addBands(image.metadata('system:time_start')
    // Convert milliseconds from epoch to years to aid in
    // interpretation of the following trend calculation.
    .divide(1000 * 60 * 60 * 24 * 365));
};

// Load a MODIS collection, filter to several years of 16 day mosaics,
// and map the time band function over it.
var collection = ee.ImageCollection('MODIS/006/MYD13A1')
  .filterDate('2004-01-01', '2010-10-31')
  .map(addTime);

// Select the bands to model with the independent variable first.
var trend = collection.select(['system:time_start', 'EVI'])
  // Compute the linear trend over time.
  .reduce(ee.Reducer.linearFit());

// Display the trend with increasing slopes in green, decreasing in red.
Map.setCenter(-96.943, 39.436, 5);
Map.addLayer(
    trend,
    {min: 0, max: [-100, 100, 10000], bands: ['scale', 'scale', 'offset']},
    'EVI trend');

إعداد لغة Python

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

import ee
import geemap.core as geemap

Colab (Python)

# This function adds a band representing the image timestamp.
def add_time(image):
  return image.addBands(
      image.metadata('system:time_start')
      # Convert milliseconds from epoch to years to aid in
      # interpretation of the following trend calculation.
      .divide(1000 * 60 * 60 * 24 * 365)
  )


# Load a MODIS collection, filter to several years of 16 day mosaics,
# and map the time band function over it.
collection = (
    ee.ImageCollection('MODIS/006/MYD13A1')
    .filterDate('2004-01-01', '2010-10-31')
    .map(add_time)
)

# Select the bands to model with the independent variable first.
trend = collection.select(['system:time_start', 'EVI']).reduce(
    # Compute the linear trend over time.
    ee.Reducer.linearFit()
)

# Display the trend with increasing slopes in green, decreasing in red.
m.set_center(-96.943, 39.436, 5)
m = geemap.Map()
m.add_layer(
    trend,
    {
        'min': 0,
        'max': [-100, 100, 10000],
        'bands': ['scale', 'scale', 'offset'],
    },
    'EVI trend',
)
m

يُرجى العِلم أنّ نتيجة عملية التقليل في هذا المثال هي صورة مؤلفة من شريطَين يتضمّن أحدهما منحدر الانحدار الخطي (scale) والآخر قيمة القطع (offset). يمكنك تصفُّح مستندات واجهة برمجة التطبيقات للاطّلاع على قائمة بأدوات التقليل المتاحة لتقليل ImageCollection إلى Image واحد.

لا تتضمّن التصاميم المركّبة أيّ إسقاط.

إنّ الصور المركبة التي يتم إنشاؤها من خلال تصغير مجموعة صور يمكنها إنتاج بكسل في أي إسقاط مطلوب، وبالتالي لا يكون لها إسقاط ثابت للإخراج. بدلاً من ذلك، تتضمّن التصاميم المجمّعة إسقاط WGS-84 الافتراضى بدقة بكسل درجة واحدة. سيتم احتساب العناصر المركبة التي تستخدم الإسقاط التلقائي بأي إسقاط ناتج مطلوب. يحدث الطلب من خلال عرض العنصر المركب في "محرر الرموز" (تعرَّف على كيفية تحديد "محرر الرموز" لمقياس والإسقاط)، أو من خلال تحديد إسقاط/مقياس بشكل صريح كما هو الحال في التجميع مثل ReduceRegion أو Export.