Giter VIP home page Giter VIP logo

eefolium's Introduction

Welcome to eefolium

image image image image image image image image image image

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 (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 eefolium 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.

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 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. For complete documentation on eefolium modules and methods, please visit the API Reference.

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

  • Wu, Q., (2020). eefolium: 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)

Key Features

Below is a partial list of features available for the eefolium 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.

YouTube Channel

I have created a YouTube Channel 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.

Earth Engine Tutorials on YouTube

eefolium's People

Contributors

giswqs avatar trellixvulnteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

eefolium's Issues

eefolium

Hi

l am trying import eefolium by GEE. but it shows ModuleNotFoundError: No module named 'geemap.eefolium'

import geemap
Map = geemap.Map(center=[40,-100], zoom=4)
Map

import geemap.eefolium as emap
Map = emap.Map(center=[40,-100], zoom=4)
Map

image

No split map function

  • eefolium version:
  • Python version: 0.2.0
  • Operating System: Windows 11

Description

I was trying to implement a split_map function using eefolium as described in the documentation similar to what is implemented on geemap.
Although the documentation on eefolium indicates there is a Map.split_map( ) function, this does not seem to be the case as I keep receiving an AttributeError: Map object has no attribute 'split_map'.

I think it will be a great idea to include the implementation of a split_map function similar to what is available on geemap. I am especially using eefolium over geemap because it allows me to serialize the map object using; Map._repr_html_() function which is an important feature for me.

What I Did

class_vis_params = {'palette': ['#008000', ' #0000ff', ' #ff0000', ' #ffff00'], 'min': 1.0, 'max': 4.0, 'opacity': 1.0,}
from eefolium import Map
Map = eefolium.Map()

left_layer = geemap.ee_tile_layer(lulc_start, class_vis_params, "lulc_start")
right_layer = geemap.ee_tile_layer(lulc_end, class_vis_params, "lulc_end")

Map.split_map(left_layer, right_layer)

Crash

Crash:
AttributeError                            Traceback (most recent call last)
Cell In[54], line 8
      5 left_layer = geemap.ee_tile_layer(lulc_start, class_vis_params, "lulc_start")
      6 right_layer = geemap.ee_tile_layer(lulc_end, class_vis_params, "lulc_end")
----> 8 Map.split_map(left_layer, right_layer)
     10 Map

AttributeError: 'Map' object has no attribute 'split_map'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.