ImageCollection'ı küçültme

ImageCollection içinde resimleri birleştirmek için imageCollection.reduce()'u kullanın. Bu işlem, koleksiyondaki tüm resimleri, örneğin resimlerin minimum, maksimum, ortalama veya standart sapmasını temsil eden tek bir resimde birleştirir. (Azaltıcılarla ilgili daha fazla bilgi için Azaltıcı bölümüne bakın). Örneğin, bir koleksiyondan medyan değer resmi oluşturmak için:

Kod Düzenleyici (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 kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Çıkış resmindeki her konumda, her bantta piksel değeri, giriş görüntülerindeki (koleksiyondaki görüntüler) tüm maskesiz piksellerin medyanıdır. Önceki örnekte median(), aşağıdaki çağrı için kolaylık sağlayan bir yöntemdir:

Kod Düzenleyici (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 kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Kolaylık yöntemi yerine reduce() kullanılması nedeniyle bant adlarının farklı olduğunu unutmayın. Daha açık belirtmek gerekirse, azaltıcının adları bant adlarına eklenmiştir.

reduce() kullanarak daha karmaşık azaltmalar da yapabilirsiniz. Örneğin, bir koleksiyondaki uzun vadeli doğrusal eğilimi hesaplamak için doğrusal regresyon azaltıcılardan birini kullanın. Aşağıdaki kod, MODIS Gelişmiş Bitki Örtüsü İndeksi'nin (EVI) doğrusal trendini hesaplar:

Kod Düzenleyici (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 kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Bu örnekte azaltmanın çıktısının, doğrusal regresyonun eğimi (scale) için bir bant ve kesme noktası (offset) için bir bant içeren iki bantlı bir resim olduğunu unutmayın. ImageCollection değerini tek bir Image değerine indirmek için kullanılabilen azaltıcıların listesini görmek üzere API belgelerini inceleyin.

Kompozitlerin projeksiyonu yoktur.

Bir resim koleksiyonunun azaltılmasıyla oluşturulan karma resimler, istenen herhangi bir projeksiyonda piksel oluşturabilir ve bu nedenle sabit bir çıkış projeksiyonuna sahip değildir. Bunun yerine, birleşik görüntüler 1 derece çözünürlüklü piksellerle WGS-84'ün varsayılan projeksiyonuna sahiptir. Varsayılan projeksiyona sahip birleşenler, istenen çıkış projeksiyonunda hesaplanır. Bir istek, birleşik öğenin Kod Düzenleyici'de görüntülenmesi (Kod Düzenleyici'nin ölçeği ve projeksiyonunu nasıl belirlediği hakkında bilgi edinin) veya ReduceRegion ya da Export gibi bir toplamada olduğu gibi bir projeksiyon/ölçek açıkça belirtilerek gerçekleşir.