Mi función fnc
se devuelve como Imagen, pero si se utiliza ee.ImageCollection(dates.map(fnc))
devuelve un error ImageCollection (Error) ImageCollection.fromImages: Attempt to create an ImageCollection with non-image elements.
en el código siguiente.
var Date_Start = ee.Date('2015-05-01');
var Date_End = ee.Date('2017-12-01');
var Date_window = ee.Number(30);
// Create list of dates for time series
var n_months = Date_End.difference(Date_Start,'month').round();
var dates = ee.List.sequence(0,n_months,1);
var make_datelist = function(n) {
return Date_Start.advance(n,'month')
}
dates = dates.map(make_datelist);
var fnc = function(d1) {
var start = ee.Date(d1);
var end = ee.Date(d1).advance(1,'month');
var date_range = ee.DateRange(start,end);
var S1 = ee.ImageCollection('COPERNICUS/S1_GRD')
.filterDate(date_range)
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
.filter(ee.Filter.eq('instrumentMode', 'IW'))
return(S1.first())
}
var mt = ee.ImageCollection(dates.map(fnc));
print(mt)
¿Cómo puedo recuperar la colección de imágenes de la función asignada?
EDITAR Después de probar más, ahora estoy recibiendo un error similar al mosaico de dos imágenes (esta vez de Landsat 5) y luego devolver el mosaico. El código es el siguiente:
var p1 = ee.Geometry.Point([103.521,13.028]);
var p2 = ee.Geometry.Point([105.622,13.050]);
var Date_Start = ee.Date('2000-05-01');
var Date_End = ee.Date('2007-12-01');
var Date_window = ee.Number(30);
// Create list of dates for time series
var n_months = Date_End.difference(Date_Start,'month').round();
var dates = ee.List.sequence(0,n_months,1);
var make_datelist = function(n) {
return Date_Start.advance(n,'month');
};
dates = dates.map(make_datelist);
var fnc = function(d1) {
var start = ee.Date(d1);
var end = ee.Date(d1).advance(14,'month');
var date_range = ee.DateRange(start,end);
var S1 = ee.ImageCollection('LANDSAT/LT5_L1T_TOA')
.filterDate(date_range)
.sort('CLOUD_COVER')
.filterBounds(p1).first()
var S2 = ee.ImageCollection('LANDSAT/LT5_L1T_TOA')
.filterDate(date_range)
.sort('CLOUD_COVER')
.filterBounds(p2).first()
var mosaic = ee.ImageCollection([ee.Image(S1), ee.Image(S2)]).mosaic();
var image = mosaic.clip(TSL);
return mosaic
};
var list_of_images = dates.map(fnc);
print('list_of_images', list_of_images);
var mt = ee.ImageCollection(list_of_images);
print(mt);
Map.addLayer(mt, {}, 'mt');
E [ ] ImageCollection.fromImages: Intento de crear una ImageCollection con elementos que no son imágenes.