Earth Engine access

Earth Engine runs on Google Cloud and requires Cloud projects for access and API management. All Earth Engine calls (whether from the Code Editor, client libraries, Apps, or REST API) are routed through a Cloud project, enabling access control, resource management, and usage monitoring in the Cloud Console.

Get access to Earth Engine

To use Earth Engine you'll need access to a Cloud project that:

Create a project

Visit the registration page to create and register a new Cloud project or register an existing project.

Projects created during the registration process can be managed in the Google Cloud Console. You can activate or deactivate the Earth Engine API from the Earth Engine API page on the Cloud Console.

Manual steps (automated by the registration page)

Create a Cloud project

If you haven't already, create a Google Cloud Project. You can do so from the projects page of the Cloud Console or click the following button:

Create a Cloud project

Enable the Earth Engine API

To enable the Earth Engine API for your project, click the following button to go to the Earth Engine API page:

Enable the Earth Engine API

On the Earth Engine API page, ensure that you have selected your project, and click the ENABLE button.

Register the project for commercial or noncommerial use

Edit the following URL for your project, visit the page, and complete the registration flow.

https://code.earthengine.google.com/register?project=my-project

Create an assets folder (optional)

You can create an Earth Engine assets folder associated with a Cloud project to which you have access using the earthengine create folder command using a path as described here. For example:

earthengine create folder projects/my-project/assets/

You can also create an asset folder for a project in the Code Editor by adding the project in the Assets panel.

You don't need to create this folder unless you plan to store assets in the project.

Use an existing project

Check with your organization's IT staff about existing Cloud projects configured for Earth Engine. Ensure that the Google Account you'll use to access Earth Engine services is granted the correct roles and permissions on the project.

Specify a project

The following sections describe how to specify a project for the various interfaces to Earth Engine's services.

Client libraries (Python, JavaScript)

The ee.Initialize() function is used to specify a project for Earth Engine requests originating from the Python and JavaScript client libraries. There are several ways to configure project specification, see the authentication and initialization page for more details.

Code Editor

Click the profile icon in the top right corner of the Code Editor and select "Change Cloud Project" from the menu. Choose a project from the selection dialog.

Earth Engine Apps

When publishing an Earth Engine App, you'll be prompted to select a project to route requests through. Follow instructions in the publishing dialog.

Command-line tool

To associate Earth Engine calls from the command-line tool with a Cloud project, use the --project parameter in your call to earthengine or use set_project to set a default project.

REST API

To associate calls to the REST API with a Cloud project, issue authenticated HTTP calls where authentication is handled by oauth2. In a local environment, you can use the gcloud command. You can also use a service account associated with a Cloud Project. See the REST API Quickstart for an example of using google.oath.service_account.Credentials.from_service_account_file() to authenticate with a service account.

Configure project access

The following sections describe how to configure Earth Engine-enabled projects for use by other individuals and service accounts.

Service accounts

Service accounts automatically have access once their parent project is registered and has the Earth Engine API enabled. They also need the correct permissions within the project. Any number of service accounts on a project can be configured to use Earth Engine. Visit the service accounts page to learn more about using service accounts with Earth Engine.

Google Accounts

Cloud projects use Cloud IAM to manage roles and permissions. In order for other humans to access Earth Engine via your project, you'll need to use the Cloud Console to grant them the correct roles and permissions.

OAuth 2.0 Client ID

You may need to create an OAuth 2.0 Client ID from a project, for example to create an app that passes user credentials to Earth Engine. You can manage credentials for your Cloud project by going to the Cloud Console menu () and selecting APIs & Services > Credentials. (Choose the project if prompted).

To create a new Client ID for the project, click + CREATE CREDENTIALS > OAuth client ID > Web application.

In the configuration of the web application:

  • Specify authorized JavaScript origins, for example:
http://localhost:8080
https://foo-ee-project.appspot.com
  • Specify authorized redirect URIs, for example:
http://localhost:8080/oauth2callback
https://foo-ee-project.appspot.com/oauth2callback

Learn more about authenticating users with OAuth.

Common scenarios

I'm teaching an educational class...

Great! If you register a noncommercial project, no billing configuration is required. Then, you can add your students to the project.

I'm part of an operational team/commercial organization...

Great! You're able to register a project for commercial use, and add your collaborators to it. Please also pay attention to the seat limit in the Earth Engine subscription that you select.

Earth Engine data deletion

Account-level deletion

Account-level deletion will remove all Earth Engine data from your account.

If your account is part of a Google Workspace organization, your administrator controls your account data. When an administrator deletes a Google Account, all associated Earth Engine data are wiped out within approximately 30 days.

It's not possible for the Earth Engine team to recover data once they're deleted.

Cloud projects

When a Cloud project is deleted, it triggers the deletion of Earth Engine data associated with that project (including, for example, any assets stored in the project root, any project-level EE Apps, Monitoring data, etc.). This process may be reversible for up to 30 days, but it's never possible to recover those data after 30 days.

Assets

The simplest method for deleting your assets is to use the "Assets" tab in the Code Editor to view and manually delete your Earth Engine assets.

For programmatic asset deletion of an asset with ID projects/{project-id}/assets/{asset-id} (e.g., projects/my-project/assets/my-asset):

Python client

ee.data.deleteAsset('projects/my-project/assets/my-asset')

JavaScript client

Note that the Code Editor's security sandbox prevents this call from working in that environment.

ee.data.deleteAsset('projects/my-project/assets/my-asset')

Command-line tool

Use the rm command:

earthengine rm projects/my-project/assets/my-asset

Code Editor scripts

To delete your Earth Engine Code Editor scripts:

Code Editor

From the "Scripts" tab in the Code Editor, select a script or repository and delete it. Once a repository has been marked as deleted, it becomes unrecoverable within 30 days.

Using Git

Advanced users can use Git to manage their scripts. See https://earthengine.googlesource.com/ to list the repositories that you can view.

Earth Engine Apps

To delete your Earth Engine Apps, use the "Apps" button in the Code Editor to manage your Apps.

Use the Manage Links page to view and delete your "Get Link" links from the Code Editor. This page can be found by navigating to the "Manage Links" option in the drop-down menu next to the "Get Link" button.

Terminating commercial access

If you are a direct customer of Earth Engine and want to stop using Earth Engine in a paid context, there are several changes needed to stop incurring charges:

  • Stop subscription charges

    • To terminate the Earth Engine subscription on your billing account, you need to use the "Manage Plans" page (accessible from the user settings drop-down menu in the top right of the Code Editor when using a registered Cloud project linked to that billing account).
    • You can also access the "Manage Plans" page directly for a billing account:

      https://code.earthengine.google.com/manage/plans?billing=YOUR_BILLING_ACCT_ID
      
    • Choosing the "Limited" plan stops your billing account from incurring any further Earth Engine platform subscription fees after your current billing cycle.

  • Stop compute charges

    • To prevent new charges related to compute (EECU-time), disable the Earth Engine API on your Cloud project(s). Note that this doesn't terminate in-progress requests or delete stored objects, so you may still incur Earth Engine charges even with the API disabled.
    • See the API Console Help for information about disabling APIs.
  • Stop storage charges

    • Stored Earth Engine assets continue to drive costs even if the API is disabled. Deleting your assets stops you from incurring further EE storage fees.