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); 

下图是自己画规模,然后引证自己的规模

【GEE笔记1】Landsat8/9的NDVI计算,并计算区域NDVI平均值

核算进程和成果

【GEE笔记1】Landsat8/9的NDVI计算,并计算区域NDVI平均值

核算成果

【GEE笔记1】Landsat8/9的NDVI计算,并计算区域NDVI平均值

注: 本文案例只是展示了NDVI核算进程最简单的部分,没有对印象进行处理,如去云处理、大气校对,有的人直接用TOA(calibrated top-of-atmosphere,大气层顶表观反射率,未经过大气校对。)做NDVI,也有的人用SR(Surface Reflectance,表面反射率数据)数据,笔者在写这篇文章时候所用到的数据还没有出产对应的的SR数据。