• Stars
    star
    3,380
  • Rank 13,127 (Top 0.3 %)
  • Language
    Python
  • License
    MIT License
  • Created over 4 years ago
  • Updated 24 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Python package for interactive geospatial analysis and visualization with Google Earth Engine.

geemap

https://static.pepy.tech/badge/geemap https://img.shields.io/badge/YouTube-Channel-red

A Python package for interactive mapping with Google Earth Engine, ipyleaflet, and ipywidgets.

Acknowledgment: This material is based upon work partially supported by the National Aeronautics and Space Administration (NASA) under Grant No. 80NSSC22K1742 issued through the Open Source Tools, Frameworks, and Libraries 2020 Program.

Contents

Announcement

The book Earth Engine and Geemap - Geospatial Data Science with Python, written by Qiusheng Wu, has been published by Locate Press in July 2023. If you’re interested in purchasing the book, please visit this URL: https://locatepress.com/book/gee.

book

Introduction

Geemap is a Python package for interactive mapping with Google Earth Engine (GEE), which is a cloud computing platform with a multi-petabyte catalog of satellite imagery and geospatial datasets. During the past few years, GEE has become very popular in the geospatial community and it has empowered numerous environmental applications at local, regional, and global scales. GEE provides both JavaScript and Python APIs for making computational requests to the Earth Engine servers. Compared with the comprehensive documentation and interactive IDE (i.e., GEE JavaScript Code Editor) of the GEE JavaScript API, the GEE Python API has relatively little documentation and limited functionality for visualizing results interactively. The geemap Python package was created to fill this gap. It is built upon ipyleaflet and ipywidgets, and enables users to analyze and visualize Earth Engine datasets interactively within a Jupyter-based environment.

Geemap is intended for students and researchers, who would like to utilize the Python ecosystem of diverse libraries and tools to explore Google Earth Engine. It is also designed for existing GEE users who would like to transition from the GEE JavaScript API to Python API. The automated JavaScript-to-Python conversion module of the geemap package can greatly reduce the time needed to convert existing GEE JavaScripts to Python scripts and Jupyter notebooks.

For video tutorials and notebook examples, please visit https://geemap.org/tutorials. For complete documentation on geemap modules and methods, please visit https://geemap.org/geemap.

If you find geemap useful in your research, please consider citing the following papers to support my work. Thank you for your support.

  • Wu, Q., (2020). geemap: A Python package for interactive mapping with Google Earth Engine. The Journal of Open Source Software, 5(51), 2305. https://doi.org/10.21105/joss.02305
  • Wu, Q., Lane, C. R., Li, X., Zhao, K., Zhou, Y., Clinton, N., DeVries, B., Golden, H. E., & Lang, M. W. (2019). Integrating LiDAR data and multi-temporal aerial imagery to map wetland inundation dynamics using Google Earth Engine. Remote Sensing of Environment, 228, 1-13. https://doi.org/10.1016/j.rse.2019.04.015 (pdf | source code)

Check out the geemap workshop I presented at the GeoPython Conference 2021. This workshop gives a comprehensive introduction to the key features of geemap.

https://img.youtube.com/vi/wGjpjh9IQ5I/0.jpg

Features

Below is a partial list of features available for the geemap package. Please check the examples page for notebook examples, GIF animations, and video tutorials.

  • Convert Earth Engine JavaScripts to Python scripts and Jupyter notebooks.
  • Display Earth Engine data layers for interactive mapping.
  • Support Earth Engine JavaScript API-styled functions in Python, such as Map.addLayer(), Map.setCenter(), Map.centerObject(), Map.setOptions().
  • Create split-panel maps with Earth Engine data.
  • Retrieve Earth Engine data interactively using the Inspector Tool.
  • Interactive plotting of Earth Engine data by simply clicking on the map.
  • Convert data format between GeoJSON and Earth Engine.
  • Use drawing tools to interact with Earth Engine data.
  • Use shapefiles with Earth Engine without having to upload data to one's GEE account.
  • Export Earth Engine FeatureCollection to other formats (i.e., shp, csv, json, kml, kmz).
  • Export Earth Engine Image and ImageCollection as GeoTIFF.
  • Extract pixels from an Earth Engine Image into a 3D numpy array.
  • Calculate zonal statistics by group.
  • Add a customized legend for Earth Engine data.
  • Convert Earth Engine JavaScripts to Python code directly within Jupyter notebook.
  • Add animated text to GIF images generated from Earth Engine data.
  • Add colorbar and images to GIF animations generated from Earth Engine data.
  • Create Landsat timelapse animations with animated text using Earth Engine.
  • Search places and datasets from Earth Engine Data Catalog.
  • Use timeseries inspector to visualize landscape changes over time.
  • Export Earth Engine maps as HTML files and PNG images.
  • Search Earth Engine API documentation within Jupyter notebooks.
  • Import Earth Engine assets from personal account.
  • Publish interactive GEE maps directly within Jupyter notebook.
  • Add local raster datasets (e.g., GeoTIFF) to the map.
  • Perform image classification and accuracy assessment.
  • Extract pixel values interactively and export as shapefile and csv.

Installation

To use geemap, you must first sign up for a Google Earth Engine account.

https://i.imgur.com/ng0FzUT.png

Geemap is available on PyPI. To install geemap, run this command in your terminal:

pip install geemap

Geemap is also available on conda-forge. If you have Anaconda or Miniconda installed on your computer, you can create a conda Python environment to install geemap:

conda create -n gee python=3.10
conda activate gee
conda install -n base mamba -c conda-forge
mamba install geemap -c conda-forge

If you have installed geemap before and want to upgrade to the latest version, you can run the following command in your terminal:

pip install -U geemap

If you use conda, you can update geemap to the latest version by running the following command in your terminal:

conda update -c conda-forge geemap

To install the development version from GitHub using Git, run the following command in your terminal:

pip install git+https://github.com/gee-community/geemap

To install the development version from GitHub directly within Jupyter notebook without using Git, run the following code:

import geemap
geemap.update_package()

Citations

To support my work, please consider citing the following articles:

  • Wu, Q., (2020). geemap: A Python package for interactive mapping with Google Earth Engine. The Journal of Open Source Software, 5(51), 2305. https://doi.org/10.21105/joss.02305
  • Wu, Q., Lane, C. R., Li, X., Zhao, K., Zhou, Y., Clinton, N., DeVries, B., Golden, H. E., & Lang, M. W. (2019). Integrating LiDAR data and multi-temporal aerial imagery to map wetland inundation dynamics using Google Earth Engine. Remote Sensing of Environment, 228, 1-13. https://doi.org/10.1016/j.rse.2019.04.015 (pdf | source code)

More Repositories

1

geetools

A collection of tools to work with Google Earth Engine Python API
Python
504
star
2

qgis-earthengine-plugin

Integrates Google Earth Engine and QGIS using Python API
Python
445
star
3

ee-palettes

A set of common color palettes for Google Earth Engine
HTML
301
star
4

awesome-google-earth-engine

Curated list of Google Earth Engine resources
92
star
5

example-scripts

Example scripts originally derived from Prof. Dana Tomlin's handouts for his course on Geospatial Software Design. Shared with his permission.
86
star
6

ee-jupyter-contrib

Using Jupyter as an Earth Engine IDE - Community Contributions
Jupyter Notebook
73
star
7

ee-tensorflow-notebooks

Repository to place example notebooks for Deep Learning applications with TensorFlow and Earth Engine.
Jupyter Notebook
71
star
8

ee-runner

Command-line runner for Google Earth Engine Playground scripts
JavaScript
67
star
9

geeViz

Repository of GEE libraries produced by RedCastle Inc at the US Forest Service Geospatial Technology Applications Center
Python
34
star
10

ee-LandsatLinkr

Python
28
star
11

ee-packages-py

Python version of some usefuly Google Earth Engine utilities (migrated from /users/gena/packages JavaScript)
Python
25
star
12

sar-asf-to-gee

Facilitates transferring on-demand SAR products processed by ASF's HyP3 to Google Earth Engine.
Jupyter Notebook
23
star
13

ee-js-to-python-syntax

Simplistic conversion of earthengine JavaScript to Python syntax.
Jupyter Notebook
18
star
14

msslib

An Earth Engine JavaScript library for working with Landsat MSS image data.
JavaScript
17
star
15

eeconvert

earth engine conversion for jupyter notebook use
Python
16
star
16

geo-aquawatch-water-quality

Code produced for the GEE-GEO Aquawatch project.
Jupyter Notebook
10
star
17

ee-community

9
star
18

GEE-Dev-Docs

A collaborative platform for accessing and submitting Google Earth Engine tutorials.
CSS
8
star
19

eetasks

Earth Engine tasks monitoring in vscode
TypeScript
6
star
20

ee-packages-js

JavaScript version of useful Google Earth Engine scripts and examples
JavaScript
5
star
21

pygaul

Easy access to administrative boundary defined by FAO GAUL from Python scripts
Python
3
star
22

gee-community.github.io

2
star
23

geeMigrator

Method to facilitate migration of GEE assets from one account to another
Python
2
star
24

pytest-gee

The pytest plugin for your gee package 🌍
Python
2
star
25

eefa-notebook

Python scripts and Jupyter notebooks for the EEFA book
1
star