Présentation d'App Engine et d'Earth Engine

Google App Engine vous permet de créer et d'exécuter vos propres applications personnalisées sur les serveurs de Google. Les applications App Engine sont faciles à créer, à gérer et à faire évoluer en fonction de vos besoins en termes de trafic et de stockage des données. Il vous suffit d'importer le code source de votre application pour qu'elle soit prête à l'emploi. Si vous n'avez jamais développé pour App Engine, assurez-vous de consulter le guide de démarrage rapide Python ou Node.js d'App Engine avant de continuer.

Earth Engine et App Engine peuvent être utilisés ensemble pour créer des applications géospatiales évolutives. En règle générale, votre code App Engine inclut la bibliothèque cliente Python Earth Engine et envoie des requêtes au backend Earth Engine à l'aide d'un compte de service. C'est un avantage, car cela permet à n'importe qui d'utiliser votre application sans se connecter ni être un utilisateur enregistré d'Earth Engine. Notez que les limites d'utilisation standards d'Earth Engine s'appliquent à chaque compte de service.

Une autre approche de développement consiste à utiliser l' authentification côté client au lieu d'un compte de service. Avec cette approche, les visiteurs de votre application doivent être enregistrés pour Earth Engine et se connecter. L'avantage de cette approche est que les requêtes adressées à Earth Engine sont effectuées à l'aide des identifiants de l'utilisateur final. Vous êtes donc moins susceptible d'atteindre les limites d'utilisation. Le problème est que vos utilisateurs doivent s'inscrire à Earth Engine et se connecter avant d'utiliser l'application.

Le répertoire de démonstrations Earth Engine App Engine sur GitHub contient un ensemble d'exemples App Engine utiles. Consultez la page Exemples d'applications pour obtenir une brève description de chaque exemple. Ce document explique comment configurer et déployer les exemples ou les applications personnalisées que vous créez.

Déployer des applications App Engine avec Earth Engine

Les instructions suivantes expliquent comment déployer les applications de démonstration. Les instructions Python sont destinées à Mac OS et Linux. Si vous utilisez Python sur Windows, essayez ceci.

Activer l'API Earth Engine dans votre projet Google Cloud

Créez ou sélectionnez un projet Google Cloud, puis activez l'API Earth Engine en suivant ces instructions.

Configurer les identifiants

Compte de service

Un compte de service peut être utilisé pour autoriser les requêtes adressées à Earth Engine au nom de toute personne utilisant votre application. Le fichier config.py contient le code d'authentification utilisant l'adresse e-mail du compte de service et un fichier de clé privée. Pour configurer l'authentification avec un compte de service, suivez ces instructions pour créer le compte de service et le fichier de clé privée. Nommez le fichier de clé .private-key.json et déplacez-le dans le répertoire de votre projet.

Python

Si vous ne l'avez pas déjà fait, commencez par configurer l'API Python Earth Engine. Testez le compte de service en suivant ces instructions.

Si le test réussit, mettez à jour config.py (ou un fichier équivalent dans votre code source) avec l'adresse e-mail de votre compte de service. (Le chemin d'accès au fichier de clé ne doit pas changer, car il se trouve dans le répertoire de votre projet.)

Node.js

Installez les dépendances du projet en exécutant npm install. L'API Node.js Earth Engine et toutes les autres dépendances seront copiées dans un dossier ./node_modules du répertoire de votre projet. Si l'installation échoue, vérifiez qu'une version récente de Node.js est installée. Authentifiez et initialisez la bibliothèque en remplaçant my-project par l'ID de votre projet Google Cloud :

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

ID client OAuth 2.0

Si vous souhaitez que les utilisateurs s'authentifient eux-mêmes (plutôt que d'utiliser un compte de service), vous devez configurer un ID client OAuth à partir de votre projet Cloud. Pour ce faire, procédez comme suit :

  1. Configurez un ID client en suivant ces instructions.
  2. Mettez à jour static/script.js (ou un fichier équivalent dans votre code source) pour utiliser votre ID client.
  3. Assurez-vous que ee_api_js.js est disponible dans le répertoire /static/ (ou équivalent). Vous pouvez le télécharger directement depuis GitHub, l'installer depuis npm ou, si vous avez déjà cloné l'intégralité du dépôt de l'API EE, le copier depuis earthengine-api/javascript/build sur votre système de fichiers local.

Configurer l'environnement de développement local

Python

Suivez les instructions de chaque répertoire d'exemple sur GitHub pour télécharger et compiler le projet. S'il existe un fichier build.sh, exécutez-le à partir du dossier racine de votre application avec la commande suivante :

./build.sh

Le script de configuration téléchargera les dépendances et installera les outils de ligne de commande Google, s'ils n'existent pas déjà sur votre système. L'API Python Earth Engine et ses dépendances seront copiées dans un dossier ./lib du répertoire de votre projet.

Vérifiez que les outils de ligne de commande App Engine sont disponibles en exécutant la commande suivante :

dev_appserver.py

Si la commande est introuvable, essayez de télécharger et d'installer manuellement le SDK Google App Engine pour Python. Si la commande est disponible, elle doit échouer et renvoyer l'erreur "error: too few arguments" (erreur : pas assez d'arguments).

Node.js

Aucune configuration n'est requise.

Exécuter localement

Une fois votre compte de service enregistré pour l'accès à Earth Engine, vous pouvez l'utiliser pour vous authentifier (voir config.py) lorsque vous testez les exemples. Essayez d'abord de tester les exemples en local en accédant au répertoire de votre projet et en exécutant la commande suivante :

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

Pointez votre navigateur sur http://localhost:8080 pour voir l'application s'exécuter sur un serveur local. Toutes les modifications que vous apportez (et enregistrez) seront automatiquement prises en compte lorsque vous actualiserez la page.