Module Overview¶
The geeViz package provides a comprehensive suite of modules for working with Google Earth Engine in Python. Below is an overview of the core modules available in geeViz.
Core Visualization Modules¶
geeViz.geeViewInteractive map viewer for Earth Engine datasets. Provides the primary
mapperclass for creating web-based visualizations with support for pixel querying, area-based charting, layer toggling, per-layer opacity, split-screen comparison, and tile / GeoJSON overlays from non-EE sources (including ArcGIS Image / Map / Feature Services viaesriLib).geeViz.foliumViewAlternative map viewer using Folium for lightweight, static map generation and Jupyter notebook integration.
Authentication & Multi-Tenant Proxy¶
See the dedicated Earth Engine Authentication page for the full walkthrough (ADC vs. attached service account vs. impersonation, security posture, per-user billing attribution via workload tags, and multi-tenant patterns). The modules themselves:
geeViz.eeAuthMulti-tenant Earth Engine authentication proxy. Lets a single Python process hold credentials for many service accounts / OAuth refresh tokens / attached-SA runtime identities and route each
ee.Xcall through a local proxy that injects the right bearer token per request.Map.view()uses this transparently — discovery, proxy startup, andee.Initializehappen on first use. Default lifecycle since 2026.6.1 is detached: the proxy runs as a background subprocess that survives the calling script’s exit, so multi-Map.view()workflows return immediately and browser tabs keep working.geeViz.eeAuth.eeCredsThe friendly high-level API. Singleton
eeCredsand classEECredsexposeaddCreds(),addADC(),addImpersonation(),use(),discover(),ensure_started(), androbust_init(). Most users only ever toucheeCreds.use(name)to switch tenants; on Cloud Run the runtime’s attached SA is picked up automatically viagoogle.auth.default()with zero JSON keys on disk.geeViz.eeAuth.serverFastAPI router that performs the actual REST proxying, appends per-request
workloadTagquery parameters for billing attribution, and pins each browser tab to its tenant via a/ee-api/t/<tenant>/path prefix. Embed in your own service viabuild_proxy_router(), or run standalone withpython -m geeViz.eeAuth --port 8889(also mounts/geeView/*on the same port).geeViz.eeAuth.clientClient-side helpers —
initialize_via_proxy()points the EE Python SDK at a proxy URL;tenant_context()provides a scoped switch that propagates throughasyncioand threaded code via aContextVar.
Image Processing & Analysis¶
geeViz.getImagesLibComprehensive wrapper functions for accessing and processing Landsat, Sentinel-2, MODIS, and other satellite imagery. Handles compositing, cloud/shadow masking (including cloudScore+ for Sentinel-2 and Fmask-based approaches for Landsat), harmonic seasonality fitting, and standardized preprocessing across sensors. Preferred Sentinel-2 entry point:
superSimpleGetS2(); preferred Landsat entry point:getProcessedLandsatScenes(). Also exposes water-index helpers (simpleMask()withmethod='tc' | 'mndwi' | 'awei', plusaddWaterIndices()).geeViz.changeDetectionLibTools for running and visualizing change detection algorithms including LandTrendr, CCDC, and VERDET. Includes segmentation, temporal analysis utilities, and helpers for converting segment output into per-year loss/gain rasters and change-year maps.
geeViz.phEEnoVizPhenology visualization and analysis tools for examining vegetation temporal patterns and seasonal dynamics.
Output Libraries (geeViz.outputLib)¶
geeViz.outputLib.chartsZonal summary and charting library. Auto-detects thematic vs. continuous data, produces Plotly charts (time series, bar, donut, scatter) and D3 Sankey transition diagrams with gradient-colored links. Convenience wrappers
summarize_and_chart()(for a single ROI) andsummarize_and_chart_many()(parallel across ROIs) fetch, cache, and render in one call. FormerlygeeViz.chartingLib.geeViz.outputLib.thumbsPublication-ready thumbnails, animated GIFs, and filmstrip grids from Earth Engine imagery. Includes auto-visualization detection (via
getImagesLibviz params), basemap compositing, projected-CRS support (Albers / UTM / any EPSG), scalebar, north arrow, inset locator map, thematic-legend rendering with auto-truncated class labels, and per-frame date overlays. Font sizes scale proportionally to the requested output dimensions.geeViz.outputLib.reportsAutomated report generation combining thumbnails, charts, Sankey diagrams, data tables, and LLM-generated narratives (via Gemini). All Earth Engine data requests run in parallel across ROIs and time windows to minimize wall-clock time. Supports HTML, Markdown, and PDF output with dark/light themes and per-section customization.
geeViz.outputLib.themesUnified theme system for consistent colors across charts, thumbnails, and reports. Ships named presets (
dark,light,teal) viaget_theme(), auto-derives a full theme from a single background color, and applies to Plotly figures (apply_plotly_theme()), Matplotlib figures / axes (apply_matplotlib_theme()), or either via the polymorphicapply_theme(). Custom presets register viaregister_preset().
Summary Areas¶
geeViz.getSummaryAreasLibFunctions returning filtered
ee.FeatureCollectionobjects for common analysis regions — no hunting for the right EE asset ID:Administrative boundaries (levels 0–4) from geoBoundaries, FAO GAUL, or FieldMaps —
getAdminBoundaries().US Forest Service units — forests / districts / regions via
getUSFSForests(),getUSFSDistricts(),getUSFSRegions().US census geographies — states, counties, tracts, block groups, blocks, urban areas (
getUSStates()and siblings).US National Parks —
getUSNationalParks()(all parks, by name, or intersecting an area).Roads — TIGER 2012–2025 (US) and GRIP4 (global),
getRoads().Buildings — VIDA and other global datasets,
getBuildings().Protected areas — WDPA-derived filters by IUCN category, designation type, or name,
getProtectedAreas().
External Data¶
geeViz.edwLibUSFS Enterprise Data Warehouse (EDW) REST API client. Search, inspect, and query ~215 Forest Service geospatial services (fire, ownership, vegetation, roads, etc.). Returns GeoJSON loadable into Earth Engine as
ee.FeatureCollection.geeViz.esriLibArcGIS / Esri REST services client. Bridges Image, Map, and Feature Services into the geeViz viewer with no JavaScript changes —
addEsriService()auto-dispatches by service type; typed helpersaddEsriImageService(),addEsriMapService(),addEsriFeatureService()give explicit control.searchPortal()discovers layers on IIPP, ArcGIS Online, USGS, NOAA, USFS, and NASA portals (with token support for gated services). Feature Services abovemax_featuresraise a clearValueErrorwith remediation guidance rather than silently downloading gigabytes.geeViz.googleMapsLibGoogle Maps Platform client for ground-truthing remote sensing analysis. Includes geocoding, places search, Street View imagery, panorama stitching, AI interpretation (Gemini), semantic segmentation (SegFormer), elevation, air quality, solar, and more. Requires
GOOGLE_MAPS_PLATFORM_API_KEYand optionallyGEMINI_API_KEYin a.envfile — see Prerequisites for setup.
Data Management Modules¶
geeViz.taskManagerLibUtilities for managing Earth Engine export tasks — monitor batch progress, cancel stalled runs, poll to completion, and route exports to Drive, Cloud Storage, or Assets.
geeViz.assetManagerLibFunctions for managing Earth Engine assets including uploading, deleting, copying, listing, and organizing asset collections (folders, image collections, tables).
geeViz.migrateGEEAssetsBulk asset-tree operations: enumerate an asset tree (
getTree()), copy it wholesale (copyAssetTree()), delete it (deleteAssetTree()), or batch-update ACLs (batchChangePermissions()). Useful when moving assets between accounts or restructuring collections.geeViz.cloudStorageManagerLibModern GCS client for renaming, existence checks, and deletion of blobs using
google.cloud.storage. Preferred over the legacygcpLibwrapper for new code.geeViz.gee2PandasUtilities for converting Earth Engine data structures (FeatureCollections, charts, zonal statistics) to pandas DataFrames for further analysis.
Color Palettes & Legacy Utilities¶
geeViz.geePalettesExtensive collection of color palettes for EE visualization, adapted from Gennadiy Donchyts’ ee-palettes. Organized by source (
cmocean,colorbrewer,misc, etc.); each palette exposes multiple color-count variants. Drop into anyviz_params['palette']field.geeViz.gcpLibLegacy GCS wrapper built on
gsutilsubprocess calls. Retained for backward compatibility; new code should usecloudStorageManagerLib(native SDK, nogsutilinstall required).
AI-Assisted Development¶
geeViz.mcp.serverMCP (Model Context Protocol) server that gives AI coding assistants live access to geeViz and Earth Engine. 12 tools for code execution (
run_code), unified API/example search (search_geeviz), dataset discovery (search_datasets), asset inspection (inspect_asset), map control (map_control), session save/replay (save_session,view_output), exports (export_image), asset management (manage_asset), environment introspection (env_info), and Google Maps (geeviz_search_places,get_streetview). Charting, thumbnails, reports, EDW queries, and geocoding are reached viarun_codeusing pre-loaded aliases (cl,tl,rl,gm,edwLib,el,sal,pd,gee2Pandas). Works with Claude Code, Cursor, VS Code with Copilot, and Windsurf. See the MCP Server guide for setup.
Module Reference¶
View GEE objects using Python |
|
Earth Engine multi-tenant auth proxy + client helpers. |
|
Get images and organize them so they are easier to work with |
|
Apply change detection methods usin GEE |
|
Output sub-package for geeViz. |
|
Functions for retrieving common summary and study area FeatureCollections. |
|
USFS Enterprise Data Warehouse (EDW) REST API client. |
|
ArcGIS / Esri REST services client for geeViz. |
|
Google Maps Platform client for geeViz. |
|
Monitor and manage tasks programatically |
|
Helpful functions for managing GEE assets |
|
Recursively migrate Google Earth Engine assets from one repository to another, manage their permissions, and (optionally) delete the originals. |
|
Helpful functions for managing Google Cloud Storage (GCS) buckets and blobs |
|
Copyright 2019 Leah Campbell |
|
Take data from GEE to Pandas and back |
|
Use Gena's EE Palettes in Python Written by Gennadiy Donchyts Adapted to Python by Ian Housman Palettes Source: https://github.com/gee-community/ee-palettes |
|
View GEE objects using Folium. |
|
Visualize the spectral seasonality of an area to facilitate composting methods development |
|
geeViz MCP Server -- execution and introspection tools for Earth Engine via geeViz. |