Earth Engine 101
Noel Gorelick
goo.gl/9sYsqW
Overview
What Is Earth Engine?
"Big Data" analysis and visualization platform
Inherently parallel system
Designed for scientists, not software engineers
Goals: make it easy, enable non-traditional users
What Is Earth Engine?
"Big Data" analysis and visualization platform
Inherently parallel system
Designed for scientists, not software engineers
Goals: make it easy, enable non-traditional users
Focused on society's biggest challenges
Deforestation Climate Change
Drought Conflict
Disaster Global Food Security
Disease Sustainability
9PB Public Data Catalog
Imagery
Landsat 4-8 7 bands, 30m
MODIS 250m Daily Global
Sentinel-1 10m SAR
Sentinel-2 12 bands, 10/20/60m
Geophysical
Digital Elevation
Land Cover
Surface Temperature, etc.
Weather Forecasts, Climate Models
+300 more analysis ready datasets
How Do I Use It?
Javascript API
Interactive Code Editor
Node.js*
Python API
Python module
Web Apps with Appengine
Jupyter Notebooks*
Concepts
Data Models
Feature
Line / Point / Polygon
List of Properties
TNC Ecoregions
Data Models
Feature
Image
Stack of Georeferenced bands
Each band has its own:
Mask, Projection, Resolution
A list of properties, including:
Date, Bounding-box
Data Models
Feature
Image
Collection
Bag of Elements
Table of Features
Directory of Images
Filter, Sort, Join, Map, Reduce
Map
Apply a function to each element of a collection
A "For Each" operation
Examples
Reduce
Apply a function to everything in a collection
"Aggregation"
Examples
Reducers in Earth Engine
8 ways to reduce
Image.reduce
Image.reduceNeighborhood
Image.reduceRegion
Image.reduceRegions
Image.reduceToVectors
ImageCollection.reduce
FeatureCollection.reduceColumns
FeatureCollection.ReduceToImage
40+ reducers
Reducer.allNonZero
Reducer.and
Reducer.anyNonZero
Reducer.count
Reducer.countEvery
Reducer.histogram
Reducer.intervalMean
Reducer.linearFit
Reducer.linearRegression
Reducer.max
Reducer.mean
Reducer.median
Reducer.min
Reducer.minMax
Reducer.mode
Reducer.or
Reducer.percentile
Reducer.product
Reducer.sampleStdDev
Reducer.sampleVariance
Reducer.stdDev
Reducer.sum
Reducer.toCollection
Reducer.toList
Reducer.variance
Reduce Bands
B1
B2
B3
B4
+ B5
103
Reduce Image Collection
Google Confidential and Proprietary
Reduce Neighborhood
B1
B2
B3
B4
B5
Reduce Region
B1
B2
B3
B4
B5
Dictionary
{
B1: 8.3,
B2: 14,
B3: 176,
B4: 1.6,
B5: 7
}
Reduce Regions
B1
B2
B3
B4
B5
| |
B1 |
B2 |
B3 |
B4 |
B5 |
| F1 |
|
|
|
|
|
| F2 |
|
|
|
|
|
| F3 |
|
|
|
|
|
FeatureCollection
F1
F2
F3
Reduce To Vectors
labels
B1
B2
B3
B4
| |
B1 |
B2 |
B3 |
B4 |
| F1 |
|
|
|
|
| F2 |
|
|
|
|
| F3 |
|
|
|
|
| F4 |
|
|
|
|
| F5 |
|
|
|
|
| ... |
|
|
|
|
FeatureCollection
Band Math
+
=
Band Math
+
=
+
=
A Computation Example
Landsat
Image Collection
A Computation Example
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
A Computation Example
Surface reflectance
Image
Metadata
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
A Computation Example
Add NDVI band
NIR Band
Red Band
Surface reflectance
Image
Metadata
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
A Computation Example
Composite: max(NDVI)
Index Band:
NDVI
Add NDVI band
NIR Band
Red Band
Surface reflectance
Image
Metadata
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
A Computation Example
RGB Visualization
Bands: B4, B3, B2
min: 0.3
max: 0.8
Index band:
NDVI
Composite: max(NDVI)
Index Band:
NDVI
Add NDVI band
NIR Band
Red Band
Surface reflectance
Image
Metadata
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
A Computation Example
Map: Reproject to Mercator
EPSG:3785
Scale: 30m
RGB Visualization
Bands: B4, B3, B2
min: 0.3
max: 0.8
Index band:
NDVI
Composite: max(NDVI)
Index Band:
NDVI
Add NDVI band
NIR Band
Red Band
Surface reflectance
Image
Metadata
Filter by date
2001-01-01
2003-12-31
Landsat
Image Collection
Tiling
Images are tiled during ingestion
Tiling
Images are tiled during ingestion
Tiling
Images are tiled during ingestion
Downsampled by averaging
Tiling
Images are tiled during ingestion
Downsampled by averaging
Tiling
Images are tiled during ingestion
Downsampled by averaging
During computation
Tiling
Images are tiled during ingestion
Downsampled by averaging
During computation
Compute output tiles
Tiling
Images are tiled during ingestion
Downsampled by averaging
During computation
Compute output tiles
Tiling
Images are tiled during ingestion
Downsampled by averaging
During computation
Compute output tiles
Find intersecting source tiles
Reproject into the output projection
Running a Computation
Scripts: goo.gl/bno3Qo