App Engine と Earth Engine の概要

Google App Engine を使用すると、Google のサーバーで独自のカスタム アプリケーションを構築して実行できます。App Engine アプリケーションは作成や管理が簡単で、トラフィックやデータ ストレージの需要の変動に合わせて容易にスケーリングできます。アプリケーションのソースコードをアップロードするだけで、すぐに使用できます。App Engine での開発を初めて行う場合は、先に App Engine の Python または Node.js のクイックスタートを確認してください。

Earth Engine と App Engine を併用して、スケーラブルな地理空間アプリケーションを構築できます。通常、App Engine コードには Earth Engine Python クライアント ライブラリが含まれており、サービス アカウントを使用して Earth Engine バックエンドにリクエストを送信します。これは、ログインしなくても、または Earth Engine の登録ユーザーでなくても、誰でもアプリを使用できるという点で有利です。各サービス アカウントには、標準の Earth Engine の使用上限が適用されます。

別の開発方法として、サービス アカウントではなく クライアントサイド認証を使用する方法もあります。この方法では、アプリケーションの訪問者が Earth Engine に登録し、ログインする必要があります。このアプローチの利点は、Earth Engine へのリクエストがエンドユーザーの認証情報を使用して行われるため、使用上限に達する可能性が低くなることです。課題は、ユーザーがアプリケーションを使用する前に Earth Engine に登録してログインする必要があることです。

GitHub の Earth Engine App Engine デモ ディレクトリには、便利な App Engine サンプルが含まれています。各例の簡単な説明については、サンプルアプリのページをご覧ください。このドキュメントでは、作成したサンプルアプリまたはカスタムアプリを設定してデプロイする方法について説明します。

Earth Engine を使用した App Engine アプリのデプロイ

次の手順では、デモアプリをデプロイする方法について説明します。Python の手順は、Mac OS と Linux を対象としています。Windows で Python を使用している場合は、 こちらを試してください。

Google Cloud プロジェクトで Earth Engine API を有効にします。

Google Cloud プロジェクトを作成または選択し、こちらの手順に沿って Earth Engine API を有効にします。

認証情報の設定

サービス アカウント

サービス アカウントを使用すると、アプリを使用しているユーザーに代わって Earth Engine へのリクエストを承認できます。config.py ファイルには、サービス アカウントのメールアドレスと秘密鍵ファイルを使用する認証コードが含まれています。サービス アカウントによる認証を設定するには、こちらの手順に沿ってサービス アカウントと秘密鍵ファイルを作成します。鍵ファイルに .private-key.json という名前を付け、プロジェクト ディレクトリに移動します。

Python

まだ設定していない場合は、まず Earth Engine Python API を設定します。こちらの手順に沿ってサービス アカウントをテストします。

テストが成功したら、config.py(またはソースコード内の同等のファイル)をサービス アカウントのメールアドレスで更新します。(鍵ファイルのパスはプロジェクト ディレクトリ内にあるため、変更する必要はありません)。

Node.js

npm install を実行して、プロジェクトの依存関係をインストールします。Earth Engine Node.js API とその他の依存関係が、プロジェクト ディレクトリの ./node_modules フォルダにコピーされます。インストールに失敗した場合は、最新バージョンの Node.js がインストールされていることを確認します。

const ee = require('@google/earthengine');
ee.data.authenticateViaPrivateKey('.private-key.json');
ee.initialize();

OAuth 2.0 クライアント ID

ユーザーが(サービス アカウントを使用するのではなく)自身として認証されるようにするには、Cloud プロジェクトから OAuth クライアント ID を設定する必要があります。手順は次のとおりです。

  1. こちらの手順に沿ってクライアント ID を設定します。
  2. クライアント ID を使用するように static/script.js(またはソースコード内の同等のファイル)を更新します。
  3. ee_api_js.js/static/ ディレクトリ(または同等のディレクトリ)で使用可能であることを確認します。 GitHub から直接ダウンロードするか、 npm からインストールするか、EE API リポジトリ全体のクローンをすでに作成している場合は、ローカル ファイル システムの earthengine-api/javascript/build からコピーします。

ローカル開発環境を設定する

Python

GitHub の各サンプル ディレクトリの手順に沿って、プロジェクトをダウンロードしてビルドします。build.sh ファイルがある場合は、次のコマンドを使用してアプリケーションのルート フォルダから実行します。

./build.sh

セットアップ スクリプトは、依存関係をダウンロードし、Google コマンドライン ツールをインストールします(システムにまだ存在しない場合)。Earth Engine Python API とその依存関係が、プロジェクト ディレクトリの ./lib フォルダにコピーされます。

次のコマンドを実行して、App Engine コマンドライン ツールが使用可能であることを確認します。

dev_appserver.py

コマンドが見つからない場合は、Python 用 Google App Engine SDK を手動でダウンロードしてインストールしてみてください。コマンドが使用可能な場合、コマンドは「error: too few arguments」で失敗します。

Node.js

設定は必要ありません。

ローカルで実行する

サービス アカウントが Earth Engine へのアクセス用に登録されると、サンプルをテストするときにそのサービス アカウントを使用して認証できます(config.py を参照)。まず、プロジェクト ディレクトリに移動して、次のコマンドを実行して、サンプルをローカルでテストしてみてください。

Python
dev_appserver.py .
Node.js
npm install
npm start

ブラウザで http://localhost:8080 にアクセスして、ローカルサーバーで実行されているアプリを確認します。変更を加えて保存すると、ページを更新したときに自動的に反映されます。