이미지 및 이미지 밴드 시각화

이제 Earth Engine JavaScript를 작성할 준비가 되었으므로 다음 코드를 코드 편집기에 복사하여 시작합니다.

코드 편집기 (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

코드 편집기 상단의 실행 버튼을 클릭하면 지도에 매우 회색인 이미지가 표시됩니다. 걱정하지 마세요. 곧 더 나은 모습으로 만들 수 있습니다. 이 예의 일부 구문이 익숙하지 않은 경우 Earth Engine용 JavaScript 튜토리얼을 검토하세요.

이미지 생성기

이 예시에서 처음 등장하는 것은 이미지 생성자 ee.Image()입니다. 생성자에 제공된 인수는 Earth Engine 데이터 카탈로그에 있는 이미지의 문자열 ID입니다. (코드 편집기 왼쪽에 있는 문서 탭에서 이미지 생성자에 사용할 수 있는 전체 인수 목록을 확인하세요. 문서 탭에는 Earth Engine의 기능에 관한 최신 정보가 표시됩니다.

이미지 ID를 찾으려면 코드 편집기 상단의 검색 도구를 사용하여 Earth Engine 데이터 카탈로그를 검색합니다. 예를 들어 검색창에 'elevation'을 입력하면 래스터 목록이 반환됩니다. 'SRTM 디지털 고도 데이터 버전 4' 항목을 클릭하여 데이터 세트에 관한 자세한 정보를 확인합니다. 데이터 세트 설명의 오른쪽에 이미지 ID 필드가 있습니다. 예의 이미지 ID는 데이터 세트 설명에 표시된 이미지 ID에서 복사됩니다.

이미지 ID를 복사하여 붙여넣는 대신 데이터 세트 설명의 가져오기 버튼이나 검색 결과 오른쪽에 있는 가져오기 링크를 사용할 수도 있습니다. 가져오기 링크나 버튼을 클릭하면 스크립트 상단의 'Imports'라는 특수 섹션에 변수가 자동으로 생성됩니다. 가져오기 섹션에서 변수 이름을 클릭하여 변수 이름을 바꿀 수 있습니다.

지도 구성

이 예의 두 번째 새로운 부분은 Map.setCenter() 호출입니다. 코드 편집기에서 지도 표시를 나타내는 Map 객체의 이 메서드는 지정된 경도, 위도 (십진수) 및 확대/축소 수준에서 지도를 중앙에 배치합니다. 여기서 1은 지도가 지구 표면 전체를 표시하도록 축소됩니다. 큰 숫자는 여기에서 확대됩니다. 코드 편집기의 왼쪽 문서 탭에서 지도 섹션을 확인하여 Map 객체의 모든 메서드를 알아봅니다.

지도에 레이어 추가

예의 마지막 줄에서는 Map 객체의 addLayer() 메서드를 사용하여 코드 편집기의 지도 디스플레이에 이미지를 추가하라고 합니다.

축하합니다. 첫 번째 Earth Engine 스크립트를 만들었습니다. 다음 섹션에서는 이미지를 좀 더 보기 좋게 만드는 방법을 알아봅니다.

여담: Earth Engine의 이미지

Earth Engine의 이미지 (자세한 내용은 이 페이지 참고)는 하나 이상의 밴드로 구성됩니다. 이미지의 각 밴드에는 자체 이름, 픽셀 값, 픽셀 해상도, 투영이 있습니다. 곧 알게 되겠지만 SRTM 이미지에는 'elevation'이라는 밴드가 하나 있습니다.

Map.addLayer()를 사용하여 지도에 이미지를 추가하면 Earth Engine에서 이미지 밴드의 값을 디스플레이의 색상에 매핑하는 방법을 결정해야 합니다. 단일 밴드 이미지가 지도에 추가되면 기본적으로 Earth Engine은 밴드를 그레이 스케일로 표시합니다. 여기서 최솟값은 검은색에 할당되고 최댓값은 흰색에 할당됩니다. 최솟값과 최댓값을 지정하지 않으면 Earth Engine에서 기본값을 사용합니다. 예를 들어 지도에 추가한 이미지는 데이터의 전체 범위로 늘어난 그레이스케일 이미지 또는 부호가 있는 16비트 정수[-32768, 32767]로 표시됩니다. (float 대역은 [0, 1] 로, byte 대역은 [0, 255] 로 기본적으로 늘어납니다.)

이미지를 출력하고 콘솔 탭에서 이미지 객체를 검사하여 이미지의 데이터 유형을 확인할 수 있습니다. 예를 들어 이전 코드 뒤에 다음을 붙여넣습니다.

코드 편집기 (JavaScript)

print('SRTM image', image);

실행을 클릭하면 콘솔에 객체가 표시됩니다. 객체 속성을 조사하려면 객체 또는 속성 왼쪽에 있는 지피()를 클릭하여 펼칩니다. 이미지 객체, 'bands' 속성, 색인 '0'의 'elevation' 밴드, 'elevation' 밴드의 'data_type' 속성을 확장하여 signed int16 데이터 유형임을 확인합니다.

레이어 시각화 맞춤설정

데이터가 늘어나는 방식을 변경하려면 Map.addLayer() 호출에 다른 매개변수를 제공하면 됩니다. 특히 두 번째 매개변수 visParams를 사용하면 표시할 최솟값과 최댓값을 지정할 수 있습니다. 사용할 값을 확인하려면 인스펙터 탭을 활성화하고 지도에서 클릭하여 픽셀 값의 범위를 파악합니다. 또는 레이어 관리자를 사용하여 데이터를 대화형으로 늘린 다음 백분위수 또는 표준 편차 늘리기에 해당하는 최소값과 최대값을 관찰합니다. 이러한 실험을 통해 데이터를 [0, 3000]으로 늘려야 한다고 결정했다고 가정해 보겠습니다. 이 범위를 사용하여 이미지를 표시하려면 다음을 사용하세요.

코드 편집기 (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

visParams 매개변수는 minmax를 지정하는 속성이 있는 객체입니다. (JavaScript 튜토리얼 또는 이 외부 참조에서 JavaScript 객체에 대해 자세히 알아보세요.) Map.addLayer()의 세 번째 매개변수는 레이어 관리자에 표시되는 레이어의 이름입니다. 결과는 그림 1과 같이 표시됩니다. 오른쪽에 있는 레이어 상자 위로 마우스를 가져가면 레이어 이름 변경의 효과를 확인할 수 있습니다.

Tutorial_api_01_elevation.png
그림 1. 그레이 스케일로 된 고도 이미지로, [0, 3000]으로 늘어납니다.

색상 팔레트를 사용하여 단일 밴드를 표시하려면 visParams 객체에 palette 속성을 추가합니다.

코드 편집기 (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

결과는 그림 2와 같이 표시됩니다.

Tutorial_api_02_palette.png
그림 2. 파란색에서 빨간색으로 이어지는 색상 램프로 표시된 고도 이미지로, [0, 3000]으로 늘어납니다.

여담: 팔레트

팔레트를 사용하면 단일 밴드 이미지의 색 구성표를 설정할 수 있습니다. 팔레트는 시각화 매개변수의 최댓값과 최솟값 사이에 선형으로 삽입되는 색상 문자열의 쉼표로 구분된 목록입니다 (또는 이전에 설명한 대로 밴드 유형에 따른 기본값). 예를 들어 최솟값 이하의 픽셀은 목록의 첫 번째 색상으로 표시되고 최댓값 이상의 픽셀은 목록의 마지막 색상으로 표시됩니다. 중간 색상은 중간 픽셀 값으로 선형으로 늘어납니다.

색상은 웹 표준 CSS 색상 값 스키마를 사용하여 정의됩니다 (자세한 내용은 이 외부 참조 참고). 색상은 이름으로 지정하거나 빨간색, 녹색, 파란색의 조합을 나타내는 16진수 문자열로 지정할 수 있습니다. 세 위치 중 가장 낮은 값은 00(십진수 0을 나타냄)이고 가장 높은 값은 FF (십진수 255를 나타냄)입니다. 문자열 '000000'은 검은색을 나타내고, 'FFFFFF'는 흰색, 'FF0000'은 빨간색, '00FF00'은 녹색, '0000FF'는 파란색을 나타냅니다. 자세한 내용은 색상 팔레트 섹션을 참고하세요. 이 섹션에 설명된 대로 스타일이 지정된 레이어 설명자를 사용하여 다른 스트레칭도 가능합니다.

이 튜토리얼의 뒷부분에서는 멀티밴드 이미지를 표시하는 방법을 알아봅니다. 하지만 먼저 다음 페이지를 방문하여 이미지로 계산을 실행하는 방법을 알아보세요.