NPM 설치

Earth Engine JavaScript API는 GitHub에서 호스팅되는 npm 패키지로 배포됩니다. 다음 안내에서는 Google Earth Engine JavaScript API 설치를 간략하게 설명합니다. Earth Engine JavaScript API를 사용하려면 컴퓨터에 클라이언트 라이브러리와 종속 항목을 설치한 다음 인증 사용자 인증 정보를 설정해야 합니다.

JavaScript 클라이언트 라이브러리에는 Earth Engine 코드 편집기의 모든 기능이 포함되어 있지 않습니다. 특히 버튼, 패널, 차트와 같은 사용자 인터페이스 기능은 제외됩니다.

클라이언트 라이브러리 설치

1. Node.js 및 npm 설정

npm은 JavaScript 및 Node.js용 패키지 관리자입니다. Node.js 6 이상 및 npm 3 이상이 있는지 확인합니다.

node --version
npm --version

필요한 경우 플랫폼의 공식 설치 프로그램을 사용하여 두 항목을 모두 설치합니다.

2. Earth Engine 클라이언트 라이브러리 설치

클라이언트 라이브러리는 다음 명령어를 사용하여 npm에서 설치할 수 있습니다.

npm install --save @google/earthengine

설치가 완료되면 클라이언트 라이브러리가 현재 프로젝트 디렉터리(node_modules/@google/earthengine/*) 내에 배치됩니다. 향후 프로젝트에서는 동일한 방식으로 클라이언트를 설치합니다.

3. 애플리케이션에서 클라이언트 라이브러리 사용

애플리케이션 코드 내에서 Earth Engine API를 요구합니다.

var ee = require('@google/earthengine');

클라이언트 라이브러리 업데이트

npm을 사용하여 클라이언트 라이브러리를 최신 버전으로 업데이트합니다. 현재 프로젝트 디렉터리에서 다음을 실행합니다.
npm update @google/earthengine

npm으로 라이브러리를 업데이트하는 방법을 자세히 알아보세요.

클라이언트 라이브러리 제거

npm 패키지 관리자를 사용하여 제거하려면 다음 명령어를 실행합니다.

npm uninstall --save @google/earthengine

이렇게 하면 현재 프로젝트에서 node_modules/@google/earthengine가 삭제되지만 동일한 머신의 다른 디렉터리에 있는 프로젝트에는 영향을 미치지 않습니다.

Cloud 프로젝트를 만들고 Earth Engine API 활성화

이 안내에 따라 Cloud 프로젝트를 만들고 Earth Engine API를 사용 설정합니다.

인증 사용자 인증 정보 설정

Earth Engine API는 OAuth 2.0 프로토콜을 사용하여 브라우저 기반 클라이언트를 인증합니다. Node.js에서 서버 측 인증의 경우 서비스 계정을 사용하는 것이 좋습니다. 웹 앱은 아래에 설명된 장단점과 함께 두 가지 접근 방식을 모두 사용할 수 있습니다.

OAuth를 사용한 클라이언트 측 인증

웹브라우저에서 클라이언트 측 인증을 사용하면 애플리케이션 사용자가 자신의 Google 계정으로 로그인합니다. 이러한 사용자는 이미 Earth Engine에 액세스할 권한이 있어야 하며 애플리케이션에서 사용하는 애셋을 읽을 권한이 있어야 합니다.

OAuth 2.0 클라이언트 ID를 만든 후 아래와 같이 인증합니다 (my-project를 Google Cloud 프로젝트 ID로 바꿈).

// Load client library.
var ee = require('@google/earthengine');

// Initialize client library and run analysis.
var initialize = function() {
  ee.initialize(null, null, function() {
    // ... run analysis ...
  }, function(e) {
    console.error('Initialization error: ' + e);
  }, null, 'my-project');
};

// Authenticate using an OAuth pop-up.
ee.data.authenticateViaOauth(YOUR_CLIENT_ID, initialize, function(e) {
  console.error('Authentication error: ' + e);
}, null, function() {
  ee.data.authenticateViaPopup(initialize);
});

서비스 계정을 사용한 서버 측 인증

서버 측 인증을 사용하면 애플리케이션에 비공개 키가 저장되어 서비스 계정을 통해 Earth Engine API에 액세스할 수 있습니다. 애플리케이션 사용자는 Earth Engine에 액세스할 필요가 없으며 로그인하지 않아도 됩니다.

Node.js에서는 클라이언트 라이브러리에서 서버 측 인증만 제공합니다.

새 서비스 계정을 만든 후 JSON 비공개 키를 사용하여 인증합니다(my-project을 Google Cloud 프로젝트 ID로 대체).

// Require client library and private key.
var ee = require('@google/earthengine');
var privateKey = require('./.private-key.json');

// Initialize client library and run analysis.
var runAnalysis = function() {
  ee.initialize(null, null, function() {
    // ... run analysis ...
  }, function(e) {
    console.error('Initialization error: ' + e);
  }, null, 'my-project');
};

// Authenticate using a service account.
ee.data.authenticateViaPrivateKey(privateKey, runAnalysis, function(e) {
  console.error('Authentication error: ' + e);
});

설치 테스트

인증이 올바르게 설정되었는지 테스트하려면 다음 스크립트를 실행합니다(my-project를 Google Cloud 프로젝트 ID로 바꿈).

var ee = require('@google/earthengine');

// Authenticate using one (but not both) of the methods below.
ee.data.authenticateViaOauth(YOUR_CLIENT_ID);
ee.data.authenticateViaPrivateKey(YOUR_PRIVATE_KEY);

ee.initialize(null, null, null, null, null, 'my-project');

// Run an Earth Engine script.
var image = new ee.Image('srtm90_v4');
image.getMap({min: 0, max: 1000}, function(map) {
  console.log(map);
});

모든 항목이 올바르게 설치되면 이미지의 메타데이터가 출력됩니다.