Skip to main content

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.

Metadata

Release files for gee-zonal 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gee-zonal 0.1.2
File Size Uploaded
gee_zonal-0.1.2.tar.gz 38.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gee-zonal 0.1.2
File Interpreter ABI Platform
gee_zonal-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 73.5 kB

Release files / gee_zonal-0.1.2.tar.gz

Download URL gee_zonal-0.1.2.tar.gz
Size 38.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fdf9e9f9e17528e91e91e00633c2077063a735dbec31a5b19887cfbdd3a5244d
BLAKE2b-256 checksum
How to use checksums
ae7bb46babf755b18f521aaeb45797ebaec7b62b6031796f6f3772904c25e1c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / gee_zonal-0.1.2-py3-none-any.whl

Download URL gee_zonal-0.1.2-py3-none-any.whl
Size 34.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e92ec2f986ee258c75984e4e825169bf9da34aeb5d2dbb983dd4e2da6e439b2
BLAKE2b-256 checksum
How to use checksums
9a9810d7a444a85f38fd9d8a6158ed9968570d5500d2002014f7d81283c6ef7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.2

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page