GEE实战 | 各种指数分析(植被、水体、建筑)
2024-04-08 11:44:08
GEE实战 | 各种指数分析(植被、水体、建筑)
- 指数
- 植被指数(NDVI | SAVI | IVI)
- 代码
- 对比
- 结论
- 水体指数(NDWI | MNDWI)
- 代码
- 对比
- 结论
- 建筑指数(NDBI | BSI | EIBI | NDISI)
- 代码
- 对比
- 结论
- 总代码(指数计算+可视化(dual) map)
该文章介绍下在GEE平台下,使用Landsat 8 SR波段信息提取各种指数,并可视化对比讨论分类效果。
指数
全部以Landsat 8 SR波段数据进行计算,用CLC作为土地覆盖分类参考数据库。
P.S. 各个指数的代码主要是计算指数,可视化见总代码~
植被指数(NDVI | SAVI | IVI)
比较了NDVI
、SAVI
、IVI
,并以CLC做对比选择合适的用来提取相关地物的波段。
代码
var l8sr = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")function maskL8sr(image) {var cloudShadowBitMask = 1 << 3;var cloudsBitMask = 1 << 5;var qa = image.select('pixel_qa');var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));return image.updateMask(mask).divide(10000).copyProperties(image, ["system:time_start"]); // .select("B[0-9]*")
}var image = l8sr.filterDate('2017-04-01', '2017-09-30').map(maskL8sr).median();var addVariables = function(image){var ndvi = image.normalizedDifference(['B5','B4']).rename('NDVI');var ndbi = image.normalizedDifference(['B6','B5']).rename('NDBI');var mndwi = image.normalizedDifference(['B3','B6']).rename('MNDWI');var savi = image.expression('((NIR-red)*1.5)/(NIR+red+0.5)',{red:image.select('B4'),NIR:image.select('B5')}).float().rename('SAVI'); var ivi = image.expression('(savi-(ndbi+mndwi)/2)/(savi+(ndbi+mndwi)/2)',{ndbi:image.select('NDBI'),savi:image.select('SAVI'),mndwi:image.select('MNDWI')}).float().rename('IVI'); image = image.addBands([ndvi,savi,ivi]);
};
对比
先放上CLC数据库
注:
水体 - 蓝色
植被 - 绿色
作物 - 黄色
建筑 - 红色
湿地 - 灰色
结论
SAVI
和NDVI
有时候对于植被和农作物是相反的,迷惑.- 在没找到明显区别的情况下,认为NDVI更合适
水体指数(NDWI | MNDWI)
水体指数采用以下两种NDWI
和MNDWI
:
NDWI=(Green−NIR)/(Green+NIR)NDWI=(Green-NIR)/(Green+NIR)NDWI=(Green−NIR)/(Green+NIR)
MNDWI=(Green−MIR)/(Green+MIR)MNDWI=(Green-MIR)/(Green+MIR)MNDWI=(Green−MIR)/(Green+MIR)
其中,Green为绿光波段,NIR为近红外波段,MIR为中红外波段。其水体指数的阈值是[0,1]。
代码
var l8sr = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR")function maskL8sr(image) {var cloudShadowBitMask = 1 << 3;var cloudsBitMask = 1 << 5;var qa = image.select('pixel_qa');var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));return image.updateMask(mask).divide(10000).copyProperties(image, ["system:time_start"]); // .select("B[0-9]*")
}var image = l8sr.filterDate('2017-04-01', '2017-09-30').map(maskL8sr).median();var addVariables = function(image){var ndwi = image.normalizedDifference(['B3','B5']).rename('NDWI');var mndwi = image.normalizedDifference(['B3','B6']).rename('MNDWI'); image = image.addBands([ndwi,mndwi]);
};
对比
瑞士:
MNDWI
无法区分大部分水体和雪
NDWI
在区分雪方面更好点
这样对比更明显:
岸边附近水域对比:
NDWI:
MNDWI:
伦敦地区富营养化湖泊对比: