Search code examples
google-earth-engine

Google Earth Engine: landsat 7 maps returns "transparent"


I'm currently working on a paper using the Google Earth Engine, But when I try to collect Landsat imagery, the results come back as "transparent" maps. When you zoom in on it you see that the transparency comes from lines without images.
I figured this is only with landsat 7 data from later then 2003. Does anyone know what this is and how it can be solved?

My code is simply:

var image = ee.ImageCollection(landsat7_SurfaceReflectance
.filterBounds(geometry)
.filterDate('2004-06-01', '2004-08-01')
.median()
);

Map.addLayer(image, imageParams, "image");



I've added two images showing the issue.


Solution

  • What you observe is the Scan Line Corrector (SLC) sensor failure (https://landsat.usgs.gov/slc-products-background), there are simply no valid measurements available for these dates.

    The only solution is to replace these missing pixels with valid pixels from the closest images (in time). One of the algorithms to do this was discussed here: Algorithm to improve the gaps in Landsat 7 images.

    Here is a script trying to achieve this, but this is already a variation of the original USGS algorithm, which was designed to process RAW images, and not SR: https://code.earthengine.google.com/17ee7142a98fdb1c37b7da4aa679587c. You may need to mask and fill cloud and cloud shadow pixels as well to create a good looking composite.

    enter image description here

    Another solution is to increase time interval.

    You can also try combining Landsat 7 with Landsat 5, but unfortunately, Landsat 5 has no images for the above location/time combination. However, it may work for other location/time combinations because of an overlap in these missions:

    enter image description here