NDVI简介
什么是NDVI
NDVI是归一化植被指数(Normalized Difference Vegetation Index, NDVI)
NDVI有什么用
- 1、NDVI的应用:检测植被生长状态、植被覆盖度和消除部分辐射误差等;
- 2、-1可见光高反射;0表示有岩石或裸土等,NIR和R近似相等;正值,表示有植被覆盖,且随覆盖度增大而增大;
- 3、NDVI的局限性表现在,用非线性拉伸的方式增强了NIR和R的反射率的对比度。对于同一幅图象,分别求RVI和NDVI时会发现,RVI值增加的速度高于NDVI增加速度,即NDVI对高植被区具有较低的灵敏度;
- 4、NDVI能反映出植物冠层的背景影响,如土壤、潮湿地面、雪、枯叶、粗糙度等,且与植被覆盖有关;
NDVI一般怎么计算
即(NIR-R)/(NIR+R)
NIR为近红外波段的反射值
R为红光波段的反射值
英文缩写为 NDVI。归一化植被指数是反映农作物长势和营养信息的重要参数之一。根据该参数,可以知道不同季节的农作物对氮的需求量, 对合理施用氮肥具有重要的指导作用。
NDVI——归一化植被指数:NDVI=(NIR-R)/(NIR+R),或两个波段反射率的计算。
常见的卫星数据的NDVI计算公式:
Landsat8-9: NDVI = (band5 - band4) / (band5 + band4)
# Landsat 8或称LDCM携带2个主要载荷: 运行陆地成像仪(Operational Land Imager, OLI) 和热红外传感器(Thermal Infrared Sensor, TIRS)。
# 以上公式也适用于Landsat9.
Sentinel-2: NDVI = (band8 - band4) / (band8 + band4)
Modis: NDVI = (band2 - band1) / (band2 + band1)
ETM/TM: NDVI = (band4 - band3) / (band4 + band3)
# Landsat或称ETM+,Landsat5或称TM
AVHRR: NDVI = (CH2 - CH1) / (CH2 + CH1)
在GEE中计算Landsat8/9的NDVI
// 第一步,指定研究区的范围,可以直接ee.Geometry.Polygon然后写四至点的经纬度
var roi = ee.Geometry.Polygon([[
[116.2589558694436,28.54241791617638]
[116.2589558694436,28.87485297022366]
[115.8634480569436,28.87485297022366]
[115.8634480569436,28.54241791617638]
]]);
// 也可以自己画范围,然后引用自己的范围
var roi = ee.FeatureCollection(geometry); // 这行代码和上面的都是表示研究区范围的,具体使用如下图
Map.centerObject(roi, 8); // 以roi为中心显示地图,缩放等级8
var image = ee.Image("LANDSAT/LC09/C02/T1_TOA/LC09_122040_20220506"); // 数据名称、时间、等级
var ndvi = image.normalizedDifference(["B5", "B4"]).rename("NDVI"); //NDVI显示配置,NDVI值范围是-1到1
var visParam = {
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(ndvi, visParam, "NDVI"); // 加载计算好的NDVI数据图层
Map.addLayer(roi, {color: "red"}, "roi"); // 加载roi,并显示为红色
var mean = ndvi.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: roi,
scale: 30
});
// 调用Image中的ReduceRegion方法计算roi区域内的NDVI均值
// 参数分别是Reducer均值计算器、Geometry计算区域roi、scale计算使用的分辨率为30m。
print("reduceRegion value is: ", mean);
下图是自己画范围,然后引用自己的范围
计算过程和结果
计算结果
注:
本文案例仅仅展示了NDVI计算过程最简单的部分,没有对影像进行处理,如去云处理、大气校正,有的人直接用TOA(calibrated top-of-atmosphere,大气层顶表观反射率,未经过大气校正。)做NDVI,也有的人用SR(Surface Reflectance,表面反射率数据)数据,笔者在写这篇文章时候所用到的数据还没有生产对应的的SR数据。