Soy nuevo en GEE.
Me gustaría calcular el valor NDVI por píxel para un conjunto de imágenes S2_SR y extraer los valores a un archivo CSV.
Pseudocode:
1. import S2_SR image collection(start date X, end date Y).
2. clip every image to a specific polygon that I have previously imported.
3. calculate NDVI value for every pixel in the clipped image.
4. output the calculated NDVI values to a CSV file.
(Digamos que la imagen recortada tiene un tamaño de 100x100m, lo que significa que tenemos 10x10 píxeles. Así que el archivo CSV debe ser píxeles 1-100 y sus valores).
Mi código hasta ahora está construido así:
//IMPORT SEN2 IMAGE
var S2 = ee.ImageCollection('COPERNICUS/S2_SR')
.filterDate('2019-09-01','2019-09-30')
.filterBounds(poly)
// Define an index function (return only NDVI).
var NDVI = function(image) {
return image.expression(
'(NIR - RED) / (NIR + RED)',
{
'NIR': image.select('B8'),
'RED': image.select('B4'),
}).rename('NDVI').copyProperties(image, image.propertyNames());
};
// Calculate NDVI for each image
var NDVIS2 = S2.map(NDVI)
// Empty Collection to fill
var ft = ee.FeatureCollection(ee.List([]))
var fill = function(img, ini) {
// type cast
var inift = ee.FeatureCollection(ini)
// gets the values for the points in the current img
var ft2 = img.reduceRegions(poly, ee.Reducer.first(),30)
// gets the date of the img
var date = img.date().format()
// writes the date in each feature
var ft3 = ft2.map(function(f){return f.set("date", date)})
// merges the FeatureCollections
return inift.merge(ft3)
}
// Iterates over the ImageCollection
var newft = ee.FeatureCollection(NDVIS2.iterate(fill, ft))
// Export
Export.table.toDrive(newft,
"anyDescription",
"anyFolder",
"anyNameYouWant")
Pero el resultado que obtengo es un valor por cada imagen tomada, Como se puede ver aquí: (He seleccionado sólo uno de mis campos en la salida CSV mostrada, pero es el mismo para todos.
¿Alguna sugerencia?