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); });
すべてが正しくインストールされていれば、画像のメタデータが出力されます。