earth engine的地理大数据 university of tennessee, knoxville
TRANSCRIPT
基于Earth Engine的地理大数据时空分析与交互式制图
吴秋生Qiusheng Wu, PhD
Department of GeographyUniversity of Tennessee, Knoxville
https://wetlands.io
https://gishub.org/wgdc
全球前沿科技青年科学家论坛WGDC2020全球地理信息开发者大会
slides
Outline
● Earth Engine overview● Earth Engine APIs● Introducing geemap● Geemap resources● Key geemap features● Earth Engine Apps● Q&A
2
Earth Engine overview
3
Google Earth vs. Earth Engine
● Google Earth○ Google Earth enables you to travel and learn about the world through a virtual globe. You can
view satellite imagery, maps, terrain, 3D buildings and much more.
● Earth Engine○ Earth Engine, on the other hand, is a tool for analyzing geospatial information. ○ Although Earth Engine has a data catalog, not everything available in Google Earth is
available for analysis in the Earth Engine catalog. Similarly, much of the data in Earth Engine is not currently available for visualization in Google Earth.
4https://earthengine.google.com https://google.com/earth
vs.
Image Viewer Photoshop
Earth Engine Data Catalog
5
600+ public datasets
MODIS250m daily
Vector DataWDPA, TIGER, WHC
Weather & ClimateNOAA NCEP, OMI, ...
Terrain &Land Cover
1+ PB of new data every month100+ datasets added yearly
30+ petabytes of data
Landsat & Sentinel10-30m, weekly
... and upload your own vectors and rasters
https://developers.google.com/earth-engine/datasets/
Credits to Michael DeWitt
Earth Engine APIs
6
Earth Engine JavaScript Code Editor
7
https://code.earthengine.google.com/
Landsat NDWI example: https://code.earthengine.google.com/6850087dba0919bb8ca89de3ba363eac
Earth Engine JavaScript API vs. Python APIEarth Engine JavaScript Code Editor
● Rich documentation and tutorials● Easy to get started● Built-in interactive mapping functionality● Built-in authentication● Earth Engine Apps● Can’t install additional package
8
Earth Engine Python API
● Limited documentation and tutorials ● Easier language syntax● Easy to share code between scripts● Batch processing (e.g., exporting images)● Executing code block by block● More IDEs with debugging capability● Numerous Python packages● Many plotting and visualization options● Integration with open-source GIS ● A lot of basemaps to choose from● Accessing data stored locally● Deep learning
Credits to Tyler Erickson
Earth Engine JavaScript API vs. Python API
9
How to make Sichuan boiled fish?
10
Home kitchen
Five-star hotel kitchen
Traditional approach
Google Earth Engine
Introducing geemap
11
About geemap
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
12
Introducing geemap
● A Python package for interactive mapping with Google Earth Engine and ipyleaflet.
● GitHub: https://github.com/giswqs/geemap
13
Installing geemap● PyPI
○ pip install geemap
● conda-forge○ conda create -n gee python○ conda activate gee○ conda install -c conda-forge geemap
● How to update geemap?○ pip install -U geemap○ conda update -c conda-forge geemap○ geemap.update_package()
14
Geemap resources
15
Geemap resources
geemap:
● GitHub repository: https://github.com/giswqs/geemap ● Jupyter notebooks: https://github.com/giswqs/geemap/tree/master/examples● Blog posts: https://blog.gishub.org ● Video tutorials - YouTube: https://www.youtube.com/c/QiushengWu ● Video tutorials - Bilibili: https://space.bilibili.com/527404442
Want to learn more?
● earthengine-py-notebooks: 360+ notebook examples for using GEE● qgis-earthengine-examples: 300+ Python examples for using GEE in QGIS● Awesome-GEE: A curated list of Google Earth Engine resources
16
Video tutorials
17
https://gishub.org/youtube-gee http://gishub.org/bilibili
Video tutorials1. Introducing the geemap Python package for interactive mapping with Google Earth Engine (video | gif | notebook)2. Using basemaps in geemap and ipyleaflet for interactive mapping with Google Earth Engine (video | gif | notebook)3. Introducing the Inspector tool for Earth Engine Python API (video | gif | notebook)4. Creating a split-panel map for visualizing Earth Engine data (video | gif | notebook)5. Using drawing tools to interact with Earth Engine data (video | gif | notebook)6. Creating an interactive map with a marker cluster (video | gif | notebook)7. Converting data formats between GeoJSON and Earth Engine (video | gif | notebook)8. Automated conversion from Earth Engine JavaScripts to Python scripts and Jupyter notebooks (video | gif | notebook)9. Interactive plotting of Earth Engine data with minimal coding (video | gif | notebook)
10. Using shapefiles with Earth Engine without having to upload data to GEE (video | gif | notebook)11. Exporting Earth Engine Image and ImageCollection as GeoTIFF and Numpy array (video | gif | notebook)12. Computing zonal statistics with Earth Engine and exporting results as CSV or shapefile (video | gif | notebook)13. Calculating zonal statistics by group with Earth Engine (video | gif | notebook)14. Adding a customized legend for Earth Engine data (video | gif | notebook)15. Converting Earth Engine JavaScripts to Python code directly within Jupyter notebook (video | gif | notebook)16. Adding animated text to GIF images generated from Earth Engine data (video | gif | notebook)17. Adding colorbar and images to GIF animations generated from Earth Engine data (video | gif | notebook)18. Creating Landsat timelapse animations with animated text using Earth Engine (video | gif | notebook)19. How to search and import datasets from Earth Engine Data Catalog (video | gif | notebook)20. Using timeseries inspector to visualize landscape changes over time (video | gif | notebook)
18
http://gishub.org/geemap
Video tutorials1. Exporting Earth Engine maps as HTML files and PNG images (video | gif | notebook)2. How to import Earth Engine Python scripts into Jupyter notebook? (video | gif | notebook)3. How to search Earth Engine API and import assets from GEE personal account? (video | gif | notebook)4. How to publish interactive Earth Engine maps? (video | gif | notebook)5. How to load local raster datasets with geemap? (video | gif | notebook)6. How to create and deploy Earth Engine Apps using Python? (video | gif | notebook)7. How to create an interactive Earth Engine App for creating Landsat timelapse? (video | gif | notebook)8. How to use your local computer as a web server for hosting Earth Engine Apps? (video | gif | notebook)9. How to use pydeck for rendering Earth Engine data (video | gif | notebook)
10. How to get image basic properties and descriptive statistics (video | gif | notebook)11. Machine Learning with Earth Engine - Unsupervised Classification (video | gif | notebook)12. Machine Learning with Earth Engine - Supervised Classification (video | gif | notebook)
19
http://gishub.org/geemap
Want more tutorials?
● A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping (https://github.com/giswqs/earthengine-py-notebooks)
● Submit a Feature Request on the geemap GitHub repository (https://github.com/giswqs/geemap/issues )
● Follow my Google Earth Engine Project on Research Gate (https://www.researchgate.net/project/Google-Earth-Engine-4)
20
Key geemap features
21
Key features
● Search and import datasets from Earth Engine Data Catalog
22
Key features
● Add basemaps (e.g., XYZ and WMS tiles) not available in GEE JavaScript Code Editor
23
https://viewer.nationalmap.gov/services/
Key features
● Use the Inspector tool to interact with Earth Engine data
24
Key features
● Interactive plotting of Earth Engine data with minimal coding
25
Key features
● Create timelapse animations with animated text
26
Key features
● Use timeseries inspector to visualize landscape changes over time
27
Key features
● Machine learning with Earth Engine
28
Earth Engine Apps
29
Earth Engine Apps
30
GEE Apps are "Code Editor" windows without the code. They enable EE users to create tools for their users.
https://www.earthengine.app/
RSE Paper
31
● Earth Engine App● GEE Source Code● GitHub Repo
https://gishub.org/2019-rse
download article
Earth Engine App
32
Study Area and Geospatial Datasets
33
▪ Study Area▪ 3 HUC-8 subbasins (16,576 km2 in total)
▪ 26 HUC-10 watersheds (318 ~ 998 km2)
▪ Datasets▪ LiDAR data (2011-2016) - 107.65 GB
▪ NAIP imagery (2009, 2010, 2012, 2014, 2015, 2017)
▪ National Wetlands Inventory [NWI] (1980s)
▪ JRC Global Surface Water (1984-2018)
Multi-temporal NAIP aerial imagery (1-m)
34
NAIP-derived Wetland Inundation Maps
35
Landsat-derived Inundation Maps
36
Any questionsQiusheng Wu, PhD
Department of GeographyUniversity of TennesseeEmail: [email protected]
Website: https://wetlands.io Twitter: https://twitter.com/giswqs
wetlands.io
Thank you!