0

I would like to make a mosaic of 3 specific Date and Time Landsat 8 images corresponding to thermal band 10, where overlapping pixels between images in the mosaic will get the mean value.
I could select the images from the collections and display them, but separately not as a mosaic-image with the overlapping pixels as average, my code is below. I would like to also export to drive the mosaic obtained as GeoTiFF file. How could all this process be done? Thanks a lot.

// point of interest correspond to LANDSAT tiles
var point1  = ee.Geometry.Point(35.0062, 32.7828);
var point2  = ee.Geometry.Point(34.8863, 32.0921);
var point3  = ee.Geometry.Point(35.0425, 30.6345);

// display points of interest
Map.addLayer(point1, {color: 'FF0000'}, 'Point1')
Map.addLayer(point2, {color: 'FF0000'}, 'Point2')
Map.addLayer(point3, {color: 'FF0000'}, 'Point3')


// image collection filter for each image 
var dataset1 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                  .filterDate('2017-07-01', '2017-08-01')
                  .filterBounds(point1);
                  
var dataset2 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                  .filterDate('2017-07-01', '2017-08-01')
                  .filterBounds(point2);     
                  
var dataset3 = ee.ImageCollection('LANDSAT/LC08/C01/T1')
                  .filterDate('2017-07-01', '2017-08-01')
                  .filterBounds(point3);
                  
// explore image collection
print(dataset1)
print(dataset2)
print(dataset3)

// find images id 
//dataset1 id  = LANDSAT/LC08/C01/T1/LC08_174037_20170731
//dataset2 id  = LANDSAT/LC08/C01/T1/LC08_174038_20170731
//dataset3 id  = LANDSAT/LC08/C01/T1/LC08_174039_20170731

               
// image of interest as variables     
var dataset1 = ee.Image("LANDSAT/LC08/C01/T1/LC08_174037_20170731");
var dataset2 = ee.Image("LANDSAT/LC08/C01/T1/LC08_174038_20170731");
var dataset3 = ee.Image("LANDSAT/LC08/C01/T1/LC08_174039_20170731");


// select thermal bands 

// thermal bands detaset 1
var thermalBand10_1 = dataset1.select(['B10']);
var thermalBand11_1 = dataset1.select(['B11']);

// thermal bands detaset 2
var thermalBand10_2 = dataset2.select(['B10']);
var thermalBand11_2 = dataset2.select(['B11']);

// thermal bands detaset 3
var thermalBand10_3 = dataset3.select(['B10']);
var thermalBand11_2 = dataset3.select(['B11']);


// display thermal  bands
Map.addLayer(thermalBand10_1,{min:0,max:65535},'thermalBand10_1');
Map.addLayer(thermalBand10_2,{min:0,max:65535},'thermalBand10_2');
Map.addLayer(thermalBand10_3,{min:0,max:65535},'thermalBand10_3');
2

To combine the three images:

var threeImages = ee.FeatureCollection([
  thermalBand10_1,
  thermalBand10_2,
  thermalBand10_3,
]);
var meanImage = threeImages.mean();

That said, your script can be greatly simplified by working with a collection from the start, so that you do not have to repeat any code three times. For example:

var images = ee.ImageCollection([
  ee.Image("LANDSAT/LC08/C01/T1/LC08_174037_20170731"),
  ee.Image("LANDSAT/LC08/C01/T1/LC08_174038_20170731"),
  ee.Image("LANDSAT/LC08/C01/T1/LC08_174039_20170731"),
]);

var thermalBand10 = images.map(function (image) {
  return image.select('B10');
});

Map.addLayer(thermalBand10.mean());
1
  • thanks a lot for your help – Gab Sep 7 '20 at 5:59

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.