Earth Engine에서 얻은 과학적 결과를 해석하려면 Earth Engine에서 크기를 처리하는 방식을 이해하는 것이 중요합니다. 여기서 크기는 픽셀 해상도를 의미합니다. 다른 GIS 및 이미지 처리 플랫폼과 달리 분석 규모는 입력이 아닌 출력에서 결정됩니다. 특히 결과, 표시할 이미지 또는 통계를 요청할 때 데이터가 분석에 입력되는 크기를 지정합니다. 이 개념은 그림 1에 설명되어 있습니다.

이미지 피라미드
Earth Engine의 이미지 애셋은 여러 크기의 이미지 피라미드로 존재합니다. 피라미딩 정책 (그림 1의 파선으로 표시됨)은 피라미드의 지정된 수준에서 각 픽셀이 다음 하위 수준의 2x2 픽셀 블록 집계에서 계산되는 방식을 결정합니다. 연속 값 이미지의 경우 피라미드 상위 수준의 픽셀 값은 다음 하위 수준의 픽셀 평균입니다. 불연속 값 이미지의 경우 피라미드 상위 수준의 픽셀 값은 다음 하위 수준의 픽셀 샘플 (일반적으로 왼쪽 상단 픽셀)입니다.
이미지 피라미드의 최하위 수준은 이미지 데이터가 Earth Engine으로 처리될 때의 기본 해상도 이미지 데이터를 나타냅니다. 처리 중에 데이터는 피라미드 정책에 따라 집계되어 상위 피라미드 수준을 만듭니다. 전체 이미지가 256x256픽셀 타일에 들어갈 때까지 데이터가 집계됩니다. 코드에서 이미지를 사용하면 Earth Engine은 분석에서 지정한 크기보다 작거나 같은 가장 가까운 크기의 피라미드 수준을 선택하고 필요에 따라 리샘플링합니다 (기본적으로 가장 가까운 이웃 사용).
분석 규모
Earth Engine의 분석 규모는 '가져오기' 기준으로 결정됩니다. 계산에 입력을 요청하는 규모는 출력에서 결정됩니다. 예를 들어 Code Editor 또는 geemap 지도 요소에 이미지를 추가하면 지도의 확대/축소 수준에 따라 이미지 피라미드에서 입력이 요청되는 배율이 결정됩니다. 다른 계산의 경우 scale
를 인수로 지정합니다. 예를 들어 원래 해상도가 30m인 Landsat 이미지의 NIR 밴드를 사용합니다.
코드 편집기 (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4'); var printAtScale = function(scale) { print('Pixel value at '+scale+' meters scale', image.reduceRegion({ reducer: ee.Reducer.first(), geometry: image.geometry().centroid(), // The scale determines the pyramid level from which to pull the input scale: scale }).get('B4')); }; printAtScale(10); // 0.10394100844860077 printAtScale(30); // 0.10394100844860077 printAtScale(50); // 0.09130698442459106 printAtScale(70); // 0.1150854229927063 printAtScale(200); // 0.102478988468647 printAtScale(500); // 0.09072770178318024
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4') def print_at_scale(scale): display( f'Pixel value at {scale} meters scale', image.reduceRegion( reducer=ee.Reducer.first(), geometry=image.geometry().centroid(), # The scale determines the pyramid level from which to pull the input scale=scale, ).get('B4'), ) print_at_scale(10) # 0.10394100844860077 print_at_scale(30) # 0.10394100844860077 print_at_scale(50) # 0.09130698442459106 print_at_scale(70) # 0.1150854229927063 print_at_scale(200) # 0.102478988468647 print_at_scale(500) # 0.09072770178318024
이 예에서 일정한 위치 (이미지 중심점)의 픽셀 값은 크기에 따라 달라집니다. 이는 규모에 따라 피라미드 수준이 다르게 선택되기 때문입니다. 비슷한 크기의 경우 최근접 이웃 리샘플링을 하면 동일한 픽셀 값이 반환됩니다. 중요한 점은 크기를 변경하면 다른 이미지 입력이 요청된다는 것입니다.
이미지를 지도에 추가하여 시각화하면 Earth Engine에서 확대/축소 수준에서 축척을 결정합니다. Landsat 이미지를 표시하는 간단한 예를 살펴보겠습니다.
코드 편집기 (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); Map.centerObject(image, 17); Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.35}, 'image');
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') m = geemap.Map() m.center_object(image, 17) m.add_layer(image, {'bands': ['B4', 'B3', 'B2'], 'max': 0.35}, 'image') m
지도에서 기본 해상도 픽셀이 선명하게 보일 수 있도록 최대한 확대된 상태로 시작됩니다. 충분히 축소하면 동일한 픽셀이 표시되지 않고 대신 이미지 피라미드의 상위 수준이 표시됩니다. 또한 Code Editor 및 geemap 지도에서는 지도 메르카토르 (EPSG:3857) 도법을 사용하므로 표시하기 전에 적절한 수준의 이미지 피라미드도 다시 투영해야 합니다. 프로젝션 문서에서 Earth Engine이 프로젝션을 처리하는 방법을 자세히 알아보세요.