Skip to main content

A lightweight Python package for interactive mapping with Google Earth Engine and folium

Project description

# Welcome to eefolium

[![image](https://colab.research.google.com/assets/colab-badge.svg)](https://gishub.org/eefolium-colab) [![image](https://binder.pangeo.io/badge_logo.svg)](https://binder.pangeo.io/v2/gh/giswqs/eefolium/master) [![image](https://img.shields.io/pypi/v/eefolium.svg)](https://pypi.python.org/pypi/eefolium) [![image](https://img.shields.io/conda/vn/conda-forge/eefolium.svg)](https://anaconda.org/conda-forge/eefolium) [![image](https://pepy.tech/badge/eefolium)](https://pepy.tech/project/eefolium) [![image](https://github.com/giswqs/eefolium/workflows/docs/badge.svg)](https://eefolium.org) [![image](https://github.com/giswqs/eefolium/workflows/build/badge.svg)](https://github.com/giswqs/eefolium/actions?query=workflow%3Abuild) [![image](https://img.shields.io/badge/YouTube-Channel-red)](https://www.youtube.com/c/QiushengWu) [![image](https://img.shields.io/twitter/follow/giswqs?style=social)](https://twitter.com/giswqs) [![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

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

## Introduction

eefolium is a Python package for interactive mapping with [Google Earth Engine](https://earthengine.google.com/) (GEE), which is a cloud computing platform with a [multi-petabyte catalog](https://developers.google.com/earth-engine/datasets/) 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](https://developers.google.com/earth-engine) and interactive IDE (i.e., [GEE JavaScript Code Editor](https://code.earthengine.google.com/)) of the GEE JavaScript API, the GEE Python API has relatively little documentation and limited functionality for visualizing results interactively. The eefolium Python package was created to fill this gap. It is built upon [ipyleaflet](https://github.com/jupyter-widgets/ipyleaflet) and [ipywidgets](https://github.com/jupyter-widgets/ipywidgets), and enables users to analyze and visualize Earth Engine datasets interactively within a Jupyter-based environment.

eefolium 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](https://github.com/giswqs/eefolium/blob/master/eefolium/conversion.py) of the eefolium 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 the [examples page](https://github.com/giswqs/eefolium/tree/master/examples). For complete documentation on eefolium modules and methods, please visit the [API Reference](https://eefolium.org/eefolium/).

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

## Key Features

Below is a partial list of features available for the eefolium package. Please check the [examples](https://github.com/giswqs/eefolium/tree/master/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.

## YouTube Channel

I have created a [YouTube Channel](https://www.youtube.com/c/QiushengWu) for sharing eefolium tutorials. You can subscribe to my channel for regular updates. If there is any specific tutorial you would like to see, please submit a feature request [here](https://github.com/giswqs/eefolium/issues).

[![Earth Engine Tutorials on YouTube](https://wetlands.io/file/images/youtube.png)](https://www.youtube.com/c/QiushengWu)

Project details


Download files

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

Source Distribution

eefolium-0.0.4.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

eefolium-0.0.4-py2.py3-none-any.whl (43.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file eefolium-0.0.4.tar.gz.

File metadata

  • Download URL: eefolium-0.0.4.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for eefolium-0.0.4.tar.gz
Algorithm Hash digest
SHA256 190cc3f079f04a9bfbfeb71ecaa04540cdac28cf2817c0a876c5a86d430fc2a7
MD5 3971e27f20efc164b92c74b57c4672c3
BLAKE2b-256 55ebe97893d8e381d1aa8a823f93c96df25c672202786f764118295b66462da1

See more details on using hashes here.

File details

Details for the file eefolium-0.0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: eefolium-0.0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0

File hashes

Hashes for eefolium-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 afa5cda7a53abded5d232edb73d33766b5aaf26771c162a1ea0c6d1479454fff
MD5 39eba607147aa7b4267f89f0a3362230
BLAKE2b-256 d587aa0fa40002c00877be924cb4609c8e0dd55c5cf1510dbafe725e24247cff

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page