首页 GIS基础理论 常用植被指数有哪些?NDVI该怎么计算?

常用植被指数有哪些?NDVI该怎么计算?

作者: GIS研习社 更新时间:2025-12-21 19:00:56 分类:GIS基础理论

你算的NDVI为什么总是一片黑?别慌,问题可能出在预处理上

刚接触遥感的小伙伴常会遇到一个“灵魂拷问”:明明按教程一步步操作,NDVI结果却显示为全黑或全白——这其实不是软件抽风,而是你忽略了数据预处理的关键一步。我在参与某省森林资源动态监测项目时,就曾因未校正影像DN值,导致团队误判了整片区域的植被退化趋势,差点闹出大乌龙。

常用植被指数有哪些?NDVI该怎么计算?

植被指数的本质,是用数学公式把卫星拍到的“光谱密码”翻译成人类能懂的“绿意浓度表”。就像咖啡师用不同比例的浓缩和牛奶调制拿铁,我们用近红外和红光波段调配出植被健康度。

主流植被指数全家福:从NDVI到EVI,谁才是你的菜?

市面上植被指数不下百种,但真正常驻工具箱的就那么几位“顶流”。它们各有绝活,适用场景也大不相同:

指数名称核心公式擅长领域
NDVI(NIR-Red)/(NIR+Red)通用型选手,适合中低密度植被
EVI2.5×(NIR-Red)/(NIR+6×Red-7.5×Blue+1)高密度植被区(如热带雨林),抗大气干扰
SAVI(1+L)×(NIR-Red)/(NIR+Red+L)裸土背景干扰严重区域,L=0.5
NDWI(Green-NIR)/(Green+NIR)水体提取(注意:此NIR指短波红外SWIR)

这里有个冷知识:NDVI在植被覆盖率超过80%后会出现“饱和效应”——就像体重秤最大量程200斤,再重的人站上去都显示200。这时候就得请出EVI这位“高精度电子秤”来救场。

手把手拆解NDVI计算:避开三大暗礁

计算NDVI看似只是套公式,实则暗藏玄机。根据我带学生踩坑的经验,90%的失败案例都栽在这三步:

  1. 数据预处理:原始影像必须经过辐射定标和大气校正。Sentinel-2数据可用Sen2Cor插件一键处理,Landsat系列推荐用LEDAPS工具包。
  2. 波段选择:不同卫星的红光/近红外波段编号不同。以Landsat 8为例,红光选Band4,近红外选Band5;Sentinel-2则是B4和B8。
  3. 异常值处理:云、阴影、水体会让NDVI出现负数或大于1的荒谬值,需用条件函数剔除(比如设置有效范围-1~1)。

下面是在QGIS中用栅格计算器实现的实战代码(假设红光层叫"red",近红外层叫"nir"):

("nir@1" - "red@1") / ("nir@1" + "red@1")

如果是Python党,用GeoPandas三行代码就能搞定:

import rasterio
with rasterio.open('red.tif') as src_red, rasterio.open('nir.tif') as src_nir:
    ndvi = (src_nir.read(1) - src_red.read(1)) / (src_nir.read(1) + src_red.read(1))

从理论到落地:我的三条军规

最后分享三条让我少走五年弯路的实战法则:

  • 永远做直方图拉伸:原始NDVI值域[-1,1]直接可视化就是灰蒙蒙一片,记得在图层属性里设置Min=-0.2, Max=0.8
  • 警惕传感器差异:无人机多光谱相机和卫星数据的NDVI不能直接对比,就像不能拿体温计量室温
  • 验证!验证!验证!:至少选5个地面样点,用便携式光谱仪实测数据与卫星结果交叉验证

现在轮到你了——你在计算植被指数时遇到过什么奇葩报错?或者有独门调参技巧?欢迎在评论区晒出你的“翻车现场”,咱们一起把坑填平!

相关文章