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. Commented Aug 15, 2019 at 14:45

1 Answer 1


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 and acknowledge you have read our privacy policy.

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