En el post anterior se consideró un caso similar en el cual la lista (objeto ee.List) era creada automáticamente al invocar al método ‘split’ de ee.Date. En este post, el código señala la creación de una lista vacía y se llena con elementos que obtenemos invocando otros métodos de la clase ee.Date .
Aunque se sigue usando ‘format’ y ‘slice’ para acceder sólo al año (year), ‘getRelative’ es un método de ee.Date que permite generar secuencias de valores entre 0-365, 0-31, 0-6, entre otros, dependiendo de los parámetros (unit, inUnit) que se le suministren a ‘getRelative’. Por ejemplo, si corresponden a ‘getRelative(‘day’, ‘month’)’ la secuencia será de 0-31, 0-27(28 si el año es bisiesto)… hasta completar la serie anual.
El código siguiente contempla lo indicado en el párrafo anterior. Está explícitamente señalado para la producción de los días julianos (variable doy) y comentado para los días del més (variable dom).
//Selecting Image Collection of dayly precipitation var chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY"); var precip = chirps .filterDate('2012-01-01', '2016-01-01'); //366 days (leap year) var count = precip.size(); // Print the filtered precipitation ImageCollection. print('precipitation series:', precip); var new_list = function(image) { // weather station place: Valle de la Pascua var p = ee.Geometry.Point(-66.00, 9.22); // Reducing region and getting value var value = ee.Image(image) .reduceRegion(ee.Reducer.first(), p).get('precipitation'); // year var year = ee.Number(ee.Image(image).date().format().slice(0,4)); //julian day var doy = ee.Number(ee.Image(image).date().getRelative('day', 'year')).add(1); var myList = ee.List([]).add(year).add(doy).add(value); // day of month //var dom = ee.Number(ee.Image(image).date().getRelative('day', 'month')).add(1); //var myList = ee.List([]).add(dom).add(value); return myList; }; var precipit_list = precip.toList(count).map(new_list); print(precipit_list); // weather station place: Valle de la Pascua var p = ee.Geometry.Point(-66.00, 9.22); var myFeatures = ee.FeatureCollection(precipit_list.map(function(el){ el = ee.List(el); // cast every element of the list var geom = p; return ee.Feature(geom, { //'day_month':ee.Number(el.get(0)), 'year':ee.Number(el.get(0)), 'day_year':ee.Number(el.get(1)), 'value':ee.Number(el.get(2)) }); })); // Export features, specifying corresponding names. Export.table.toDrive(myFeatures, "date_chirps", //my task "GEE_Folder", //my export folder "daily_precipitation3", //file name "CSV");
Después de ejecutado en GEE, el archivo generado se abrió en LibreOffice y luce, según lo esperado, como en la imagen siguiente.
Pingback: Exportar a Google Drive valores mensuales de precipitación obtenidos en GEE a partir de imágenes CHIRPS daily | El Blog de José Guerrero