For my research, I need to use NDVI or EVI datasets in Google Earth Engine. I found Landsat 5 and 7 datasets (8 day, 32 day, anual) for both. However, no matter which combination of datasets and dates I choose, I always have the issue you can see in the image below. enter image description here

Looking more closely, you can see the errors along the tiles. What could be causing this? Using the Inspector tool, I confirmed the values are also effected and it is not just a visual thing... For now I am reverting to 250m MODIS data which does not have this issue.

enter image description here

  • I see the same in Landsat 8 images, mind.
    – Olivier
    Dec 4, 2018 at 16:37
  • This should be something that GEE should be addressing in their archive but, this is not actually an error per se. The edges of all landsat scenes have these artifacts and, when mosaicing, must be clipped to a footprint that excludes the edge. Dec 4, 2018 at 16:50
  • @JeffreyEvans In my research, my regions of interest span across the tile edges. But these Earth Engine NDVI datasets are already mosaicked, am I right? I do not understand how I can fix the issue, as I need the data along the edges...
    – Olivier
    Dec 4, 2018 at 16:56
  • Landsat scenes have overlap. It is common in the processing workflow to clip the edges of the scenes to remove this spurious data. Landsat ETM+7 is even more problematical due to the SCL error. The spurious data zipper effect on the edge of ETM scenes are 14 pixels (420m). Do not know what to tell you here, it is a GEE problem in their processing workflow and a serious error. Dec 4, 2018 at 22:10
  • I dont know exactly why, but those collections are deprecated (i.e. they might be removed in the near future). You can see this after importing the collection, at the top of your script, it will say something like: "var imageCollection: (Deprecated) ImageCollection "Landsat 8 8-Day NDVI Composite". So perhaps its better to create the composites yourself using the LS images. Dec 6, 2018 at 14:14

2 Answers 2


The NDVI collections are just simple temporal composites of the actual data produced by the USGS (with a normalized ratio applied) and as such are pretty much only useful as browse products. If they don't suit your needs you should create your own with whatever modifications you feel are appropriate. In this case, I'd negative buffer the images by a few kilometers to remove all edge effects.

// Make a list of dates 32 days apart.
var start = '2015-01-01'
var days = ee.Number(32)
var steps = ee.Number(365).divide(days).floor()
var dates = ee.List.sequence(0, steps).map(function(period) {
  return ee.Date(start).advance(ee.Number(days).multiply(period), 'day')

// For each date, make a NDVI mosaic
var collection = dates.map(function(start) {
  var start = ee.Date(start)
  var ndvi = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
    .filterDate(start, start.advance(days, 'day'))
    .map(function(image) {
      // Compute NDVI and cut off the edges.
      return image.normalizedDifference(["B5", "B4"])
    .set('system:time_start', start.millis())
  return ndvi
collection = ee.ImageCollection(collection)

var palette = [
  'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
  '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
  '012E01', '011D01', '011301'

Map.addLayer(collection.first(), {palette: palette, min:0, max:1})

You can of course augment this to try to mask clouds (see the Cloud Masking examples in the code editor Examples folders) or by using the Surface Reflectance data instead of the TOA data.


About "what could be causing this?", https://landsat.usgs.gov/known-issues https://www.usgs.gov/land-resources/nli/landsat/landsat-known-issues has a list of known error types for Landsat data and the reasons behind them. Generally the equipment is not perfect, and most of the errors are due to "Instrument".

  • The link provided here is no longer active
    – Jock
    Jan 30, 2020 at 22:18

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.