Skip to main content

geeViz logo

geeViz

The Earth Engine Visualization Toolkit for Python

PyPI version GitHub stars Docs Google Earth Engine


geeViz makes exploring, visualizing, and analyzing Earth Engine data and geospatial imagery easy in Python. Whether you’re an analyst, scientist, or just getting started, geeViz offers interactive mapping, time series, and advanced charting—without the JavaScript overhead.

Developed by RedCastle Resources, geeViz features a powerful, customizable map viewer and Pythonic interfaces for working with Google Earth Engine (GEE).


Key Features

  • Interactive Map Viewer (launches in your browser)
  • Layer toggling, opacity, visualization tools, querying, & area charting
  • Dynamic time-lapse creation from GEE ImageCollections
  • Built-in charting & analysis tools (point/polygon, time series, area stats)
  • Inline zonal summary & charting (geeViz.outputLib.charts, formerly geeViz.chartingLib) — run zonal stats and produce Plotly charts (time series, bar, grouped bar, donut, scatter, per-feature time series subplots, Sankey) directly in notebooks
  • Summary area retrieval (geeViz.getSummaryAreasLib) — 15 functions returning filtered ee.FeatureCollection objects for political boundaries, USFS units, census geographies, buildings, roads, and protected areas
  • Jupyter/Colab support and standalone scripting
  • Supports Landsat, Sentinel-2, MODIS, LCMS, LCMAP, and more
  • Extensive examples and ready-to-run wrappers
  • Built-in MCP server for AI coding assistants (Cursor, Claude Code, VS Code Github Copilot, Windsurf, AntiGravity, etc...)

Quick Links

JavaScript Version & Related Links

Documentation & Help


Installation

The fastest way to get started:

  1. Sign up for Google Earth Engine
  2. Install geeViz via pip:
    pip install geeViz
    
  3. Authenticate your Google account with Earth Engine:
    earthengine authenticate
    

Manual / Advanced Installation
  1. Install the Earth Engine Python API if not present:

    pip install earthengine-api
    
  2. Clone this repository:

    git clone https://github.com/gee-community/geeViz
    
  3. Optionally, add or symlink the geeViz folder to your Python site-packages.

  4. To update to the latest version:

    pip install geeViz --upgrade
    

    or, if installed via Git:

    git pull origin master
    

geeViz is also mirrored at code.fs.usda.gov/forest-service/geeViz.


Optional: API Keys for Google Maps & Gemini

Some geeViz features (googleMapsLib, outputLib.reports LLM narratives) require API keys from Google Cloud. These are optional — core GEE functionality works without them.

Gemini API Key (for AI-generated report narratives and image interpretation):

  1. Go to Google AI Studio
  2. Click Create API Key → select a project → copy the key

Google Maps Platform API Key (for geocoding, Street View, places, elevation, air quality, solar):

  1. Go to Google Cloud Console → select/create a project
  2. Navigate to APIs & ServicesCredentialsCreate CredentialsAPI Key
  3. (Recommended) Restrict the key to: Geocoding, Street View Static, Places (New), Elevation, Air Quality, Solar, Roads, Maps Static

Store your keys in a .env file in your geeViz package directory (alongside geeView.py):

# .env file in your geeViz package directory
GEMINI_API_KEY=your_gemini_api_key_here
GOOGLE_MAPS_PLATFORM_API_KEY=your_maps_platform_key_here

You can also set these as environment variables. The .env file is loaded automatically by googleMapsLib and outputLib.reports on import.

Key Used by How to get
GEMINI_API_KEY googleMapsLib.interpret_image(), googleMapsLib.label_streetview(), outputLib.reports LLM narratives Google AI Studio
GOOGLE_MAPS_PLATFORM_API_KEY googleMapsLib.geocode(), streetview_*(), search_places(), get_elevation(), get_air_quality(), get_solar_insights(), etc. Google Cloud Console

Optional pip extras:

pip install geeViz[gemini]         # Adds google-genai for AI features
pip install geeViz[segmentation]   # Adds torch + transformers for SegFormer
pip install geeViz[all]            # Everything

AI-Assisted Development (MCP)

geeViz includes a built-in MCP (Model Context Protocol) server with 12 tools that give AI coding assistants live access to geeViz and Google Earth Engine. Instead of generating code from training data (which is often wrong or outdated), your AI assistant can look up real function signatures, read actual example scripts, execute and test code, inspect assets, export data, and more.

Works with Cursor, Claude Code, VS Code with GitHub Copilot, Windsurf, and any MCP-compatible client. The mcp SDK is included as a dependency — no extra install needed.

Quick setup

  1. Add a config file for your editor (see MCP Server docs):
    {
      "mcpServers": {
        "geeviz": {
          "command": "python",
          "args": ["-m", "geeViz.mcp.server"]
        }
      }
    }
    
  2. Copy the agent instructions from geeViz/mcp/agent-instructions.md into your editor's instructions file (.github/copilot-instructions.md, .cursorrules, CLAUDE.md, or .windsurfrules).

What the MCP server can do

The 12 tools are organized into categories:

Category Tools
Code Execution run_code — persistent REPL with ee, Map, gv, gil, sal, tl, rl, cl, gm, edwLib pre-loaded; save_session — export as .py or .ipynb
API Introspection search_geeviz — unified search across function signatures, module members, reference dictionaries, and example scripts (AST-indexed, zero import cost)
Dataset Discovery search_datasets — keyword search across official & community catalogs
Asset Inspection inspect_asset — bands, CRS, scale, date range, properties
Map Control map_control — view, list layers, or clear the interactive map
Exports & Asset Management export_image — to asset / Drive / Cloud Storage; manage_asset — delete / copy / move / create / update ACL
Google Maps get_streetview — Street View imagery; geeviz_search_places — places / geocoding
Environment env_info — versions, namespace, project info; view_output — open generated files (charts, thumbs, reports, HTML)

Charting (cl.summarize_and_chart()), thumbnails (tl.generate_thumbs()), report generation (rl.*), EDW queries (edwLib.*), and geocoding (gm.geocode()) are accessed via run_code — one execution primitive plus a rich pre-loaded namespace beats a proliferation of narrow wrappers.

For the complete tool reference, architecture details, and usage examples, see the MCP Server README and the online MCP Server guide.


Getting Started

geeViz comes with ready-to-run examples and templates for fast onboarding.

Example: Launch in Python

Authenticate and then try:

from geeViz.examples import geeViewExample

Explore other examples:

from geeViz.examples import timeLapseExample
from geeViz.examples import getLandsatWrapper
from geeViz.examples import getSentinel2Wrapper
from geeViz.examples import getCombinedLandsatSentinel2Wrapper
from geeViz.examples import harmonicRegressionWrapper
from geeViz.examples import LANDTRENDRWrapper
from geeViz.examples import LANDTRENDRViz
from geeViz.examples import CCDCViz
from geeViz.examples import lcmsViewerExample
from geeViz.examples import LCMAP_and_LCMS_Viewer
from geeViz.examples import phEEnoVizWrapper
from geeViz.examples import GFSTimeLapse

Use with Jupyter & Colab


Features at a Glance

  • One line mapping: Map any GEE image or collection instantly
  • Interactive: Toggle layers, set opacity, area/point query, and chart
  • Dynamic Time-Lapses: Animate temporal stacks and export GIFs
  • No JavaScript required: Pure Python interface

Contributing

We love contributions and new users!


License

geeViz is released under the Apache 2.0 License.
See the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geeviz-2026.7.2.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geeviz-2026.7.2-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file geeviz-2026.7.2.tar.gz.

File metadata

  • Download URL: geeviz-2026.7.2.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for geeviz-2026.7.2.tar.gz
Algorithm Hash digest
SHA256 f67cec763313762162a3118bca1330495f763390a86b84a901367b5897eef26a
MD5 7d1fdc748add63c060f0ba27863bc62b
BLAKE2b-256 bbb5cff966a94e052f150cbb8bd04ecf75b0ffeedb951e823783631ca78ff6f5

See more details on using hashes here.

File details

Details for the file geeviz-2026.7.2-py3-none-any.whl.

File metadata

  • Download URL: geeviz-2026.7.2-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for geeviz-2026.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 23c2c6b48ae65b93760a0cf021f7ef2e9e5a8c9765cabb3ba61eeedbb72b81cf
MD5 6a76e65b7234bd3094d526464e4cd66f
BLAKE2b-256 0fbc7c3add563d6f91e133996944f704c6daed14d693f25b86423a850f2af0a5

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page