GEE 案例:利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析

目录

简介

指数

数据

代码

结果


简介

利用2001-2024年的MODIS数据长时序ndvi指数归一化后的结果分析,并加载时序图。

指数

NDVI指数(Normalized Difference Vegetation Index)是用来评估地表植被覆盖度和健康程度的指数。它通过计算红光和近红外光反射率的差异来衡量植被的光合作用活性和生长状况。NDVI值范围从-1到1,较高的值表示较高的植被覆盖度和健康程度。

VCI指数(Vegetation Condition Index)是衡量植被状况的指数。它是基于NDVI指数计算得出的,用来表征植被的生长和状况。VCI指数通常表达为百分比形式,数值越高表示植被状况越好,数值越低表示植被状况越差。

VCI指数是根据NDVI的变化来计算的,通常将一段时间(如一年)内的NDVI数据与长期平均值进行比较,得出植被状况指数。在农业和生态环境监测中,VCI指数被用来评估植被的退化状况、旱情监测以及预测植被的生长情况。

总的来说,NDVI指数用来衡量植被覆盖程度和健康程度,而VCI指数则是根据NDVI的变化计算得出的,用来评估植被的生长和状况。

数据

MODIS/061/MOD13A2数据是来自于MODIS(Moderate Resolution Imaging Spectroradiometer)遥感传感器的产品之一。MODIS是美国国家航空航天局(NASA)和美国国家环境信息中心(NEIC)联合研发的一款具有高空间分辨率和全球覆盖能力的遥感传感器。

MOD13A2数据是基于MODIS传感器观测到的地表植被指数(Vegetation Index,VI)数据集。它提供了有关地表植被覆盖度和健康状况的信息。MOD13A2数据的空间分辨率为500米,时间分辨率为16天。数据包括以下几个主要的植被指数:

  1. 植被指数(Vegetation Index,VI):包括了常用的NDVI(Normalized Difference Vegetation Index)、EVI(Enhanced Vegetation Index)等。这些指数用于评估植被的光合活性和健康状况,反映了地表植被的覆盖度和生长状态。

  2. 植被覆盖度(Fractional Vegetation Cover,FVC):表示地表被植被覆盖的比例,可用于监测植被覆盖变化和评估土地利用。

  3. 植被生长指标(Vegetation Growth Index,VGI):用于评估地表植被的生长情况,根据植被指数的变化来反映植被的生长速率和季节变化。

MOD13A2数据的应用广泛,包括农业监测、水资源管理、气候变化研究、生态环境监测等。通过分析MOD13A2数据,可以获得关于地表植被的信息,为决策制定和资源管理提供科学依据。

代码


var feature = ee.FeatureCollection("FAO/GAUL/2015/level0")

var point = /* color: #98ff00 */ee.Geometry.Point([-89.8212566433932, 40.15005408150289]);

var roi = feature.filterBounds(point);

Map.centerObject(roi)
Map.addLayer(roi)

// define start and end time

var time_start = '2001', time_end = '2003'

// call modis ndvi images 

var ndvi = ee.ImageCollection("MODIS/061/MOD13A2")
.select(['NDVI'])
.filterDate(time_start, time_end);

// clculate the vci
// vegetation condition index
// vci = ((ndvi - min)/(max - min)) * 100

var ndvi_min = ndvi.min().multiply(0.0001);
var ndvi_max = ndvi.max().multiply(0.0001);

var vci = ndvi.map(function(img){
  var band = img.multiply(0.0001);
  var index = band.expression('((ndvi - min)/(max - min))*100.0',{
    'ndvi': band, 'min': ndvi_min, 'max': ndvi_max
    }).rename('vci');
  return index
  .copyProperties(img, ['system:time_start','system:time_end'])
  });
  
// drought mapping using vci

var vci_median = vci.median();

Map.addLayer(vci_median.clip(roi),[],'vci_median',false)

// histogram

print(
  ui.Chart.image.histogram(vci_median, roi, 1000)
  )

// vci classification

// making a constant image 

var cons = ee.Image.constant(0);

// define classes

var extreme = cons.where(vci_median.gte(0).and(vci_median.lt(10)), 1);
var severe = extreme.where(vci_median.gte(10).and(vci_median.lt(20)), 2);
var moderate = severe.where(vci_median.gte(20).and(vci_median.lt(30)), 3);
var light = moderate.where(vci_median.gte(30).and(vci_median.lt(40)), 4);
var no1 = light.where(vci_median.gte(40).and(vci_median.lt(60)), 5);
var no2 = no1.where(vci_median.gte(60).and(vci_median.lt(80)), 6);
var no3 = no2.where(vci_median.gte(80), 7);

Map.addLayer(moderate.clip(roi),{min:1, max: 7},'drought_map',false)


// vci classification for each date


var time_start = '2001', time_end = '2024'

var ndvi2 = ee.ImageCollection("MODIS/061/MOD13A2")
.select(['NDVI'])
.filterDate(time_start, time_end);

var ndvi_min2 = ndvi2.min().multiply(0.0001);
var ndvi_max2 = ndvi2.max().multiply(0.0001);

var vci2 = ndvi2.map(function(img){
  var band = img.multiply(0.0001);
  var index = band.expression('((ndvi - min)/(max - min))*100.0',{
    'ndvi': band, 'min': ndvi_min2, 'max': ndvi_max2
    }).rename('vci');
  return index
  .copyProperties(img, ['system:time_start','system:time_end'])
  });
  
var vci_class = vci2.map(function(img){
  var cons = ee.Image.constant(0);
  var extreme = cons.where(vci_median.gte(0).and(vci_median.lt(10)), 1);
  var severe = extreme.where(vci_median.gte(10).and(vci_median.lt(20)), 2);
  var moderate = severe.where(vci_median.gte(20).and(vci_median.lt(30)), 3);
  var light = moderate.where(vci_median.gte(30).and(vci_median.lt(40)), 4);
  var no1 = light.where(vci_median.gte(40).and(vci_median.lt(60)), 5);
  var no2 = no1.where(vci_median.gte(60).and(vci_median.lt(80)), 6);
  var no3 = no2.where(vci_median.gte(80), 7);
  return no3
  .copyProperties(img, img.propertyNames())
  });
  
var vci_map = vci_class.mode();

Map.addLayer(vci_map.clip(roi),{palette: ['black','brown','red','orange','yellow', 'lightgreen','darkgreen'],
        min: 1, max: 7},'vci_mode', false)

Export.image.toDrive({
  image: vci_map.clip(roi),
  description: 'vci_map',
  region: roi,
  maxPixels: 1e13,
  crs: 'EPSG:4326',
  folder: 'drought',
  scale: 1000
  })


// drought area calculation

var drought_area = (ee.Image.pixelArea().divide(1e6)).addBands(vci_map);

print(
  ui.Chart.image.byClass(drought_area, 'constant', 
  roi, ee.Reducer.sum(), 1000, ['nan','extreme drought','severe drought','moderate drought','light drought','no drought1','nodrought2','no drought3'])
  )

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值