通常,为了从图像中获取特定值,您使用reduceRegion。由于您只有一个点,因此不存在任何缩减,但可以使用相同的操作从一个区域获取平均值、中值、最大值等,您需要选择一个缩减器来执行该操作。 (如果您没有另外指定,ui.Chart.image.series 默认为 mean 减速器)。
我根据归一化差异示例脚本中使用的图像构建了这个示例:
var imageCollection = ee.ImageCollection('MODIS/006/MOD09GA')
.filterDate('2019-01-01', '2019-01-31');
var ndviCollection = imageCollection.map(function (img) {
var ndImage = img.normalizedDifference(['sur_refl_b02', 'sur_refl_b01']);
return ee.Feature(area, ndImage.reduceRegion(ee.Reducer.mean(), area));
});
print(ndviCollection);
Runnable example link
这里,ndviCollection 是一个 FeatureCollection,其中每个要素都将原始点作为几何图形(如果您有多个兴趣点,则很有用,否则您可以改为 null)和该点的 NDVI作为一个名为 nd 的属性。
如果您绝对需要数字列表而不是特征集合,您可以获得:
print(ndviCollection
.toList(100) // set this number to the maximum number of elements you expect
.map(function (feature) {
return ee.Feature(feature).get('nd');
}));
但如果可以避免,则不应这样做,因为列表始终作为一个整体保存在内存中,而不是以流方式处理。相反,请使用 map 和/或 reduceColumns 对特征集合执行计算。