Workshop 4: Introduction to Remote Sensing II#

Instructor: Dr. Aditya Singh (
Co-authors: Silas Achidago ( and Julie Peeling (


The fourth GALUP workshop aims at applying skills learned in the second workshop -Introduction to Remote Sensing I using Google Earth Engine (GEE) for further analysis. The participants will learn basics in Time Series Analysis and Change Detection and apply this to land use studies. This workshop is the second phase toward understanding how Remote Sensing data can be used for land-use assessments.


  • Time Series Analysis

  • Change Detection

Recap - Introduction to Satellite Remote Sensing I#

1. What Have We Learned So Far#

What is Remote Sensing#

Remote Sensing (RS) is the science and art of obtaining information about an object, area, or phenomenon through the analysis of data acquired by a device that is not in contact with the object, area, or phenomenon under investigation. Modern day remote sensing started with the advent of radar, sonar, and thermal infrared detection systems during World War II. Since then, detectors have been expanded to obtain information from most of the bands in the electromagnetic spectrum, with a variety of applications spanning from military use to agriculture.

Types of Resolutions: #

  • Spatial resolution describes how far apart two targets have to be so that they are detected as separate signals.

  • Temporal resolution describes how often a sensor observes the same target.

  • Spectral resolution describes the number of wavelengths observed. For example, in the Figures below, a multispectral sensor collects data in about 5-10 discrete bands, and a hyperspectral sensor samples the same spectrum across over 200 bands in the optical-NIR-SWIR spectrum.

  • Radiometric resolution describes the level of digitization of a recorded signal. For example, a 1-bit image can resolve two gray levels (i.e. 0 = black, 1 = white), an 8-bit image (for e.g., Landsat 4, 5) can resolve 256 gray levels, a 12-bit image (e.g., Landsat 8) can resolve 4096 gray levels.

Spectral sampling: Multispectral sensors (left) and Hyperspectral sensors (right)

Data Sources

Satellite data can be obtained from multiple sources, some important repositories are:

2. Setting up GEE#

Please request an account with Google Earth Engine (GEE) as follows:
  • Go to the GEE webpage here
  • Select “Sign Up” at the top right of the page and input institution and intention for use (e.g. using remote sensing datasets for land use suitability modeling).
📌 Approval may not happen immediately, so please be sure to sign up in advance of the workshop to provide a few days for completion.

3. Exploring GEE Interface#

The figure below shows the programming interface of GEE. A more detailed description of the components can be found here.

📌 In this workshop, we will be writing codes in the GEE code editor that uses JavaScript language. There are extra resources available from Google on the JavaScript Application Programming Interface (API).

4. Remote Sensing Indices#

Remote sensing indices (or spectral indices) are arithmentic combinations of reflectance at two or more bands that help provide measurable estimates of the relative abundance of indicators of interest. Vegetation indices (such as the normalized difference vegetation index: NDVI) are the most widely known, but indices can be formulated for tracking burn areas, exposed soil or built-up areas.

  • Spectral/Image indices are generally calculated using simple mathematical transformations (addition, subtraction, division) conducted on satellite bands of specific wavelength regions. Values of image indices can range from -1 - +1 (normalized difference indices), to arbitrary scales for other ratio-based indices. See this link for a good introduction to indices that can be obtained using Landsat data.
  • The Table below provides reflectances used to calculate the above indices.

📌A database of remote sensing indices and their respective sensors and areas of application are compiled here.

5. A Video Recap of the Training So Far:#

Steps involved for searching and displaying image and environmental data and calculating image indices:

  • Define a geometry of interest by either drawing on the map, or importing an ESRI shapefile as an asset

  • Define variables ST_DATE and EN_DATE to denote the time range of interest

  • The variable IMG_L# will contain the image collection returned

  • The function filterBounds filters all images to only those that intersect the geometry of interest

  • The function filterDate filters all images returned by the time range specified by ST_DATE and EN_DATE

  • The function filterMetadata(‘CLOUD_COVER’) looks up the metadata stored in the images, and filters images with '‘CLOUD_COVER’ beyond the specified limit

  • The variable visParams provides visualization parameters to determine display of the output image

  • The function Map.centerObject centers the focus of the map on the area of interest

  • The function Map.addLayer adds an image or image collection to the map

Description of functions used in the script:

  • The user-defined function getLSAT takes an ImageCollection of Landsat images, start and dates as variables. It retrieves the Landsat ImageCollection and filters it by geometry, time range, and cloud cover. The cloud cover is filtered through a cloud masking function defined below (cloudMask) Band names of the images in the collection are renamed to be consistent between Landsat 4, 5, 7 and 8.

  • The user-defined function cloudMask takes a Landsat Image as input, extracts the image QA/QC bitmap, and masks out cloudy or shadowed pixels.

  • The user-defined getNDVI takes a Landsat image as input, selects the NIR and Red bands, and calculates and returns the normalized difference index.

Overall flow of the script:

  • Specify variables of interest: ImageCollection, area to be sampled, dates to be investigated, and allowable cloud cover

  • Process the Landsat ImageCollection to filter by area and dates of interest and mask clouds, calculate the median of all bands

  • Take the image, and apply the getNDVI function to obtain the NDVI Image

  • Display maps

6. Assignment Submission and Help#

The participants will have to sign into their GitHub accounts to submit assignments. Below is a video explaining how to submit the module assignments and how to request help through GitHub. Note: It may be convenient to open videos in the workshop in a new tab or window to easily navigate the GitHub page.

7. Pre-Workshop Exercise#

8. What’s Next?#

Module 1 - Time Series Analysis
Module 2 - Change Detection

9. Other Resources#

  1. Cloud-Based Remote Sensing with Google Earth Engine
  2. NASA ARSET: Time Series Analysis