У меня есть коллекция изображений Landsat 5 и коллекция объектов с тысячами полигонов и точек (в примере у меня только три).Я хотел бы вычислить среднее значение NDVI (и NDWI) для каждого многоугольника с течением времени, как если бы я использовал: ui.Chart.image.series ;
Если я тестирую только один многоугольникс этим кодом:
var p1= ee.Geometry.Point([-78.55995626672507,35.05443673532838])
var pol = ee.Geometry.Polygon([[[-78.57239414626946,35.01247143741747],
[-78.57186843330254,35.012559309453266],
[-78.57199717933526,35.01277020195395],
[-78.57253362113823,35.01272626606113],
[-78.57239414626946,35.01247143741747]
]]);
var ens = [
ee.Feature(pol, {name: 'Thiessen'})
];
var col = ee.FeatureCollection(ens)
print(col)
// NDVI: B4 and B3
var addNDVI = function(image) {
var ndvi = image.normalizedDifference(['B4', 'B3']).rename('NDVI');
return image.addBands(ndvi);
};
// Apply the cloud mask and NDVI function to Landsat 5 imagery and print the chart
var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA")
.filter(ee.Filter.calendarRange(1985,2007,'year'))
.filter(ee.Filter.calendarRange(1,1,'month'))
.filterBounds(p1)
.map(addNDVI)
print(ui.Chart.image.series(l5.select('NDVI'), col, ee.Reducer.mean(), 30));
С этим кодом я получил эту цифру .Я хотел бы получить фигуру одного типа с несколькими многоугольниками (одна фигура содержит все временные ряды многоугольников).
Я пробовал этот код:
var p1= ee.Geometry.Point([-78.55995626672507,35.05443673532838])
var p2= ee.Geometry.Point([-78.5725093420931,35.05908805245044])
var pol = ee.Geometry.Polygon([[[-78.57239414626946,35.01247143741747],
[-78.57186843330254,35.012559309453266],
[-78.57199717933526,35.01277020195395],
[-78.57253362113823,35.01272626606113],
[-78.57239414626946,35.01247143741747]
]]);
var ens = [
ee.Feature(p2, {name: 'Thiessen'}),
ee.Feature(pol, {name: 'Thiessen'})
];
var col = ee.FeatureCollection(ens)
print(col)
// NDVI: B4 and B3
var addNDVI = function(image) {
var ndvi = image.normalizedDifference(['B4', 'B3']).rename('NDVI');
return image.addBands(ndvi);
};
// Apply the cloud mask and NDVI function to Landsat 5 imagery and print the chart
var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA")
.filter(ee.Filter.calendarRange(1985,2007,'year'))
.filter(ee.Filter.calendarRange(1,1,'month'))
.filterBounds(p1)
.map(addNDVI)
//Create a graph of the time-series.
var graph = ui.Chart.image.seriesByRegion({
imageCollection: l5,
regions: col,
reducer: ee.Reducer.mean(),
scale: 30,
})
print(graph)
Этот код предоставляет эта цифра
Последний код представляет график так, как мне бы хотелось.Однако он не вычисляет то, что я хочу.Для полигона pol у меня должны быть одинаковые графики с двумя кодами, что не так.Как я мог сделать то же самое вычисление, сделанное с кодом 1, но представленное как код 2?