В общем, чтобы получить определенные значения из изображения, вы используете reduceRegion
. Поскольку у вас есть единственная точка, никакого точного сокращения не происходит, но эту же операцию можно использовать для получения среднего, медианы, максимума и т. Д. c. из области, и вам нужно выбрать редуктор для выполнения операции. (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);
Пример запускаемой ссылки
Здесь 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
.