十识
隔内的所有值(在本例中为五位)求和。首先,我们可以设想生成的系列将包含12张图像。为了准备为每个月创建图像,我们创建一个ee从 1到12的值列表。我们可以使用ee.List.sequence 函数
// Aggregate this time series to compute monthly images.
// Create a list of months
var months=ee.List.sequence(1, 12);
接下来,我们编写一个函数,以一个月作为输入并返回该月的聚合图像。将beginMonth 作为输入参数,我们首先根据年份和月份变量创建该月的开始日期和结束日期。然后我们过滤集合以查找该月的所有图像。为了创建月降水量图像,我们应用ee.Reducer.sum 将一个月的六个五元组图像减少为单个图像,其中包含五元组的总和值。我们还明确设置了生成的求和图像的时间戳属性system:time_start 和system:time_end 我们还可以设置年份和月份,这将帮助我们稍后过滤结果集合。
// Write a function that takes a month number
// and returns a monthly image.
var createMonthlyImage=function(beginningMonth){
var startDate=ee.Date.fromYMD(year, beginningMonth, 1);
var endDate=startDate.advance(1, \''month\'');
var monthFiltered=yearFiltered
.filter(ee.Filter.date(startDate, endDate));
// Calculate total precipitation.
var total=monthFiltered.reduce(ee.Reducer.sum());
return total.set({
\''system:time_start\'': startDate.millis(),
\''system:time_end\'': endDate.millis(),
\''year\'': year,
\''month\'': beginningMonth
});
};
我们现在有一个ee包含ee 类型项目的列表。从 1到12的数字,具有可以计算每个月数字的每月聚合图像的函数。剩下要做的就是将函数映射到列表上。正如章节中所描述的。map 函数传递列表中的每个图像并运行createMonthlyImage.该函数首先接收数字“1”并执行,将图像返回给 Earth Engine。然后它在数字“2”上运行,依此类推,对所有12个数字运行。结果是一年中每个月的每月图像列表。
// map() the function on the list of months
// This creates a list with images for each month in the list
var monthlyImages=months.map(createMonthlyImage);
我们可以从这个ee创建一个ImageCollection使用ee的图像列表。
ImageCollection.fromImages 函数。
// Create an ee.ImageCollection.
var monthlyCollection=ee.ImageCollection.fromImages(monthlyImages);
print(monthlyCollection);
现在,我们已经通过过滤、映射和缩减成功地从源ImageCollection计算出聚合集合,在控制台中展开打印的集合,你可以验证新创建的ImageCollection中现在有12个图像。
第4节绘制时间序列
网格化降水数据集的一项有用应用是分析降雨模式。我们可以使用新计算的时间序列绘制某个位置的时间序列图表。我们可以绘制任何给定点或多边形的像素值。这里我