Surface reflectance sensor transformation functions

Landsat-7 and Landsat-8 have different sensor characteristics. This paper compared a large number of images and presents a transform function. Applying the function will help to improve temporal continuity between the Landsat-7 ETM + and Landsat-8 OLI sensor data.

// import the image collections
var l7 = ee.ImageCollection("LANDSAT/LE07/C01/T1_SR").filterBounds(geometry).sort("CLOUD_COVER").filterDate("1999-01-01","2003-01-01");
var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR").filterBounds(geometry).sort("CLOUD_COVER");

// select first and rename the bands
var l7img = ee.Image(l7.first()).select(['B1', 'B2', 'B3', 'B4', 'B5', 'B7'],['blue', 'green', 'red', 'nir', 'swir1', 'swir2']).divide(10000);
var l8img = ee.Image(l8.first()).select(['B2','B3','B4','B5','B6','B7'],['blue', 'green', 'red', 'nir', 'swir1', 'swir2']).divide(10000);

// slope and intercept from roy et al. https://www.sciencedirect.com/science/article/pii/S0034425715302455
var slope = ee.Image.constant([0.9785, 0.9542, 0.9825, 1.0073, 1.0171, 0.9949]); // create an image of slopes per band for L8 TO L7 regression line - David Roy
var intercept = ee.Image.constant([-0.0095, -0.0016, -0.0022, -0.0021, -0.0030, 0.0029]); // create an image of y-intercepts per band for L8 TO L7 regression line - David Roy

// apply regression to landsat-8 image
var l8tol7 = l8img.subtract(intercept.divide(slope));

// display the image
Map.addLayer(l7img,{min:0,max:0.3,bands:"red,green,blue"},"l7 image");
Map.addLayer(l8img,{min:0,max:0.3,bands:"red,green,blue"},"l8 image");
Map.addLayer(l8tol7,{min:0,max:0.3,bands:"red,green,blue"},"l8 image harmonized")

link

Advertisements