Shaun Levick

Environmental Monitoring and Modelling


The objective of this lab is to broaden our horizons and explore different types of data in the Google Earth Engine Environment. Thus far we have worked mostly with optical satellite data, and have explored vegetation trends over time and space. However merely tracking changes in vegetation properties is not enough to understand what is driving them - we need to be able to link these dynamics with other environmental data.


  • Google Earth Engine Team
  • International Research Institute for Climate and Society, Earth Institute, Columbia University

Large scale climate variable monitoring

  • Draw a polygon in the interactive GEE console for your region of interest. By default it will be called "geometry". Rename it to "roi"

  • Load precipitation data from the Climate Hazards Group InfraRed Precipitation with Station data (CHIRPS) archive and define your date range of interest

// Load collection
var CHIRPS= ee.ImageCollection('UCSB-CHG/CHIRPS/PENTAD');

//Define date range of interest
var precip = CHIRPS.filterDate('1981-01-01','2018-12-31');
  • Chart the full time series for your region
var TS5 = ui.Chart.image.series(precip, roi, ee.Reducer.mean(),1000, 'system:time_start').setOptions({
title: 'Precipitation Full Time Series',
vAxis: {title: 'mm/pentad'}, });
  • Chart a single year
var precip1year=CHIRPS.filterDate('2018-01-01','2018-12-13');
var TS1 = ui.Chart.image.series(precip1year, roi, ee.Reducer.mean(),1000, 'system:time_start').setOptions({
title: 'Precipitaon 1‐Year Time Series',
vAxis: {title: 'mm/pentad'}, });
  • Map your results spatially
var yearPrecip = precip1year.mean().clip(roi);

var meanPrecip = precip.mean().clip(roi);
Map.addLayer(yearPrecip, {min: 0, max: 40,
  palette:['lightblue','blue','darkblue']}, 'Year Precipitation');
Map.addLayer(meanPrecip, {min: 0, max: 40,
  palette:['lightblue','blue','darkblue']}, 'Mean Precipitation');

GEARS - Geospatial Ecology and Remote Sensing -

(c) Shaun R Levick