This book guides its audience—which can range from novice users to experts— though a 55-chapter tour of Google Earth Engine. A sequenced and diverse set of lab materials, this is the product of more than a year of effort from more than a hundred individuals, collecting new exercises from professors, undergraduates, master’s students, PhD students, postdocs, and independent consultants.
Cloud Based Remote Sensing with Google Earth Engine is broadly organized into two halves. The first half, Fundamentals, is a set of 31 labs designed to take the reader from being a complete Earth Engine novice to being a quite advanced user. The second half, Applications, presents a tour of the world of Earth Engine across 24 chapters, showing how it is used in a very wide variety of settings that rely on remote-sensing data
This is an open access book.
Conditions of Use
This book is licensed under a Creative Commons License (CC BY-NC-SA). You can download the ebook Cloud-Based Remote Sensing with Google Earth Engine for free.
- Title
- Cloud-Based Remote Sensing with Google Earth Engine
- Subtitle
- Fundamentals and Applications
- Publisher
- Springer
- Author(s)
- David Saah, Jeffrey A. Cardille, Morgan A. Crowley, Nicholas E. Clinton
- Published
- 2023-10-04
- Edition
- 1
- Format
- eBook (pdf, epub, mobi)
- Pages
- 1226
- Language
- English
- ISBN-10
- 3031265904
- ISBN-13
- 9783031265884
- License
- CC BY-NC-SA
- Book Homepage
- Free eBook, Errata, Code, Solutions, etc.
Foreword Introduction Fundamentals Part I: Programming and Remote Sensing Basics Part II: Interpreting Images Part III: Advanced Image Processing Part IV: Interpreting Image Series Part V: Vectors and Tables Part VI: Advanced Topics Applications Part VII: Human Applications Part VIII: Aquatic and Hydrological Applications Part IX: Terrestrial Applications Uses of This Book We Want Your Feedback Acknowledgements Other Sources Contents Part IProgramming and Remote Sensing Basics 1 JavaScript and the Earth Engine API 1.1 Introduction to Theory 1.2 Practicum 1.2.1 Section 1: Getting Started in the Code Editor 1.2.2 Section 2: JavaScript Basics 1.2.3 Section 3: Earth Engine API Basics 1.3 Synthesis 1.4 Conclusion 2 Exploring Images 2.1 Practicum 2.1.1 Section 1: Accessing an Image 2.1.2 Section 2: Visualizing an Image 2.1.3 Section 3: True-Color Composites 2.1.4 Section 4: False-Color Composites 2.1.5 Section 5: Additive Color System 2.1.6 Section 6: Attributes of Locations 2.1.7 Section 7: Abstract RGB Composites 2.2 Synthesis 2.3 Conclusion 3 Survey of Raster Datasets 3.1 Introduction to Theory 3.2 Practicum 3.2.1 Section 1: Image Collections: An Organized Set of Images 3.2.2 Section 2: Collections of Single Images 3.2.3 Section 3: Pre-made Composites 3.2.4 Section 4: Other Satellite Products 3.2.5 Section 5: Pre-classified Land Use and Land Cover 3.2.6 Section 6: Other Datasets 3.3 Synthesis 3.4 Conclusion References 4 The Remote Sensing Vocabulary 4.1 Introduction to Theory 4.2 Practicum 4.2.1 Section 1: Searching for and Viewing Image Collection Information 4.2.2 Section 2: Spatial Resolution 4.2.3 Section 3: Temporal Resolution 4.2.4 Section 4: Spectral Resolution 4.2.5 Section 5: Per-Pixel Quality 4.2.6 Section 6: Metadata 4.3 Synthesis 4.4 Conclusion Reference Part IIInterpreting Images 5 Image Manipulation: Bands, Arithmetic, Thresholds, and Masks 5.1 Introduction to Theory 5.2 Practicum 5.2.1 Section 1: Band Arithmetic in Earth Engine 5.2.2 Section 2: Thresholding, Masking, and Remapping Images 5.3 Synthesis 5.4 Conclusion References 6 Interpreting an Image: Classification 6.1 Introduction to Theory 6.2 Practicum 6.2.1 Section 1: Supervised Classification 6.2.2 Section 2: Unsupervised Classification 6.3 Synthesis 6.4 Conclusion References 7 Accuracy Assessment: Quantifying Classification Quality 7.1 Introduction to Theory 7.2 Practicum 7.2.1 Quantifying Classification Accuracy Through a Confusion Matrix 7.2.2 Hyperparameter Tuning 7.2.3 Spatial Autocorrelation 7.3 Synthesis 7.4 Conclusion References Part IIIAdvanced Image Processing 8 Interpreting an Image: Regression 8.1 Introduction to Theory 8.2 Practicum 8.2.1 Reducers 8.3 Section 1: Linear Fit 8.3.1 Section 2: Linear Regression 8.3.2 Section 3: Nonlinear Regression 8.3.3 Section 4: Assessing Regression Performance Through RMSE 8.4 Synthesis 8.5 Conclusion References 9 Advanced Pixel-Based Image Transformations 9.1 Introduction to Theory 9.2 Practicum 9.2.1 Section 1: Manipulating Images with Expressions 9.2.2 Section 2: Manipulating Images with Matrix Algebra 9.2.3 Section 3: Spectral Unmixing 9.2.4 Section 4: The Hue, Saturation, Value Transform 9.3 Synthesis 9.4 Conclusion References 10 Neighborhood-Based Image Transformation 10.1 Introduction to Theory 10.2 Practicum 10.2.1 Section 1: Linear Convolution 10.2.2 Section 2: Nonlinear Convolution 10.2.3 Section 3: Morphological Processing 10.2.4 Section 4: Texture 10.3 Synthesis 10.4 Conclusion References 11 Object-Based Image Analysis 11.1 Introduction to Theory 11.2 Practicum 11.2.1 Section 1: Unsupervised Classification 11.2.2 Section 2: Detecting Objects in Imagery with the SNIC Algorithm 11.2.3 Section 3: Object-Based Unsupervised Classification 11.2.4 Section 4: Classifications with More or Less Categorical Detail 11.2.5 Section 5: Effects of SNIC Parameters 11.3 Synthesis 11.4 Conclusion References Part IVInterpreting Image Series 12 Filter, Map, Reduce 12.1 Introduction to Theory 12.2 Practicum 12.2.1 Section 1: Filtering Image Collections in Earth Engine 12.2.2 Section 2: Mapping over Image Collections in Earth Engine 12.2.3 Section 3: Reducing an Image Collection 12.3 Synthesis 12.4 Conclusion 13 Exploring Image Collections 13.1 Practicum 13.1.1 Section 1: Filtering and Inspecting an Image Collection 13.1.2 Section 2: How Many Images Are There, Everywhere on Earth? 13.1.3 Section 3: Reducing Image Collections to Understand Band Values 13.1.4 Section 4: Compute Multiple Percentile Images for an Image Collection 13.2 Synthesis 13.3 Conclusion Reference 14 Aggregating Images for Time Series 14.1 Introduction to Theory 14.2 Practicum 14.2.1 Section 1: Filtering an Image Collection 14.2.2 Section 2: Working with Dates 14.2.3 Section 3: Aggregating Images 14.2.4 Section 4: Plotting Time Series 14.3 Synthesis 14.4 Conclusion References 15 Clouds and Image Compositing 15.1 Introduction to Theory 15.2 Practicum 15.2.1 Section 1: Cloud Filter and Cloud Mask 15.2.2 Section 2: Incorporating Data from Other Satellites 15.2.3 Section 3: Best-Available-Pixel Compositing Earth Engine Application 15.3 Synthesis 15.4 Conclusion References 16 Change Detection 16.1 Introduction to Theory 16.2 Practicum 16.2.1 Section 1: Preparing Imagery 16.2.2 Section 2: Creating False-Color Composites 16.2.3 Section 3: Calculating NBR 16.2.4 Section 4: Single Date Transformation 16.2.5 Section 5: Classifying Change 16.3 Synthesis 16.4 Conclusion References 17 Interpreting Annual Time Series with LandTrendr 17.1 Introduction to Theory 17.2 Practicum 17.2.1 Section 1: Pixel Time Series 17.2.2 Section 2: Translating Pixels to Maps 17.3 Synthesis 17.4 Conclusion References 18 Fitting Functions to Time Series 18.1 Introduction to Theory 18.2 Practicum 18.2.1 Section 1: Multi-temporal Data in Earth Engine 18.2.2 Section 2: Data Preparation and Preprocessing 18.2.3 Section 3: Estimating Linear Trend Over Time 18.2.4 Section 4: Estimating Seasonality with a Harmonic Model 18.2.5 Section 5: An Application of Curve Fitting 18.2.6 Section 6: Higher-Order Harmonic Models 18.3 Synthesis 18.4 Conclusion References 19 Interpreting Time Series with CCDC 19.1 Introduction to Theory 19.2 Practicum 19.2.1 Section 1: Understanding Temporal Segmentation with CCDC 19.2.2 Section 2: Running CCDC 19.2.3 Section 3: Extracting Break Information 19.2.4 Section 4: Extracting Coefficients Manually 19.2.5 Section 5: Extracting Coefficients Using External Functions 19.3 Synthesis 19.4 Conclusion References 20 Data Fusion: Merging Classification Streams 20.1 Introduction to Theory 20.2 Practicum 20.2.1 Section 1: Imagery and Classifications of the Roosevelt River 20.2.2 Section 2: Basics of the BULC Interface 20.2.3 Section 3: Detailed LULC Inspection with BULC 20.2.4 Section 4: Change Detection with BULC-D 20.2.5 Section 5: Change Detection with BULC and Dynamic World 20.3 Synthesis 20.4 Conclusion References 21 Exploring Lagged Effects in Time Series 21.1 Introduction to Theory 21.2 Practicum 21.2.1 Section 1: Autocovariance and Autocorrelation 21.2.2 Section 2: Cross-Covariance and Cross-Correlation 21.2.3 Section 3: Auto-Regressive Models 21.3 Synthesis 21.4 Conclusion References Part VVectors and Tables 22 Exploring Vectors 22.1 Introduction to Theory 22.2 Practicum 22.2.1 Section 1: Using Geometry Tools to Create Features in Earth Engine 22.2.2 Section 2: Loading Existing Features and Feature Collections in Earth Engine 22.2.3 Section 3: Importing Features into Earth Engine 22.2.4 Section 4: Filtering Feature Collections by Attributes 22.2.5 Section 5: Reducing Images Using Feature Geometry 22.2.6 Section 6: Identifying the Block in the Neighborhood Surrounding USF with the Highest NDVI 22.3 Synthesis 22.4 Conclusion 23 Raster/Vector Conversions 23.1 Introduction to Theory 23.2 Practicum 23.2.1 Section 1: Raster to Vector Conversion 23.2.2 Section 2: Vector-To-Raster Conversion 23.3 Synthesis 23.4 Conclusion 24 Zonal Statistics 24.1 Introduction to Theory 24.2 Practicum 24.2.1 Section 1: Functions 24.2.2 Section 2: Point Collection Creation 24.2.3 Section 3: Neighborhood Statistic Examples 24.2.4 Section 4: Additional Notes 24.3 Synthesis 24.4 Conclusion References 25 Advanced Vector Operations 25.1 Practicum 25.1.1 Section 1: Visualizing Feature Collections 25.1.2 Section 2: Joins with Feature Collections 25.2 Synthesis 25.3 Conclusion 26 GEEDiT—Digitizing from Satellite Imagery 26.1 Introduction to Theory 26.2 Practicum 26.2.1 Section 1: Loading GEEDiT and Selecting Imagery Options and a Location 26.2.2 Section 2: GEEDiT Digitisation Interface 26.2.3 Section 3: Making GEEDiT Fit Your Own Purposes (Advanced) 26.3 Synthesis 26.4 Conclusion References Part VIAdvanced Topics 27 Advanced Raster Visualization 27.1 Introduction to Theory 27.2 Practicum 27.2.1 Section 1: Palettes 27.2.2 Section 2: Remapping and Palettes 27.2.3 Section 3: Annotations 27.2.4 Section 4: Animations 27.2.5 Section 5: Terrain Visualization 27.3 Synthesis 27.4 Conclusion References 28 Collaborating in Earth Engine with Scripts and Assets 28.1 Introduction to Theory 28.2 Practicum 28.2.1 Section 1: Using Get Link to Share a Script 28.2.2 Section 2: Sharing Assets from Your Asset Manager 28.2.3 Section 3: Working with Shared Repositories 28.2.4 Section 4: Using the Require Function to Load a Module 28.3 Synthesis 28.4 Conclusion References 29 Scaling up in Earth Engine 29.1 Introduction to Theory 29.2 Practicum 29.2.1 Topic 1: Scaling Across Time 29.2.2 Topic 2: Scaling Across Space via Spatial Tiling 29.2.3 Topic 3: Multistep Workflows and Intermediate Assets 29.3 Synthesis and Conclusion References 30 Sharing Work in Earth Engine: Basic UI and Apps 30.1 Introduction to Theory 30.2 Practicum 30.2.1 Section 1. Building an Earth Engine App Using JavaScript 30.2.2 Section 2. Publishing an Earth Engine App from the Code Editor 30.2.3 Section 3. Developing an Earth Engine App Using geemap 30.2.4 Section 4. Publishing an Earth Engine App Using a Local Web Server 30.2.5 Section 5. Publish an Earth Engine App Using Cloud Platforms 30.3 Synthesis 30.4 Conclusion References 31 Combining R and Earth Engine 31.1 Introduction to Theory 31.2 Practicum 31.2.1 Section 1. Installing rgee 31.2.2 Section 2. Creating a 3D Population Density Map with rgee and rayshader 31.2.3 Section 3. Displaying Maps Interactively 31.2.4 Section 4. Integrating rgee with Other Python Packages 31.2.5 Section 5. Converting JavaScript Modules to R 31.3 Synthesis 31.4 Conclusion References Part VIIHuman Applications 32 Agricultural Environments 32.1 Introduction to Theory 32.2 Practicum 32.2.1 Section 1. Pull All Landsat Imagery for the Study Area 32.2.2 Section 2. Add Bands to Landsat Images for Harmonic Regression 32.2.3 Section 3. Fit a Harmonic Regression at Each Landsat Pixel 32.2.4 Section 4. Train and Evaluate a Random Forest Classifier 32.3 Synthesis 32.4 Conclusion References 33 Urban Environments 33.1 Introduction to Theory 33.2 Practicum 33.2.1 Section 1. Time Series Animation 33.2.2 Section 2. Pre-existing Urban Classifications 33.2.3 Section 3. Classifying Urban Areas 33.3 Synthesis 33.4 Conclusion References 34 Built Environments 34.1 Introduction to Theory 34.2 Practicum 34.2.1 Section 1. Road Characteristics 34.2.2 Section 2. Road and Transmission Line Comparison 34.2.3 Section 3. Impervious Surfaces and Flooding 34.3 Synthesis 34.4 Conclusion References 35 Air Pollution and Population Exposure 35.1 Introduction to Theory 35.2 Practicum 35.2.1 Section 1: Data Importing and Cleaning 35.2.2 Section 2: Quantifying and Visualizing Changes 35.2.3 Section 3: Calculating Population-Weighted Concentrations 35.3 Synthesis 35.4 Conclusion References 36 Heat Islands 36.1 Introduction to Theory 36.2 Practicum 36.2.1 Deriving Land Surface Temperature 36.2.2 Deriving Land Surface Temperature from MODIS 36.3 Synthesis 36.4 Conclusion References 37 Health Applications 37.1 Introduction to Theory 37.2 Practicum 37.2.1 Section 1: Data Import 37.2.2 Section 2: Date Preparation 37.2.3 Section 3: Precipitation 37.2.4 Section 4: Land Surface Temperature 37.2.5 Section 5: Spectral Index: NDWI 37.2.6 Section 6: Map Display 37.2.7 Section 7: Exporting 37.2.8 Section 8: Importing and Viewing External Analysis Results 37.3 Synthesis 37.4 Conclusion References 38 Humanitarian Applications 38.1 Introduction to Theory 38.2 Practicum 38.2.1 Section 1: Seeing Refugee Settlements from Above 38.2.2 Section 2: Mapping Features Within the Refugee Settlement 38.2.3 Section 3: Delineating Refugee Settlement Boundaries 38.2.4 Section 4: Estimating Refugee Population Within the Settlement 38.3 Synthesis 38.4 Conclusion References 39 Monitoring Gold Mining Activity Using SAR 39.1 Introduction to Theory 39.2 Practicum 39.2.1 Section 1: Creating a Single SAR Mosaic 39.2.2 Section 2: Creating a SAR Mosaic Time Series 39.2.3 Section 3: Generate SAR Change Detection 39.2.4 Section 4: Filtering and Post-processing Alerts 39.3 Synthesis 39.4 Conclusion References Part VIIIAquatic and Hydrological Applications 40 Groundwater Monitoring with GRACE 40.1 Introduction to Theory 40.2 Practicum 40.2.1 Section 1: Exploring the Study Area 40.2.2 Section 2: Tracking Total Water Storage Changes in California with GRACE 40.2.3 Section 3: Tracking Changes in Soil Water Storage and Snow Water Equivalent in California 40.2.4 Section 4: Importing a Table of Surface Water Storage 40.2.5 Section 5: Combining Image Collections 40.3 Synthesis 40.4 Conclusion References 41 Benthic Habitats 41.1 Introduction to Theory 41.2 Practicum 41.2.1 Section 1: Inputting Data 41.2.2 Section 2: Preprocessing Functions 41.2.3 Section 3: Supervised Classification 41.2.4 Section 4: Bathymetry by Random Forests Regression 41.3 Synthesis 41.4 Conclusion References 42 Surface Water Mapping 42.1 Introduction to Theory 42.2 Practicum 42.2.1 Otsu Thresholding 42.2.2 Adaptive Thresholding 42.2.3 Extracting Flood Areas 42.3 Synthesis 42.4 Conclusion References 43 River Morphology 43.1 Introduction to Theory 43.2 Practicum 43.2.1 Creating and Analyzing a Single River Mask 43.2.2 Multitemporal River Width 43.2.3 Riverbank Erosion 43.3 Synthesis 43.4 Conclusion References 44 Water Balance and Drought 44.1 Introduction to Theory 44.2 Practicum 44.2.1 Section 1: Calculating Monthly Precipitation 44.2.2 Section 2: Calculating Monthly Evapotranspiration 44.2.3 Section 3: Monthly Water Balance 44.2.4 Section 4: Vegetation and Drought Indices 44.2.5 Section 5: Partitioning Water Resources and Mapping Drought Impacts 44.3 Synthesis 44.4 Conclusion References 45 Defining Seasonality: First Date of No Snow 45.1 Introduction to Theory 45.2 Practicum 45.2.1 Section 1: Identifying the First Day of 0% Snow Cover 45.2.2 Section 2: Data Summary and Visualization 45.3 Synthesis 45.4 Conclusion References Part IXTerrestrial Applications 46 Active Fire Monitoring 46.1 Introduction to Theory 46.2 Practicum 46.2.1 Section 1: Fire Datasets in Google Earth Engine 46.2.2 Section 2: In-Depth Visualization and Analysis of Fires in Earth Engine Apps 46.3 Synthesis 46.4 Conclusion References 47 Mangroves 47.1 Introduction to Theory 47.2 Practicum 47.2.1 Section 1: Deriving Additional Indices 47.2.2 Section 2: Automatic Water Masking and Buffering 47.2.3 Section 3: Creating Training Data and Running and Evaluating a Random Forest Classification 47.3 Synthesis 47.4 Conclusion References 48 Mangroves II—Change Mapping 48.1 Introduction to Theory 48.2 Practicum 48.2.1 Section 1: Map-To-Map Change Detection 48.2.2 Section 2: Map-To-Image Change Detection 48.3 Synthesis 48.4 Conclusion References 49 Forest Degradation and Deforestation 49.1 Introduction to Theory 49.2 Practicum 49.2.1 Section 1: Spectral Mixture Analysis Model 49.2.2 Section 2: Deforestation and Forest Degradation Change Detection 49.2.3 Section 3: Deforestation and Forest Degradation Time Series Analysis 49.3 Synthesis 49.4 Conclusion References 50 Deforestation Viewed from Multiple Sensors 50.1 Introduction to Theory 50.2 Practicum 50.2.1 Section 1: Understand How FNRT Works 50.2.2 Section 2: Define Study Area and Model Parameters 50.2.3 Section 3: Import and Preprocess Data 50.2.4 Section 4: Establish Baseline Time-Series Model 50.2.5 Section 5: Create Predicted Values for the Monitoring Period 50.2.6 Section 6: Calculate Change Scores 50.2.7 Section 7: Multisensor Data Fusion and Change Detection 50.3 Synthesis 50.4 Conclusion References 51 Working with GPS and Weather Data 51.1 Introduction to Theory 51.2 Practicum 51.2.1 Section 1: GPS Location Data 51.2.2 Section 2: Bringing Data into Earth Engine 51.3 Synthesis 51.4 Conclusion Reference 52 Creating Presence and Absence Points 52.1 Introduction to Theory 52.2 Practicum 52.2.1 Section 1: Developing Your Own Sampling Locations 52.2.2 Section 2: Generating Your Own Training Dataset 52.3 Synthesis 52.4 Conclusion Reference 53 Detecting Land Cover Change in Rangelands 53.1 Introduction to Theory 53.2 Practicum 53.2.1 Section 1: Inspecting Information About the Study Area 53.2.2 Section 2: Compile the Time Series of Vegetation Cover 53.2.3 Section 3: Time Series Segmentation 53.2.4 Section 4: Classify Pixels Based on Similarities in Time Series Trajectories 53.2.5 Section 5: Explore the Characteristics of the New Classes 53.3 Synthesis 53.4 Conclusion References 54 Conservation I—Assessing the Spatial Relationship Between Burned Area and Precipitation 54.1 Introduction to Theory 54.2 Practicum 54.2.1 Section 1: Assess Area of Interest 54.2.2 Section 2: Load the MODIS Burned Area Dataset 54.2.3 Section 3: Areal Mean Rainfall Time Series 54.2.4 Section 4: Visualizing Fire and Rainfall Time Series 54.3 Synthesis 54.4 Conclusion References 55 Conservation II—Assessing Agricultural Intensification Near Protected Areas 55.1 Introduction to Theory 55.2 Practicum 55.2.1 Section 1: Initializing Parameters 55.2.2 Section 2: Raster Processing for Change Analysis 55.2.3 Section 3: Visualizing Results 55.3 Synthesis 55.4 Conclusion References