十四
function addVIs(img){
var gcvi=img.expression(\''(nir / green) - 1\'',{
nir: img.select(\''NIR\''),
green: img.select(\''GREEN\'')
}).select([0], [\''GCVI\'']);
return ee.Image.cat([img, gcvi]);
}
现在我们准备为我们的研究区域提取 Landsat 7和8图像并应用上述函数。我们将访问2020年1月1日至12月31日期间与麦克莱恩县相交的所有图像。由于不同的作物有不同的生长特征,因此获得时间序列图像来区分作物何时生长、衰老和收获是有价值的。各个时间点的光谱反射率差异也可以提供信息。
// Define study time period.
var start_date=\''2020-01-01\'';
var end_date=\''2020-12-31\'';
// Pull Landsat 7 and 8 imagery over the study area between start and end dates.
var landsat7coll=landsat7
.filterBounds(geometry)
.filterDate(start_date, end_date)
.map(renameL7);
var landsat8coll=landsat8
.filterDate(start_date, end_date)
.filterBounds(geometry)
.map(renameL8);
接下来,我们合并 Landsat 7 和 Landsat 8 集合,遮盖云层,并将 GCVI 添加为波段。
// Merge Landsat 7 and 8 collections.
var landsat=landsat7coll.merge(landsat8coll)
.sort(\''system:time_start\'');
// Mask out non-clear pixels, add VIs and time variables.
landsat=landsat.map(addMask)
.map(maskQAClear)
.map(addVIs);
我们可以使用ui根据 CDL 的说法,图表对象可可视化特定点处的综合 Landsat GCVI 时间序列,在本例中该点位于玉米田中。
// Visualize GCVI time series at one location.
var point=ee.Geometry.Point([-88.81417685576481,
40.579804398254005
]);
var landsatChart=ui.Chart.image.series(landsat.select(\''GCVI\''),
point)
.setChartType(\''ScatterChart\'')
.setOptions({
title: \''Landsat GCVI time series\'',
lineWidth: 1,
pointSize: 3,
});
print(landsatChart);
在伊利诺伊州麦克莱恩县的一个玉米点可视化的陆地卫星 GCVI 时间序列。GCVI 越高,叶片叶绿素含量越高;农作物在六月开始变绿,在九月开始衰老。
最后,我们还看一下将用于训练和评估分类器的作物类型数据集。我们加载2020年的 CDL 图像并选择包含作物类型信息的图层。
// Get crop type dataset.
var cdl=ee.Image(\''USDA/NASS/CDL/2020\'').select([\''cropland\'']);