Exportar a Google Drive ee.List con días julianos (o días del mes) y datos de precipitación obtenida en GEE a partir de imágenes CHIRPS daily

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.

precip3

This entry was posted in Google Earth Engine. Bookmark the permalink.

1 Response to Exportar a Google Drive ee.List con días julianos (o días del mes) y datos de precipitación obtenida en GEE a partir de imágenes CHIRPS daily

  1. 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

Leave a comment