基于Landsat 8 计算NDVI,并将栅格数据导出。(使用时将 roi 更改为自己的矢量范围并在 .filterDate 进行时间筛选即可)
var roi = ee.FeatureCollection('users/yongweicao11/fujian');
print('ROI:', roi);
var myImage = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterBounds(roi)
.filterDate('2023-01-01', '2023-05-10')
.filter(ee.Filter.lt('CLOUD_COVER', 20));
// Landsat8 去云函数
//先设置一个除云并且给波段重新赋值的函数
function maskL8sr(image) {
// 第3位和第5位分别是云影和云。
var cloudShadowBitMask = 1 << 3;
var cloudsBitMask = 1 << 5;
// 获取pixel QA band.
var qa = image.select('QA_PIXEL');
// 明确条件,设置两个值都为0
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
// 更新掩膜云的波段,最后按照反射率缩放,在选择波段属性,最后赋值给影像
return image.updateMask(mask).divide(10000)
.select("SR_B[0-9]*")
.copyProperties(image, ["system:time_start"]);
}
myImage = myImage.map(maskL8sr)
myImage = myImage.median().clip(roi)
var NDVI = myImage.expression({
expression: '(NIR - RED) / (NIR + RED )',
map: {
'NIR': myImage.select('SR_B5'),
'RED': myImage.select('SR_B4'),
}
});
var burnPalette = ['red', 'white', 'green'];
var visParams = {min: -1, max: 1, palette: burnPalette};
Map.addLayer(NDVI, visParams, 'NDVI');
Export.image.toDrive({
image: NDVI,
description: "NDVI",
fileNamePrefix: "NDVI",
scale: 30,
region: roi,
maxPixels: 1e13,
fileFormat: 'GeoTIFF'
});