App Engine 和 Earth Engine 概览

借助 Google App Engine,您可以在 Google 的服务器上构建和运行自己的自定义应用。App Engine 应用易于创建、易于维护,并可根据流量和数据存储需求的变化轻松扩缩。您只需上传应用源代码,即可开始使用。如果您刚开始为 App Engine 开发应用,请务必先查看 App Engine PythonNode.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. 更新 static/script.js(或源代码中的等效文件),以使用您的客户端 ID。
  3. 确保 /static/ 目录(或等效目录)中提供了 ee_api_js.js。您可以 直接从 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,以查看在本地服务器上运行的应用。您所做的任何更改(并保存)都会在您刷新页面时自动应用。