'I wanna achieve a function in GEE with JS: mosaic() each year into one image from Sentinel-2 then ee.ImageCollection.fromImages but errors continued

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).set({ 'system:time_start': image.get('system:time_start') });//error with or without it
}
var start='2018-01-01'
var end='2018-12-31'
var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['red', 'green', 'blue'],
}
Map.centerObject(table, 14);
// Map the function over one month of data and take the median.
// Load Sentinel-2 TOA reflectance data.
var S2_BANDS = ['QA60','B12','B11', 'B8','B4',  'B3', 'B2']
var S2_NAMES = ['QA60','swir2','swir1', 'nir', 'red', 'green', 'blue']
var adds2 = function(image){
  var awei= image.expression(
              '4*(green-SWIR1)-(0.25*NIR+2.75*SWIR2)',{
              green:image.select('green'),
              NIR:image.select('nir'),
              SWIR1:image.select('swir1'),
              SWIR2:image.select('swir2'),
            }).float().rename('AWEI')
  var wetness = image.expression(
    '(Blue*0.2578)+(Green* 0.2305)+(Red*0.0883)+(NIR1* 0.1071)+(SWIR1*-0.7611)+(SWIR2*-0.5308)',
    {
        Red: image.select('red'),
        NIR1: image.select('nir'),
        Blue: image.select('blue'), 
        Green: image.select('green'),
        SWIR1: image.select('swir1'),
        SWIR2: image.select('swir2')
    }).float().rename('TCWetness')
  var nwi= image.expression(
    'Blue-(NIR+SWIR1+SWIR2)/Blue+(NIR+SWIR1+SWIR2)',{
          Blue: image.select('blue'),
          NIR:image.select('nir'),
          SWIR1:image.select('swir1'),
          SWIR2:image.select('swir2'),
    }).float().rename('NWI')
  var ndvi = image.normalizedDifference(['nir','red']).rename('NDVI')
  var mndwi = image.normalizedDifference(['green','swir1']).rename('MNDWI')
  var ndwi = image.normalizedDifference(['green','nir']).rename('NDWI')
  return image.addBands([awei,wetness,nwi,ndvi,mndwi,ndwi]);
}
var dataset = ee.ImageCollection('COPERNICUS/S2')
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))
                  .map(maskS2clouds)
                  .select(S2_BANDS,S2_NAMES)
                  .filterBounds(table)
                  // .filterDate(start,end )
                  // .map(adds2)
Map.addLayer(dataset.median(), rgbVis, 'RGB')
var mos=function(start,end){
  var one=dataset.filterDate(start,end ).mosaic()
  return(one)
}
var y2015=mos('2015-01-01','2015-12-31')
var y2016=mos('2016-01-01','2016-12-31')
var y2017=mos('2017-01-01','2017-12-31')
var y2018=mos('2018-01-01','2018-12-31')
var y2019=mos('2019-01-01','2019-12-31')
var y2020=mos('2020-01-01','2020-12-31')
var y2021=mos('2021-01-01','2021-12-31')
var images=ee.ImageCollection.fromImages([y2015,y2016,y2017,y2018,y2019,y2020,y2021])
var images=images.map(adds2)
print(images)
var NDWI=dataset.select("NDWI")//-0.0429
var MNDWI=dataset.select("MNDWI")//0.355
var TCWetness=dataset.select("TCWetness")//-224.229
var AWEI=dataset.select('AWEI')//-1284.206
var NDVI=dataset.select('NDVI')//0.074
var otsu = function(histogram) {
  var counts = ee.Array(ee.Dictionary(histogram).get('histogram'));
  var means = ee.Array(ee.Dictionary(histogram).get('bucketMeans'));
  var size = means.length().get([0]);
  var total = counts.reduce(ee.Reducer.sum(), [0]).get([0]);
  var sum = means.multiply(counts).reduce(ee.Reducer.sum(), [0]).get([0]);
  var mean = sum.divide(total);
  var indices = ee.List.sequence(1, size);
  var bss = indices.map(function(i) {
    var aCounts = counts.slice(0, 0, i);
    var aCount = aCounts.reduce(ee.Reducer.sum(), [0]).get([0]);
    var aMeans = means.slice(0, 0, i);
    var aMean = aMeans.multiply(aCounts)
        .reduce(ee.Reducer.sum(), [0]).get([0])
        .divide(aCount);
    var bCount = total.subtract(aCount);
    var bMean = sum.subtract(aCount.multiply(aMean)).divide(bCount);
    return aCount.multiply(aMean.subtract(mean).pow(2)).add(
           bCount.multiply(bMean.subtract(mean).pow(2)));
  });
  print(ui.Chart.array.values(ee.Array(bss), 0, means));
  return means.sort(bss).get([-1]);
};
var ALOSDEM = ee.Image("JAXA/ALOS/AW3D30_V1_1")
var slope = ee.Terrain.slope(ALOSDEM.clip(table))

var imgs=images.select('MNDWI')//'AWEI','NDWI','NWI','TCWetness',
var chart = ui.Chart.image.series(imgs,table, ee.Reducer.mean(),100)
chart.style().set({
  position: 'bottom-right',
  width: '500px',
  height: '300px'
});
Map.add(chart);
var label=ui.Label('Date:M-D-Y')
Map.add(label)

https://code.earthengine.google.com/6eed1d39dc4cf1f284214293fab6af01

My plan is to create a function that clicks on the chart some year it will layer a water mask I wrote. After the problem above, still there will be errors if I wrote .onClick(function( var equalDate=ee.Filter.equals('system:time_start',x). how can I replace it?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source