Skip to main content

extends the capabilities of the earthengine-api by providing custom session management and client interactions

Project description

This repository starts as a an alternative for the current calls to Earth Engine API of earthengine-api.

The main issue with the current client api doest not allow multi-user sessions since it uses a global session object. This repository aims to present a workaround for this issue but only in very specific cases:

  • Create map id: getMapId

  • Compute values: getInfo

  • Send tasks to the server

ee-client is a Python package designed to extend the capabilities of the Google Earth Engine (GEE) API by providing custom session management and client interactions. This package allows users to make authenticated requests to the Earth Engine REST API using thread safe credentials, facilitating seamless integration and customization of GEE functionalities.

Key Features

  • Custom Authentication:

  • Session Management: Handle sessions efficiently with reusable session objects that store credentials and project information.

  • Enhanced API Calls: Replace and extend existing GEE API calls with custom methods to suit specific project requirements.

  • Integration with Existing GEE Objects: Seamlessly integrate custom methods into existing Earth Engine objects, allowing for intuitive and familiar usage.

Installation

To install the package, simply use pip:

pip install ee-client # Not yet developed

Usage

Here are a few examples of how to use ee-client in your projects:

Initialization and Authentication

from eeclient import Session, get_info, get_asset

# Define your credentials and project ID
credentials = {
    "client_id": "your_client_id",
    "client_secret": "your_client_secret",
    "refresh_token": "your_refresh_token",
}
project = "your_project"

# Create a session object
session = Session(credentials, project)

Making API Calls

import ee

# Initialize the Earth Engine library and authenticate
ee.Initialize()

# Example: Get information about an Earth Engine object
result = get_info(session, ee.Number(5))
print(result)

# Example: Get asset information
asset_info = get_asset(session, "users/your_username/your_asset")
print(asset_info)

Fetching Map Tiles:

from eeclient import get_map_id, get_map_tile

# Example: Get map ID for an Earth Engine image
image = ee.Image('COPERNICUS/S2/20190726T104031_20190726T104035_T31TGL')
map_id = get_map_id(session, image)

# Example: Get map tile layer
tile_layer = get_map_tile(map_id)
print(tile_layer)

Integration with Existing GEE Objects

WIP

import ee
import eeclient

# Custom method to get information about an Earth Engine Number object
def custom_get_info(self, session):
    return get_info(session, self)

# Extend the Earth Engine Number class with the custom method
ee.Number.custom_get_info = custom_get_info

# Usage
number = ee.Number(5)
result = number.eeclient.get_info(session)
print(result)

Contributing

We welcome contributions from the community. Please feel free to submit issues and pull requests to help improve this package.

Fork the repository

Create a new branch (git checkout -b feature-branch). Commit your changes (git commit -am ‘Add new feature’). Push to the branch (git push origin feature-branch). Create a new Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ee_client-0.1.0.tar.gz (6.3 kB view hashes)

Uploaded Source

Built Distribution

ee_client-0.1.0-py3-none-any.whl (7.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page