A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

eeExtra

A ninja python package that unifies the Google Earth Engine ecosystem.
https://github.com/r-earthengine/ee_extra

Category: Sustainable Development
Sub Category: Data Catalogs and Interfaces

Keywords

dataviz earth-engine geographic-information-systems gis google-earth-engine javascript landsat modis python python3 r remote-sensing rstats satellite-imagery sentinel

Keywords from Contributors

stac sentinel-2 earth-observation earthengine planetary-computer spectral-index spectral-indices routing

Last synced: about 14 hours ago
JSON representation

Repository metadata

A ninja python package that unifies the Google Earth Engine ecosystem.

README.md


GitHub: https://github.com/r-earthengine/ee_extra

Documentation: https://ee-extra.readthedocs.io

PyPI: https://pypi.python.org/pypi/ee_extra

Conda-forge: https://anaconda.org/conda-forge/ee_extra


Overview

Google Earth Engine (GEE) is a cloud-based service for
geospatial processing of vector and raster data. The Earth Engine platform has a
JavaScript and a Python API with
different methods to process geospatial objects. Google Earth Engine also provides a
HUGE PETABYTE-SCALE CATALOG of
raster and vector data that users can process online.

There are a lot of fantastic third-party GEE packages and projects around GitHub. However,
most of them are coded in JavaScript or Python, and they are not straightforward
to translate to R, Julia, or other programming languages. The main goal of eeExtra is
to guarantee a smooth import of these projects in other programming languages by
standardizing different methods and enabling the use of JavaScript modules outside the
Code Editor.

Some of the eeExtra features are listed here:

  • Automatic scaling and offsetting.
  • Spectral Indices computation (using Awesome Spectral Indices).
  • Clouds and shadows masking.
  • STAC related functions.

And the most important feature:

  • Enabling the usage of JavaScript modules outside the Code Editor.

How does it work?

eeExtra is a Python package, just like any other, but it is a ninja that serves as a
methods provider for different environments: R, Julia and Python itself. eeExtra
accomplish this by being the powerhouse of some amazing packages such as rgee,
rgee+, and eemont.

Public JavaScript module can also be used outside the Code Editor in these packages
through eeExtra. For this, eeExtra implements a rigorous JavaScript translation
module that allows users to install, require and use JavaScript modules as if they
were on the Code Editor!

You may be wondering "Why is it a ninja package?", well, that's a valid question,
the whole point of eeExtra resides in the fact that nobody has to use eeExtra itself,
but rather use one of the packages that are powered by eeExtra! :)

Installation

Install the latest version from PyPI:

pip install ee_extra

Install soft ee_extra dependencies:

pip install jsbeautifier regex

Upgrade eeExtra by running:

pip install -U ee_extra

Install the latest version from conda-forge:

conda install -c conda-forge ee_extra

Install the latest dev version from GitHub by running:

pip install git+https://github.com/r-earthengine/ee_extra

Features

Let's see some of the awesome features of eeExtra and how to use them from the powered
packages in python and R!

Scale and Offset

Most datasets in the data catalog are scaled and in order to get their real values,
we have to scale (and sometimes offset) them!

import ee, eemont
ee.Initialize()
db = 'COPERNICUS/S2_SR'
S2 = ee.ImageCollection(db)
S2.scaleAndOffset()
library(rgee)
library(rgeeExtra)
ee_Initialize()
db <- 'COPERNICUS/S2_SR'
S2 <- ee$ImageCollection(db)
ee_extra_scaleAndOffset(S2)
using PyCall
using EarthEngine

Initialize()

ee_extra = pyimport("ee_extra")
ee_core = ee_extra.STAC.core
db = "COPERNICUS/S2_SR"
S2 = ee.ImageCollection(db)
ee_core.scaleAndOffset(S2)

Spectral Indices

Do you know the Awesome Spectral Indices?
Well, you can compute them automatically with eeExtra!

import ee, eemont
ee.Initialize()
db = 'COPERNICUS/S2_SR'
S2 = ee.ImageCollection(db)
S2 = S2.scaleAndOffset()
S2.spectralIndices("EVI")
library(rgee)
library(rgeeExtra)
ee_Initialize()
db <- 'COPERNICUS/S2_SR'
S2 <- ee$ImageCollection(db)
S2 <- ee_extra_scaleAndOffset(S2)
ee_extra_spIndices(S2, "EVI")
using PyCall
using EarthEngine

Initialize()

ee_extra = pyimport("ee_extra")
ee_core = ee_extra.STAC.core
ee_sp = ee_extra.Spectral.core
db = "COPERNICUS/S2_SR"
S2 = ee.ImageCollection(db)
S2 = ee_core.scaleAndOffset(S2)
ee_sp.spectralIndices(S2, "EVI")

STAC features

Access STAC properties easily!

import ee, eemont
ee.Initialize()
db = 'COPERNICUS/S2_SR'
S2 = ee.ImageCollection(db)
S2.getSTAC()
library(rgee)
library(rgeeExtra)
ee_Initialize()
db <- 'COPERNICUS/S2_SR'
S2 <- ee$ImageCollection(db)
ee_extra_getSTAC()
  
using PyCall
using EarthEngine

Initialize()

ee_extra = pyimport("ee_extra")
ee_core = ee_extra.STAC.core
db = "COPERNICUS/S2_SR"
S2 = ee.ImageCollection(db)
ee_core.getSTAC(S2)

JavaScript Modules

This is perhaps the most important feature in eeExtra! What if you could use a
JavaScript module (originally just useful for the Code Editor) in python or R? Well,
wait no more for it!

  • JS Code Editor
var mod = require('users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js')

var geom = ee.Geometry.Rectangle(-8.91, 40.0, -8.3, 40.4)
var LST = mod.collection("L8", "2018-05-15", "2018-05-31", geom, true)

print(LST)
  • Python eemont
import ee, eemont

ee.Initialize()
module = 'users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js'
ee.install(module)
mod = ee.require(module)

geom = ee.Geometry.Rectangle(-8.91, 40.0, -8.3, 40.4)
LST = mod.collection("L8", "2018-05-15", "2018-05-31", geom, True)
print(LST)
  • R rgeeExtra
library(rgee)
library(rgeeExtra)

ee_Initialize()

lsmod <- 'users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js'
mod <- module(lsmod)

geom <- ee$Geometry$Rectangle(-8.91, 40.0, -8.3, 40.4)
LST <- mod$collection("L8", "2018-05-15", "2018-05-31", geom, TRUE)
print(LST)
  • Julia EarthEngine.jl
using PyCall
using EarthEngine

Initialize()

ee_extra = pyimport("ee_extra")
landsat_module = "users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js"
ee_extra.install(landsat_module)
lsmodule = ee_extra.require(landsat_module)

geom = Rectangle(-8.91, 40.0, -8.3, 40.4)
LST = lsmodule.collection("L8", "2018-05-15", "2018-05-31", geom, true)
print(LST)

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 5 days ago

Total Commits: 946
Total Committers: 6
Avg Commits per committer: 157.667
Development Distribution Score (DDS): 0.292

Commits in past year: 190
Committers in past year: 1
Avg Commits per committer in past year: 190.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
GitHub Action a****n@g****m 670
davemlz d****t@g****m 200
csaybar c****r@g****m 48
Aaron Zuspan a****n@g****m 26
Fernando Herrera f****0@g****m 1
Andrea a****p@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 45
Total pull requests: 14
Average time to close issues: 8 days
Average time to close pull requests: about 24 hours
Total issue authors: 7
Total pull request authors: 8
Average comments per issue: 1.96
Average comments per pull request: 1.0
Merged pull request: 9
Bot issues: 0
Bot pull requests: 0

Past year issues: 4
Past year pull requests: 2
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 2
Past year pull request authors: 2
Past year average comments per issue: 0.75
Past year average comments per pull request: 0.5
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/r-earthengine/ee_extra

Top Issue Authors

  • davemlz (18)
  • csaybar (12)
  • 12rambau (7)
  • aazuspan (4)
  • sebimarkgraf (2)
  • framunoz (1)
  • suhendra0812 (1)

Top Pull Request Authors

  • aazuspan (7)
  • Spiruel (1)
  • ferherreraq (1)
  • eocce (1)
  • andrea29-star (1)
  • 12rambau (1)
  • sebimarkgraf (1)
  • lukegre (1)

Top Issue Labels

  • enhancement (17)
  • bug (3)
  • help wanted (2)
  • documentation (1)

Top Pull Request Labels

  • enhancement (4)

Package metadata

pypi.org: ee-extra

A ninja Python package behind rgee, rgeeExtra and eemont.

  • Homepage: https://github.com/r-earthengine/ee_extra
  • Documentation: https://ee-extra.readthedocs.io/
  • Licenses: Apache 2.0
  • Latest release: 0.0.15 (published over 2 years ago)
  • Last Synced: 2025-04-25T12:03:24.674Z (1 day ago)
  • Versions: 15
  • Dependent Packages: 2
  • Dependent Repositories: 22
  • Downloads: 10,507 Last month
  • Docker Downloads: 163
  • Rankings:
    • Docker downloads count: 2.222%
    • Dependent repos count: 3.098%
    • Downloads: 4.129%
    • Dependent packages count: 4.744%
    • Average: 6.095%
    • Stargazers count: 9.086%
    • Forks count: 13.289%
  • Maintainers (2)
conda-forge.org: ee_extra

  • Homepage: https://github.com/r-earthengine/ee_extra
  • Licenses: Apache-2.0
  • Latest release: 0.0.14 (published over 2 years ago)
  • Last Synced: 2025-04-25T12:03:29.254Z (1 day ago)
  • Versions: 10
  • Dependent Packages: 2
  • Dependent Repositories: 1
  • Rankings:
    • Dependent packages count: 19.602%
    • Dependent repos count: 24.348%
    • Average: 33.249%
    • Stargazers count: 40.107%
    • Forks count: 48.94%

Dependencies

docs/docs-requirements.txt pypi
  • google-api-core *
  • google-auth <2.0dev
  • protobuf <3.18.0,>=3.12.0
  • pydata-sphinx-theme *
  • recommonmark *
  • sphinx >=1.4,
  • sphinx-autodoc-typehints *
  • sphinxcontrib-autoprogram *
setup.py pypi
  • earthengine-api *
.github/workflows/tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/update_awesome_spectral_indices.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • ad-m/github-push-action v0.6.0 composite
.github/workflows/update_ee_appshot.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • ad-m/github-push-action v0.6.0 composite
.github/workflows/update_gee_stac_ids.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • ad-m/github-push-action v0.6.0 composite
.github/workflows/update_gee_stac_scale_offset.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • ad-m/github-push-action v0.6.0 composite

Score: 15.439486676679453