基于 GEE 实现计算核植被指数 kNDVI 并下载数据

1 核植被指数(kNDVI)

目前,NDVI依然是比较流行的植被指数。但由于NDVI自身是“非线性”的,当植被覆盖持续增加时,比值NIR/RED持续增加,这种非线性的转换过程也使得NDVI对RED波段过度敏感,因此,在植被覆盖较高的或者生物含量较高地区,NDVI不可避免的伴有不同程度的饱和现象。此外,NDVI对红光(叶绿素)高度敏感,当叶绿索浓度超过一定浓度时,红光对叶绿素不再具有敏感性,很快出现饱和现象。

为了调整NDVI以适应大气和土壤噪声,特别是在植被茂密地区,减缓NDVI饱和性问题,在NDVI中加入了蓝光波段,提出了增强型植被指数EVI,但是EVI中饱和现象依旧存在。

有学者为解决NDVI(归一化差异植被指数)和EVI(增强型植被指数)的饱和度问题上存在的缺陷,通过采用机器学习的核方法理论,将NDVI线性化,转变为了kNDVI(核植被指数)。

kNDVI指数计算公式如下:

n为NIR;r为Red。核函数k表示这两个波段之间的相似性。在任何情况下均通过径向基函数(RBF)再生核,sigma控制近红外和红外波段之间的距离概念。

 对于径向基函数(RBF),自相似性k(n,n)为1,可先简化为下式。

最后计算公式可以简化为:

kNDVI的数值含义与NDVI类似,但提供了更细致的反映植被状况的能力,尤其是在高植被覆盖度的地区。kNDVI的数值范围通常在-1到1之间,但实际应用中,它主要取值在0到1的区间。下面是kNDVI数值的一些含义:

(1)接近0:kNDVI值接近0通常表示植被覆盖度较低,可能是由于植被稀疏、植被处于非生长季节、或者是非植被区域(如裸土、岩石、水体等)。

(2)接近1:kNDVI值接近1表示植被覆盖度很高,通常与健康、茂盛的植被相关。这可能意味着该地区有丰富的植被生物量和活跃的光合作用。

(3)中间值:kNDVI值在0到1之间的中间值表示不同程度的植被覆盖度,具体解释可能需要结合具体的生态系统和环境条件。

(4)负值:虽然理论上kNDVI可以取负值,但在实际应用中很少见,因为kNDVI的设计是为了减少负值的出现,并且提高在低植被覆盖度区域的敏感性。

kNDVI的一个关键优势是它通过核方法减少了NDVI在高植被覆盖度区域的饱和现象,使得它能够更准确地反映植被的生物物理和生理参数,如叶面积指数(LAI)、总初级生产力(GPP)和太阳诱导叶绿素荧光(SIF)等。这使得kNDVI在植被监测、物候和绿化研究、参数升级等领域具有重要的应用潜力。在实际应用中,kNDVI的数值需要结合具体的遥感影像、时间序列分析、地面验证数据以及其他环境参数来综合解读,以获得更准确的植被状况评估。

2 完整代码

var ROI = table.geometry();

Map.addLayer(ROI,{},'ROI');

Map.centerObject(ROI, 5);

for(var i = 2008;i<=2010;i++){
// 月份,共计12个月
for(var j = 1;j<=12;j++){

var CHIRPS_Daily = ee.ImageCollection("MODIS/061/MOD13Q1")

.filter(ee.Filter.calendarRange(j,  j,'month'))
  .filter(ee.Filter.calendarRange(i, i, 'year'))
  .map(function(img) {
    return img.set('year', img.date().get('year'));
  }).filterBounds(ROI)
 .select('NDVI')

var CHIRPS_Year_mean = CHIRPS_Daily.mean().clip(ROI).multiply(0.0001).pow(2).tanh();

// var batch = require('users/fitoprincipe/geetools:batch')

var precipitationVis = {
  min: -0.2,
  max: 1.0,
  palette: [
    'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
    '66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
    '012E01', '011D01', '011301'
  ],
};

print(CHIRPS_Year_mean,i+'_year_'+j+'_CHIRPS_Year_mean')

Map.addLayer(CHIRPS_Year_mean, precipitationVis, i+'_year_'+j+'_CHIRPS_Year_mean');

// Map.addLayer(CHIRPS_Daily.first().clip(ROI), precipitationVis, 'CHIRPS_Year_mean_first');

Export.image.toDrive({
      image: CHIRPS_Year_mean,
      description: 'everymonth_kndvi_mean_'+i+'_'+j+'_1',
      // description: 'everyMonthKNDVI',
      crs: "EPSG:4326", // use webside:epsg.io to choose the right crs
      scale: 250,
      region: ROI,
      maxPixels: 1e13,
      folder: '2000-2020_EveryMonth_KNDVI'
    })

// batch.Download.ImageCollection.toDrive(CHIRPS_Year_mean, "2000-2020_EveryMonth_KNDVI", {
// image: CHIRPS_Year_mean,
// description: i+'_year_'+j+'_month_mean',
// region: ROI,
// scale: 1000,
// type:"int16" 
// }
// )
}
}

3 运行结果

计算结果数据图层
点击RUN即可下载数据
运行结果数据可视化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值