Skip to main content

Wrapper function to request temporal and zonal statistics from Google Earth Engine

Project description

GEE Zonal

PyPI version GitHub issues GitHub stars

This python package provides a wrapper function to request temporal and zonal statistics from Google Earth Engine (GEE) datasets.

Summary

A zonal statistics function was created to ease the process of working with the GEE API. The function can work with any raster data loaded to EE (ee.ImageCollections or ee.Image) and vector features (geopandas.GeoDataFrame or ee.FeatureCollection), and returns tabular data.

Statistics can be requested at various temporal resolutions (original frequency, monthly, or annual). The workflow conducts pixel-by-pixel temporal aggregations, before summarizing statistics over target features.

Additionally, the package provides functionality to quickly search the GEE Catalog.

Documentation Pages

Installation

The required dependencies are earthengine-api, geopandas, geojson, and notebook. The package (and dependencies) can be installed via pip:

pip install gee_zonal

Setup

The Earth Engine Python API needs to be authenticated with a Google account. First, sign up to Google Earth Engine here.

Launch a jupyter notebook, and authenticate your account with the ee library.

import ee
ee.Authenticate()

You can check that this worked by running ee.Initialize(), then import and run the library:

from gee_zonal import ZonalStats, Catalog

If the pip installation is not working, you can recreate the environment before and install the package from source:

conda create -n ee
conda activate ee
conda install -c conda-forge earthengine-api geopandas notebook ipykernel​
git clone https://github.com/worldbank/GEE_Zonal.git
python setup.py build
python setup.py install
python -m ipykernel install --user --name ee --display-name "Earth Engine"

Usage

ZonalStats()

Main class to calculate temporal and zonal statistics using the GEE backend. The object can be initialized with parameters specifying data inputs and the type of aggregation.

import ee
from gee_zonal import ZonalStats
AOIs = ee.FeatureCollection('<id of ee.FeatureCollection>')
AOIs = '<path to shapefile>'
zs = ZonalStats(
  collection_id = 'LANDSAT/LC08/C01/T1_8DAY_NDVI',
  target_features = AOIs,
  statistic_type = "all", # all includes min, max, mean, and stddev
  frequency = "annual",
  temporal_stat = "mean"
)

See docstring for more details on the input parameters for ZonalStats() and the example notebook.

The output statistics can be retrieved directly in the notebook (as a DataFrame):

res = zs.runZonalStats()

Or retrieved from Google Drive as a csv table if an output_name and output_dir were specified.

Catalog()

Inventory of Earth Engine datasets with some functions to search catalog by tags, title, and year / time period

from gee_zonal import Catalog
cat = Catalog()

The catalog object contains a datasets variable, a DataFrame containing a copy of the Earth Engine data catalog, retrieved from Earth-Engine-Datasets-List.

cat.datasets

Search functions

results = cat.search_tags("ndvi")
results = results.search_by_period(1985, 2021)
results = results.search_title("landsat")
print(results)

Additional Resources

License

World Bank Master Community License Agreement.

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

gee_zonal-0.1.1.tar.gz (38.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gee_zonal-0.1.1-py3-none-any.whl (34.8 kB view details)

Uploaded Python 3

File details

Details for the file gee_zonal-0.1.1.tar.gz.

File metadata

  • Download URL: gee_zonal-0.1.1.tar.gz
  • Upload date:
  • Size: 38.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for gee_zonal-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aff7950a1860aaf029e0fb900e6e5d9d743386f1840ee49f0059ffc725ab1898
MD5 53ddda5067d9a71acf4df7280291cd29
BLAKE2b-256 1987454fbe6961cd342e125af8d2809c74c3f0c779d9bea1a2b555bfa4428385

See more details on using hashes here.

File details

Details for the file gee_zonal-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: gee_zonal-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 34.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for gee_zonal-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 64ea0451c5b7d0a6d676b3ef282b84866875993cbcfbb6e7e979482085c7eeb9
MD5 6c7b6ed292d73d42c626e1c4a2d711f3
BLAKE2b-256 a6a1a9c2f691754f51836c4580c7f213c0ecd92906c46fa641a1a624208b286f

See more details on using hashes here.

Supported by

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