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.geeView

Interactive map viewer for Earth Engine datasets. Provides the primary mapper class 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 via esriLib).

geeViz.foliumView

Alternative 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.eeAuth

Multi-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.X call through a local proxy that injects the right bearer token per request. Map.view() uses this transparently — discovery, proxy startup, and ee.Initialize happen 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.eeCreds

The friendly high-level API. Singleton eeCreds and class EECreds expose addCreds(), addADC(), addImpersonation(), use(), discover(), ensure_started(), and robust_init(). Most users only ever touch eeCreds.use(name) to switch tenants; on Cloud Run the runtime’s attached SA is picked up automatically via google.auth.default() with zero JSON keys on disk.

geeViz.eeAuth.server

FastAPI router that performs the actual REST proxying, appends per-request workloadTag query 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 via build_proxy_router(), or run standalone with python -m geeViz.eeAuth --port 8889 (also mounts /geeView/* on the same port).

geeViz.eeAuth.client

Client-side helpers — initialize_via_proxy() points the EE Python SDK at a proxy URL; tenant_context() provides a scoped switch that propagates through asyncio and threaded code via a ContextVar.

Image Processing & Analysis

geeViz.getImagesLib

Comprehensive 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() with method='tc' | 'mndwi' | 'awei', plus addWaterIndices()).

geeViz.changeDetectionLib

Tools 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.phEEnoViz

Phenology visualization and analysis tools for examining vegetation temporal patterns and seasonal dynamics.

Output Libraries (geeViz.outputLib)

geeViz.outputLib.charts

Zonal 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) and summarize_and_chart_many() (parallel across ROIs) fetch, cache, and render in one call. Formerly geeViz.chartingLib.

geeViz.outputLib.thumbs

Publication-ready thumbnails, animated GIFs, and filmstrip grids from Earth Engine imagery. Includes auto-visualization detection (via getImagesLib viz 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.reports

Automated 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.themes

Unified theme system for consistent colors across charts, thumbnails, and reports. Ships named presets (dark, light, teal) via get_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 polymorphic apply_theme(). Custom presets register via register_preset().

Summary Areas

geeViz.getSummaryAreasLib

Functions returning filtered ee.FeatureCollection objects 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 ParksgetUSNationalParks() (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.edwLib

USFS 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.esriLib

ArcGIS / 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 helpers addEsriImageService(), 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 above max_features raise a clear ValueError with remediation guidance rather than silently downloading gigabytes.

geeViz.googleMapsLib

Google 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_KEY and optionally GEMINI_API_KEY in a .env file — see Prerequisites for setup.

Data Management Modules

geeViz.taskManagerLib

Utilities 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.assetManagerLib

Functions for managing Earth Engine assets including uploading, deleting, copying, listing, and organizing asset collections (folders, image collections, tables).

geeViz.migrateGEEAssets

Bulk 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.cloudStorageManagerLib

Modern GCS client for renaming, existence checks, and deletion of blobs using google.cloud.storage. Preferred over the legacy gcpLib wrapper for new code.

geeViz.gee2Pandas

Utilities for converting Earth Engine data structures (FeatureCollections, charts, zonal statistics) to pandas DataFrames for further analysis.

Color Palettes & Legacy Utilities

geeViz.geePalettes

Extensive 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 any viz_params['palette'] field.

geeViz.gcpLib

Legacy GCS wrapper built on gsutil subprocess calls. Retained for backward compatibility; new code should use cloudStorageManagerLib (native SDK, no gsutil install required).

AI-Assisted Development

geeViz.mcp.server

MCP (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 via run_code using 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

geeViz.geeView

View GEE objects using Python

geeViz.eeAuth

Earth Engine multi-tenant auth proxy + client helpers.

geeViz.getImagesLib

Get images and organize them so they are easier to work with

geeViz.changeDetectionLib

Apply change detection methods usin GEE

geeViz.outputLib

Output sub-package for geeViz.

geeViz.getSummaryAreasLib

Functions for retrieving common summary and study area FeatureCollections.

geeViz.edwLib

USFS Enterprise Data Warehouse (EDW) REST API client.

geeViz.esriLib

ArcGIS / Esri REST services client for geeViz.

geeViz.googleMapsLib

Google Maps Platform client for geeViz.

geeViz.taskManagerLib

Monitor and manage tasks programatically

geeViz.assetManagerLib

Helpful functions for managing GEE assets

geeViz.migrateGEEAssets

Recursively migrate Google Earth Engine assets from one repository to another, manage their permissions, and (optionally) delete the originals.

geeViz.cloudStorageManagerLib

Helpful functions for managing Google Cloud Storage (GCS) buckets and blobs

geeViz.gcpLib

Copyright 2019 Leah Campbell

geeViz.gee2Pandas

Take data from GEE to Pandas and back

geeViz.geePalettes

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

geeViz.foliumView

View GEE objects using Folium.

geeViz.phEEnoViz

Visualize the spectral seasonality of an area to facilitate composting methods development

geeViz.mcp.server

geeViz MCP Server -- execution and introspection tools for Earth Engine via geeViz.