Как отображать отдельные изображения по каждой дате в Google Earth Engine? - PullRequest
1 голос
/ 25 февраля 2020

Я новичок в Google Earth Engine и не очень знаком с javascript. Я хочу отобразить очищенные изображения (полосы B4, B3, B2) Sentinel 2 по каждой дате в слоях (каждый слой представляет каждую дату). Код показан ниже, но всегда выдается ошибка «нет диапазона 4, постоянный диапазон». Может ли кто-нибудь помочь мне решить эту проблему? Спасибо!

var lakes=table.geometry();
Map.centerObject(lakes, 15);

function maskS2clouds(image) {
  var qa = image.select('QA60');

  // Bits 10 and 11 are clouds and cirrus, respectively.
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;

  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));

  return image.updateMask(mask).divide(10000);
}

var start = ee.Date('2015-06-20');
var finish = ee.Date('2018-06-01');

var collection = ee.ImageCollection('COPERNICUS/S2')
                  .filterDate(start, finish)
                  .filterBounds(lakes)
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))
                  .map(maskS2clouds);

var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};

function addImage(imageL) { // display each image in collection
  var id = imageL.id;
  var image = ee.Image(imageL.id);
  Map.addLayer(image.select(['B4','B3','B2']).clip(lakes),rgbVis,id)
}

collection.evaluate(function(collection) {  // use map on client-side
  print(collection.features);
  collection.features.map(addImage);
})
...