Today we are going to take a tour of a whole bunch of datasets that are available in Google Earth Engine. Each dataset has existing code that works. You may need to make small modifications to the code in order to answer the questions.

All of the code chunks are indepent of eachother today. Opening them in different tabs will help organize your code.

GEDI

var qualityMask = function(im) {
  return im.updateMask(im.select('quality_flag').eq(1))
      .updateMask(im.select('degrade_flag').eq(0))};

var dataset = ee.ImageCollection('LARSE/GEDI/GEDI02_A_002_MONTHLY')
                  .map(qualityMask)
                  .select('rh98');

var gediVis = {
  min: 1, 
  max: 60, 
  palette: 'darkred,red,orange,green,darkgreen'
};

Map.addLayer(dataset, gediVis, 'rh98');
  • What do the GEDI pixel values tell us over the ocean? Explain.
  • Is GEDI useful in Prince George? Explain.
  • How many bands doest the LARSE/GEDI/GEDI02_A_002_MONTHLY dataset have?
  • Why so many rh bands? What do they represent?

MODIS THERMAL ANOMALY

var dataset = ee.ImageCollection('MODIS/061/MOD14A1')
                  .filter(ee.Filter.date('2017-07-01', '2017-09-01'));
var fireMaskVis = {
  min: 0.0,
  max: 16000.0,
  bands: ['MaxFRP'],
  palette: ["orange","red","black"]
};

Map.addLayer(dataset, fireMaskVis, 'Fire Mask');
  • Are there any fires in British Columbia during the month of November 2017? Would you say they are large or small? What might be happening on the ground?

OCEAN TEMPERATURES

var fall2023 = ee.ImageCollection('JAXA/GCOM-C/L3/OCEAN/SST/V3')
                .filter(ee.Filter.calendarRange(9,11,"month"))
                .filter(ee.Filter.calendarRange(2023,2023,"year"))
                .filter(ee.Filter.eq('SATELLITE_DIRECTION', 'D'))
                .select("SST_AVE");

// Multiply with slope coefficient and add offset
var fall2023 = fall2023.mean().multiply(0.0012).add(-10);

var vis = {
  bands: ['SST_AVE'],
  min: 0,
  max: 30,
  palette: ['000000', '005aff', '43c8c8', 'fff700', 'ff0000'],
};

Map.addLayer(fall2023, vis, 'Sea Surface Temperature 2023');
  • Make another layer of the mean Fall SST from 2022. Difference these layers using fall2023.subtract(fall2022). Add the layer to the map. Was the water near the equator in the Pacific Ocean warmer or colder in 2023, when compared to 2022.

LANDSAT THERMAL

var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
    .filterDate('2021-01-01', '2022-01-01')

function applyScaleFactors(image) {
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0).subtract(273.15);
  return image.addBands(thermalBands, null, true);
}

dataset = dataset.map(applyScaleFactors);

Map.addLayer(dataset.select("ST_B10").max(), {min:10, max: 50, palette: ["white","blue","red","black"]}, 'True Color (432)', 1, 0.5);
  • Approximately what was the maximum recorded land surface temperature over downtown Prince Goerge in 2021?
  • By removing the .max() from the Map.addLayer() function, you are now plotting the entire collection. What date did that maximum occur? Hint: Use the inspector and look at the chart.

ASTER

var dataset = ee.ImageCollection('ASTER/AST_L1T_003')

Map.addLayer(dataset.mosaic(), {bands: ['B3N', 'B02', 'B01'], min: 0.0, max: 100.0}, 'False Color');
  • ASTER is famous for having a backlooking camera. Using the Nadir and Backlooking cameras, DEMs can be constructed. Does earth engine have the backlooking band?

ERA-5

var era5_2mt = ee.ImageCollection('ECMWF/ERA5/DAILY')
                   .select('mean_2m_air_temperature')
                   .filter(ee.Filter.date('2019-01-01', '2020-01-01'))
                   .map(function(img){return(img.addBands(img.subtract(273.15).copyProperties(img), null, true))});
                   
print(era5_2mt);

Map.addLayer(era5_2mt, {min:-10, max: 10}, 'Daily mean 2m air temperature');
  • ERA5 is not a remote sensing dataset. It is a climate reanalysis dataset. Name at least 5 different climate parameters that are included in ERA5.
  • There are a few versions of ERA5 on Earth Engine. What time-steps are available on Earth Engine (e.g. every 10 minutes, every hour, daily, weekly, monthly)? (Hint: Don’t mix up ERA5 with ERA5-Land)
  • What is the spatial resolution of ERA5 Daily vs ERA5-Land Daily?

SURFACE WATER EXPLORER

var dataset = ee.Image('JRC/GSW1_4/GlobalSurfaceWater');

var visualization = {
  bands: ['occurrence'],
  min: 0.0,
  max: 100.0,
  palette: ['ffffff', 'ffbbbb', '0000ff']
};

Map.addLayer(dataset, visualization, 'Occurrence');
  • This dataset is the same dataset found here: https://global-surface-water.appspot.com/map
  • There is a large dam that was recently built in the country of Sudan. Can you find it? Using this dataset ee.ImageCollection('JRC/GSW1_4/MonthlyHistory') can you find the month and year when the reservoir was filled?
  • What is the approximate longitude and latitude of the reservoir? (Hint in GEE you can make a point, and see the point coordinates in the imports section of the code editor.)