全国植被指数计算
# 全国植被指数计算
PIE-Engine Studio遥感计算云服务平台从landsat8_toa数据集中选取了覆盖中国地区2019年12月份的landsat8_toa数据进行批量的NDVI植被指数计算,并最大值影像融合算法——选取计算结果中植被指数最大值进行快速镶嵌显示,得到月度合成的影像数据。
# 1) 数据源分析:
覆盖中国地区2019年12月份的landsat8_toa数据,共786景影像。该数据包含12个波段,前11个波段覆盖了从可见光到热红外的各个波段信息,第12个QA波段包含了该影像的质量评估信息。
# 2) 核心代码示例
//加载中国区域范围
var fCol_1 = pie.FeatureCollection('user/101/public/shape/China');
var fCol_2 = pie.FeatureCollection('user/pieadmin/public/shape/9_line_dash');
var fCol = fCol_1.merge(fCol_2)
Map.addLayer(fCol, {color:"#ff0000", fillColor:"#00000000"}, "china");
var roi = fCol.getAt(0).geometry();
//影像集合
var l8Col = pie.ImageCollection("LC08/01/T1");
//通过日期过滤影像集合,并且计算NDVI指数
l8Col = l8Col.filterDate("2019-12-01", "2019-12-31")
.select(["B4", "B5"])
.filterBounds(roi)
.map(function(image){
var b4 = image.select("B4");
var b5 = image.select("B5");
var ndvi = (b5.subtract(b4)).divide(b5.add(b4));
return ndvi;
});
//NDVI绘制样式
var visParamNDVI = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, '+
'74A901, 66A000, 529400,3E8601, 207401, 056201, 004C00,'+
'023B01, 012E01, 011D01, 011301'
};
//加载影像集合的最大值
Map.addLayer(l8Col.max(), visParamNDVI, "NDVI");
Map.setCenter(119.1, 40.44, 3); 复制错误复制成功
流程步骤如下:
a) 根据数据集合的ID加载对应的数据集合
b) 通过日期、矢量范围筛选出来中国区域指定日期内的B4、B5波段
c) 将含有B4、B5波段的影像拆分为单波段的影像
d) 利用循环对集合的每一个元素都做NDVI指数计算,得到整个时间段的NDVI植被指数集合
e) 利用最大值影像融合算法得到月度合成的影像数据
f) 将得到的NDVI指数影像加载到交互地图实现地图展示。
# 3) 案例中主要涉及到的算子
• filterDate:日期过滤
• map:循环影像集合
• select:筛选影像波段
• subtract、divide、add:四则运算加减乘除
• addLayer:添加结果图层
• max:计算影像集合每一个波段对应的最大值
# 4) 结果分析展示
使用PIE-Engine遥感计算云平台的实现效果如下图所示:
5) 完整代码
/**
* @File : PIEImageCollectionLoop
* @Time : 2020/7/21
* @Author : piesat
* @Version : 1.0
* @Contact : 400-890-0662
* @License : (C)Copyright 航天宏图信息技术股份有限公司
* @Desc : 加载中国区融合影像
*/
//加载中国区域范围
var fCol_1 = pie.FeatureCollection('user/101/public/shape/China');
var fCol_2 = pie.FeatureCollection('user/pieadmin/public/shape/9_line_dash');
var fCol = fCol_1.merge(fCol_2)
Map.addLayer(fCol, {color:"#ff0000", fillColor:"#00000000"}, "china");
var roi = fCol.getAt(0).geometry();
//影像集合
var l8Col = pie.ImageCollection("LC08/01/T1");
//通过日期过滤影像集合,并且计算NDVI指数
l8Col = l8Col.filterDate("2019-12-01", "2019-12-31")
.select(["B4", "B5"])
.filterBounds(roi)
.map(function(image){
var b4 = image.select("B4");
var b5 = image.select("B5");
var ndvi = (b5.subtract(b4)).divide(b5.add(b4));
return ndvi;
});
//NDVI绘制样式
var visParamNDVI = {
min: -0.2,
max: 0.8,
palette: 'CA7A41, CE7E45, DF923D, F1B555, FCD163, 99B718, '+
'74A901, 66A000, 529400,3E8601, 207401, 056201, 004C00,'+
'023B01, 012E01, 011D01, 011301'
};
//加载影像集合的最大值
Map.addLayer(l8Col.mean().clip(roi), visParamNDVI, "NDVI");
Map.setCenter(119.1, 40.44, 3);
有问题,我来改改 (opens new window)
上次更新: 2022/05/25, 09:15:11