ImageCollection 감소

ImageCollection로 표시된 이미지의 시계열에서 중간값을 취해야 하는 예를 생각해 보겠습니다. ImageCollection를 줄이려면 imageCollection.reduce()를 사용합니다. 이렇게 하면 이미지 모음이 그림 1과 같이 개별 이미지로 축소됩니다. 구체적으로 출력은 픽셀 단위로 계산되므로 출력의 각 픽셀은 해당 위치에 있는 컬렉션의 모든 이미지의 중간값으로 구성됩니다. 평균, 합계, 분산, 임의 백분위수와 같은 다른 통계를 가져오려면 적절한 감소기를 선택하고 적용해야 합니다. 현재 사용 가능한 모든 리듀서의 목록은 코드 편집기문서 탭을 참고하세요. 최솟값, 최댓값, 평균과 같은 기본 통계의 경우 ImageCollection에는 min(), max(), mean()와 같은 바로가기 메서드가 있습니다. 이러한 메서드는 reduce()를 호출하는 것과 정확히 동일한 방식으로 작동하지만 결과 밴드 이름에 리듀서의 이름이 추가되지는 않습니다.

imageCollection.reduce diagram
그림 1. ImageCollection에 적용된 ee.Reducer의 그림

ImageCollection 축소의 예로 경로 및 행별로 필터링된 Landsat 5 이미지 모음을 생각해 보겠습니다. 다음 코드는 reduce()를 사용하여 컬렉션을 하나의 Image로 줄입니다. 여기서 중간값 감소기는 설명 목적으로만 사용됩니다.

코드 편집기 (JavaScript)

// Load an image collection, filtered so it's not too much data.
var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1')
  .filterDate('2008-01-01', '2008-12-31')
  .filter(ee.Filter.eq('WRS_PATH', 44))
  .filter(ee.Filter.eq('WRS_ROW', 34));

// Compute the median in each band, each pixel.
// Band names are B1_median, B2_median, etc.
var median = collection.reduce(ee.Reducer.median());

// The output is an Image.  Add it to the map.
var vis_param = {bands: ['B4_median', 'B3_median', 'B2_median'], gamma: 1.6};
Map.setCenter(-122.3355, 37.7924, 9);
Map.addLayer(median, vis_param);

Python 설정

Python API 및 대화형 개발을 위한 geemap 사용에 관한 자세한 내용은 Python 환경 페이지를 참고하세요.

import ee
import geemap.core as geemap

Colab (Python)

# Load an image collection, filtered so it's not too much data.
collection = (
    ee.ImageCollection('LANDSAT/LT05/C02/T1')
    .filterDate('2008-01-01', '2008-12-31')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
)

# Compute the median in each band, each pixel.
# Band names are B1_median, B2_median, etc.
median = collection.reduce(ee.Reducer.median())

# The output is an Image.  Add it to the map.
vis_param = {'bands': ['B4_median', 'B3_median', 'B2_median'], 'gamma': 1.6}
m = geemap.Map()
m.set_center(-122.3355, 37.7924, 9)
m.add_layer(median, vis_param)
m

이렇게 하면 멀티밴드 Image가 반환되며, 각 픽셀은 해당 픽셀 위치의 ImageCollection에서 마스크가 적용되지 않은 모든 픽셀의 중앙값입니다. 구체적으로, 입력 이미지의 각 밴드에 대해 감소기가 반복되었으므로 각 밴드에서 중간값이 독립적으로 계산됩니다. 밴드 이름에 'B1_median', 'B2_median' 등의 감소자의 이름이 추가됩니다. 출력은 그림 2와 같이 표시됩니다.

이미지 컬렉션 축소에 관한 자세한 내용은 ImageCollection 문서의 축소 섹션을 참고하세요. 특히 ImageCollection를 줄여서 생성된 이미지에는 프로젝션이 없습니다. 즉, ImageCollection 감소에 의해 계산된 이미지 출력이 포함된 모든 계산에서 배율을 명시적으로 설정해야 합니다.

ImageCollection.reduce 출력
그림 2. 2008년 Landsat 5 장면의 중간값을 합성한 가상 컬러 이미지입니다.