Geedim provides a Python API and command line toolkit for exporting and cloud masking Google Earth Engine (GEE) imagery. Images and Image collections can be exported to:
- GeoTIFF file
- NumPy array
- Xarray Dataset / DataArray
- Google Cloud platforms
And cloud masking is supported on:
- Landsat 4-9 collection 2 images
- Sentinel-2 TOA and surface reflectance images
To install from PyPI:
pip install geedim
To install from conda-forge:
conda install -c conda-forge geedim
To support exporting to Xarray, use pip install geedim[xarray]
or conda install -c conda-forge geedim xarray
instead.
A registered Google Cloud project is required for access to Earth Engine. Once installation and registration is done, Earth Engine should be authenticated:
earthengine authenticate
Geedim provides access to its functionality through the gd
accessor on the ee.Image
and ee.ImageCollection
GEE classes. This example exports a 6 month cloud-free composite of Sentinel-2 surface reflectance imagery to a GeoTIFF file:
import ee
# import geedim to enable accessors
import geedim # noqa: F401
ee.Initialize()
# filter collection based on cloud-free portion etc.
region = ee.Geometry.Rectangle(24.35, -33.75, 24.45, -33.65)
coll = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
filt_coll = coll.gd.filter(
'2021-10-01', '2022-04-01', region=region, cloudless_portion=60
)
# print image properties
print(filt_coll.gd.schemaTable)
print(filt_coll.gd.propertiesTable)
# create a cloud-free composite & download
comp_im = filt_coll.gd.composite('median')
prep_im = comp_im.gd.prepareForExport(
crs='EPSG:3857', region=region, scale=10, dtype='uint16'
)
prep_im.gd.toGeoTIFF('s2_comp.tif')
Much of the API functionality can also be accessed on the command line with geedim
and its sub-commands. This repeats the API example, exporting a 6-month cloud-free composite of Sentinel-2 surface reflectance imagery to a GeoTIFF file:
geedim search -c COPERNICUS/S2_SR_HARMONIZED -s 2024-10-01 -e 2025-04-01 -b 24.35 -33.75 24.45 -33.65 -cp 60 composite -cm median download -c EPSG:3857 -r - -s 10 -dt uint16
Documentation is hosted at geedim.readthedocs.io.
This project is licensed under the terms of the Apache-2.0 License.
- Tiled downloading was inspired by the MIT licensed GEES2Downloader project.
- Medoid compositing, and the accessor approach to extending the GEE API, were adapted from geetools under terms of the MIT license.
- Sentinel-2 cloud masking was adapted from ee_extra under terms of the Apache-2.0 license