Google Earth Engine Fast Easy Terrestrial Covariate Harvester
geefetch provides a unified R interface for extracting spatio-temporal environmental covariates from Google Earth Engine.
No Python required. Unlike rgee, geefetch accesses GEE directly via the REST API using httr2 and gargle. Install it like any normal R package and authenticate with the same Google OAuth flow as googlesheets4.
Features
| Feature | Detail |
|---|---|
| Python-free | Uses GEE REST API directly – no reticulate, no conda |
| 19+ built-in datasets | Vegetation, climate, soil, topography, bioclimatic |
| One-function extraction |
read_gee() dispatcher + named convenience aliases |
| Batch extraction |
collect_gee_data() – multi-location x multi-date x multi-dataset |
| Automatic caching | Disk-backed, hash-keyed, TTL-aware |
| User-extensible | Register any GEE collection with gee_register_dataset()
|
| nert-compatible | Same output types (terra::rast(), data.table), same naming patterns |
Installation
# Install from GitHub (with vignettes)
remotes::install_github("AAGI-AUS/geefetch", subdir = "geefetch",
build_vignettes = TRUE)Quick start
library(geefetch)
# Authenticate (opens browser -- same as googlesheets4)
gee_auth()
# Extract MODIS NDVI for a region
ndvi <- read_modis_ndvi(
date = "2024-06-15",
region = terra::ext(138, 140, -36, -34)
)
terra::plot(ndvi)
# Batch extraction: multiple datasets, multiple locations
sites <- data.frame(lon = c(138.6, 149.1), lat = c(-34.9, -35.3))
covariates <- collect_gee_data(
xy = sites,
date_range = c("2024-01-01", "2024-12-31"),
datasets = c("modis_ndvi", "era5_temp", "chirps_precip", "srtm_elevation")
)Built-in datasets
| Dataset | Alias | Domain | Resolution | Temporal |
|---|---|---|---|---|
| MODIS Terra NDVI | read_modis_ndvi() |
Vegetation | 1 km | 16-day |
| MODIS Terra LST | read_modis_lst() |
Temperature | 1 km | 8-day |
| ERA5-Land temperature | read_era5() |
Climate | 11 km | Daily |
| ERA5-Land precipitation | read_era5() |
Climate | 11 km | Daily |
| CHIRPS precipitation | read_chirps() |
Precipitation | 5.5 km | Daily |
| SRTM elevation | read_srtm() |
Topography | 30 m | Static |
| SLGA soil (7 attributes) | read_slga() |
Soil (AU) | 90 m | Static |
| Sentinel-2 NDVI | read_sentinel2() |
Vegetation | 10 m | 5-day |
| Landsat 9 NDVI | read_landsat() |
Vegetation | 30 m | 16-day |
| WorldClim bioclim | read_worldclim() |
Bioclimatic | 1 km | Static |
| OpenLandMap soil | read_gee() |
Soil (Global) | 250 m | Static |
Browse all datasets: gee_datasets()
Documentation
-
vignette("geefetch")– Getting started -
vignette("collect_gee_data")– Batch extraction workflows -
vignette("custom_datasets")– Adding your own GEE collections