I am working to produce a snow duration map in GEE, but since the area of interest is mountainous I am having trouble with north-facing slopes. I've learned that a solution exists for Sentinel in this answer: https://gis.stackexchange.com/a/305159/147843

Is there an equivalent for Landsat?

  • 1
    This is not equivalent to cloud shadow, but is rather a parallax sun-angle issue. This is why you orthorectify imagery in rugged terrain. And, yes it is common to orthorectify Landsat but, you will have to research GEE solutions, if any. Aug 15 '19 at 14:45

GEE provides the function ee.Terrain.hillShadow that produces an image where illuminated pixels are value 1 and shaded are 0, according to the geometry of topography defined by an input DEM and specified sun azimuth and zenith angles. Your image of interest can be masked using the result.

Here is an example:

var image = ee.Image('LANDSAT/LT05/C01/T1_SR/LT05_195028_19841230');
var elevation = ee.Image('USGS/SRTMGL1_003');

var visu = {bands: ['B3', 'B2', 'B1'], min: 0, max: 5000};

var shadowMap = ee.Terrain.hillShadow({
  image: elevation,
  azimuth: image.get('SOLAR_AZIMUTH_ANGLE'),
  zenith: image.get('SOLAR_ZENITH_ANGLE'),
  neighborhoodSize: 200,
  hysteresis: true

Map.addLayer(image.updateMask(shadowMap), visu, 'sun part');
Map.addLayer(image.updateMask(shadowMap.not()), visu, 'shadow part');
Map.centerObject(image, 10);

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.