Revisamos de forma completamente cada noticia de nuestro sitio web con la meta de enseñarte siempre la información certera y actual.
Solución:
var poly = /* color: #d63000 */ee.Geometry.Polygon(
[[[-76.0803, 10.8656],
[-76.0913, 7.7436],
[-73.1909, 7.7545],
[-73.3776, 9.4273],
[-75.2124, 10.9304]]])
var start = ee.Date('2014-10-01');
var finish = ee.Date('2018-03-31');
var collection = ee.ImageCollection('COPERNICUS/S1_GRD')
.filterDate(start, finish)
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.filterMetadata('resolution_meters', 'equals', 10)
.filterBounds(poly);
// Difference in days between start and finish
var diff = finish.difference(start, 'day')
// Make a list of all dates
var range = ee.List.sequence(0, diff.subtract(1)).map(function(day)return start.advance(day,'day'))
// Funtion for iteraton over the range of dates
var day_mosaics = function(date, newlist)
// Cast
date = ee.Date(date)
newlist = ee.List(newlist)
// Filter collection between date and the next day
var filtered = collection.filterDate(date, date.advance(1,'day'))
// Make the mosaic
var image = ee.Image(filtered.mosaic())
// Add the mosaic to a list only if the collection has images
return ee.List(ee.Algorithms.If(filtered.size(), newlist.add(image), newlist))
// Iterate over the range to make a new list, and then cast the list to an imagecollection
var newcol = ee.ImageCollection(ee.List(range.iterate(day_mosaics, ee.List([]))))
print(newcol)
https://code.earthengine.google.com/20ad3c83a17ca27b28640fb922819208
Aquí hay otra solución que no implica iterar a través de días, sino mapas a través de fechas únicas (después de eliminar segundos, microsegundos…) que aparecen en la colección de imágenes. También agrega la fecha de la imagen como la identificación como preguntó @erg en un comentario anterior.
function mosaicByDate(imcol)
// imcol: An image collection
// returns: An image collection
var imlist = imcol.toList(imcol.size())
var unique_dates = imlist.map(function(im)
return ee.Image(im).date().format("YYYY-MM-dd")
).distinct()
var mosaic_imlist = unique_dates.map(function(d)
d = ee.Date(d)
var im = imcol
.filterDate(d, d.advance(1, "day"))
.mosaic()
return im.set(
"system:time_start", d.millis(),
"system:id", d.format("YYYY-MM-dd"))
)
return ee.ImageCollection(mosaic_imlist)
Aquí tienes las comentarios y puntuaciones
Si estás contento con lo expuesto, puedes dejar una sección acerca de qué le añadirías a este tutorial.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)