一、Sentinel 2 植被指数计算
从GEE数据集导入的数据
//2. RVI
function s2_rvi(image){
var rvi = image.expression('NIR / RED', {
'NIR' : image.select('B8'),
'RED' : image.select('B4')
}).float();
return image.addBands(rvi.rename("S2_RVI"));
}
//3. EVI
function s2_evi(image){
var evi = image.expression('2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', {
'NIR' : image.select('B8'),
'RED' : image.select('B4'),
'BLUE': image.select('B2')
}).float();
return image.addBands(evi.rename('S2_EVI'));
}
//4. DVI
function s2_dvi(image){
var dvi = image.expression('NIR - RED', {
'NIR' : image.select('B8'),
'RED' : image.select('B4')
}).float();
return image.addBands(dvi.rename('S2_DVI'));
}
//5. NDVI——B8,B4
function s2_ndvi_b84(image){
return image.addBands(image.normalizedDifference(['B8', 'B4']).rename("S2_NDVI_B84"));
}
//13. LSWI——B8,B11
function s2_lswi_b811(image){
return image.addBands(image.normalizedDifference(['B8', 'B11']).rename("S2_LSWI_B811"));
}
//14. LSWI——B8,B12
function s2_lswi_b812(image){
return image.addBands(image.normalizedDifference(['B8', 'B12']).rename("S2_LSWI_B812"));
}
// 15.LSWI——B8A,B11
function s2_lswi_b8a11(image){
return image.addBands(image.normalizedDifference(['B8A', 'B11']).rename("S2_LSWI_B8A11"));
}
//16. LSWI——B8A,B12
function s2_lswi_b8a12(image){
return image.addBands(image.normalizedDifference(['B8A', 'B12']).rename("S2_LSWI_B8A12"));
}
//17.MNDWI
function s2_mndwi(image){
return image.addBands(image.normalizedDifference(['B3', 'B11']).rename("S2_MNDWI"));
}
//18.NDWI
function s2_ndwi(image){
return image.addBands(image.normalizedDifference(['B3', 'B8']).rename("S2_NDWI"));
}
//19.GCVI
function s2_gcvi(image){
var gcvi = image.expression('NIR / Green - 1', {
'NIR' : image.select('B8'),
'Green' : image.select('B3')
}).float();
return image.addBands(gcvi.rename('S2_GCVI'));
}
//20. S2REP——B7,B4,B5,B6
function s2_s2rep(image){
var s2rep = image.expression('705 + 35 * ((((NIRn1 + RED) / 2) - RE1) / (RE2 - RE1))', {
'NIRn1' : image.select('B7'),
'RE2' : image.select('B6'),
'RE1' : image.select('B5'),
'RED' : image.select('B4')
}).float();
return image.addBands(s2rep.rename('S2_S2REP'));
}
//21.SAVI
function s2_savi(image) {
// Add Soil Adjust Vegetation Index (SAVI)
// using L = 0.5;
var savi = image.expression('(NIR - RED) * (1 + 0.5)/(NIR + RED + 0.5)', {
'NIR': image.select('B8'),
'RED': image.select('B4')
}).float();
return image.addBands(savi.rename('S2_SAVI'));
}
//22.IBI
function s2_ibi(image) {
// Add Index-Based Built-Up Index (IBI)
var ibiA = image.expression('2 * SWIR1 / (SWIR1 + NIR)', {
'SWIR1': image.select('B11'),
'NIR' : image.select('B8')
}).rename(['IBI_A']);
var ibiB = image.expression('(NIR / (NIR + RED)) + (GREEN / (GREEN + SWIR1))', {
'NIR' : image.select('B8'),
'RED' : image.select('B4'),
'GREEN': image.select('B3'),
'SWIR1': image.select('B11')
}).rename(['IBI_B']);
var ibiAB = ibiA.addBands(ibiB);
var ibi = ibiAB.normalizedDifference(['IBI_A', 'IBI_B']);
return image.addBands(ibi.rename(['S2_IBI']));
}
//23.NDBI
function s2_ndbi(image){
return image.addBands(image.normalizedDifference(['B11', 'B8']).rename("S2_NDBI"));
}
//24. NIRv
function s2_nirv(image) {
var nirv = image.expression('((NIR - RED)/(NIR + RED)) * NIR', {
'NIR': image.select('B8'),
'RED': image.select('B4')
}).float();
return image.addBands(nirv.rename('S2_NIRv'));
}
//25.CI red edge (CIr)
function s2_cir(image) {
var cir = image.expression('RE3 / RE1 - 1', {
'RE3': image.select('B7'),
'RE1': image.select('B5')
}).float();
return image.addBands(cir.rename('S2_CIr'));
}
//26.CI green (CIg)
function s2_cig(image) {
var cig = image.expression('RE3 / Green - 1', {
'RE3': image.select('B7'),
'Green': image.select('B3')
}).float();
return image.addBands(cig.rename('S2_CIg'));
}
//27.MTCI
function s2_mtci(image) {
var mtci = image.expression('(RE2 - RE1)/ (RE1 - Red)', {
'RE2': image.select('B6'),
'RE1': image.select('B5'),
'Red': image.select('B4'),
}).float();
return image.addBands(mtci.rename('S2_MTCI'));
}