Quiero restar una trama binaria de otra, para todas las imágenes de una colección. Por ejemplo, si tengo diez imágenes, quiero restar la imagen 2 de la imagen 1, la imagen 3 de la imagen 2, la imagen 4 de la imagen 3... la imagen 10 de la imagen 9, para crear una nueva trama binaria para cada una de estas restas, mostrando el cambio entre las dos imágenes.
He incluido mi código a continuación, que aplica las máscaras y crea las tramas binarias en la primera mitad, y luego intenta esta sustracción de tramas en la última mitad. Obtengo el error "No se puede utilizar el operador 'in' para buscar 'nombre' en undefined", que entiendo pero no puedo averiguar otra manera.
/* Computes collection IDs and then clips images, applies cloud and water masks, NDSI and then displays all images */
var computedIds = clip.reduceColumns(ee.Reducer.toList(), ['system:index'])
.get('list');
computedIds.evaluate(function(ids) {
for (var i=0; i<ids.length; i++)
//Mask each layer and display
var image = ee.Image("LANDSAT/LC08/C01/T1_TOA/"+ids[i]);
var clipped = image.clip(ee.FeatureCollection("users/rgi60_all"));
var snow = masked(clipped)
// Add all layers to map
Map.addLayer(snow, {bands:'NDSI'}, ids[i], false);
// Create for loop which subtracts image binary raster from previous image binary raster !!!!!!!!!!!! NOT WORKING !!!!!!!!!!!!!
for (var i1=0; i<ids.length; i++) {
if (i1===0){ // do nothing
}
else { // selects the 'snow' binary band from each image and subtracts to give new raster named 'change'
var change = ids[i1-1].select('snow').subtract(ids[i1].select('snow')).selfMask()}}}
Map.addLayer(change, {}, ids[i], false);
});