这里我们进行使用geemap和eemont包基于MODIS影像计算GNDVI,NBR,NDWI指数,这里很方便的省去了计算指数、去云和缩放等功能,非常方便。
简介
GNDVI (Green Normalized Difference Vegetation Index)是一种用于评估植被覆盖状况的指数。它是通过测量红光波段和近红外波段之间的比值来计算的。GNDVI的公式如下:
GNDVI = (NIR - Green) / (NIR + Green)
其中,NIR代表近红外波段的反射值,Green代表绿色波段的反射值。
GNDVI的值范围在-1到1之间。数值越高,表示植被覆盖越多。因为植物叶绿素对近红外波长的反射较强,而对绿色波长的吸收较高,所以植被覆盖越多,GNDVI的值越高。
NBR (Normalized Burn Ratio)是一种用于评估火灾烧伤程度的指数。它是通过测量近红外波段和短波红外波段之间的比值来计算的。NBR的公式如下:
NBR = (NIR - SWIR) / (NIR + SWIR)
其中,NIR代表近红外波段的反射值,SWIR代表短波红外波段的反射值。
NBR的值范围在-1到1之间。数值越高,表示火灾烧伤程度越严重。因为烧伤地表会导致植被叶片受损,从而使短波红外辐射增加,所以烧伤地表的NBR值较高。
NDWI (Normalized Difference Water Index)是一种用于评估水体分布的指数。它是通过测量近红外波段和短波红外波段之间的比值来计算的。NDWI的公式如下:
NDWI = (Green - NIR) / (Green + NIR)
其中,Green代表绿色波段的反射值,NIR代表近红外波段的反射值。
NDWI的值范围在-1到1之间。数值越高,表示水体分布越广。因为水体对近红外辐射的反射较高,而对绿光辐射的吸收较低,所以水体的NDWI值较高。
利用遥感影像计算这些指数,首先需要获取相应的波段数据。通常,遥感影像会提供多个波段的反射值。然后,根据指数的公式,将波段数据代入计算即可得到相应的指数值。
在计算指数之前,需要进行一些预处理步骤,如大气校正、辐射校正和影像配准等。这些步骤可以提高指数计算的精度和准确性。
计算完成后,可以根据指数的数值范围进行分类和分析。例如,通过GNDVI可以评估植被覆盖的分布情况,通过NBR可以评估火灾烧伤的程度,通过NDWI可以评估水体的分布情况。这些信息可以用于环境监测、农业管理、自然灾害评估等领域。
总之,GNDVI、NBR和NDWI是通过遥感影像计算的指数,用于评估植被覆盖、火灾烧伤和水体分布等情况。计算这些指数需要获取相应波段的反射数据,并进行预处理步骤。计算完成后,可以根据指数的数值范围进行分类和分析。这些指数在环境监测和自然资源管理中有着重要的应用价值。
安装
#!pip install eemont
#!pip install geemap
导入安装包
import ee, eemont, geemap
import geemap.colormaps as cm
GEE授权
Map = geemap.Map()
加载数据
#获取研究区
query = 'Taiyuan, Shanxi, China'
BBoxFromQuery = ee.Geometry.BBoxFromQuery(query,user_agent = 'eemont-tutorial-011')
#数据预处理
MOD09GA = (ee.ImageCollection('MODIS/006/MOD09GA')
.filterDate('2020-01-01','2021-01-01')
.maskClouds()
.scaleAndOffset()
.spectralIndices(['GNDVI','NBR','NDWI'])
.median().clip(BBoxFromQuery))
#引入调色板
vegetationPalette = cm.palettes.ndvi
waterPalette = cm.palettes.ndwi
burnPalette = cm.palettes.inferno
#设定可视化不同波段的
GNDVIvis = {'min':0,'max':1,'palette':vegetationPalette,'bands':'GNDVI'}
NBRvis = {'min':0,'max':1,'palette':burnPalette,'bands':'NBR'}
NDWIvis = {'min':0,'max':1,'palette':waterPalette,'bands':'NDWI'}
加载到地图中
Map.addLayer(MOD09GA,GNDVIvis,'GNDVI')
Map.add_colorbar(GNDVIvis['palette'],caption = 'GNDVI')
Map
加载后的结果
GNDVI
NBR
Map2 = geemap.Map()
Map2.addLayer(MOD09GA,NBRvis,'NBR')
Map2.add_colorbar(NBRvis['palette'],label = 'NBR')
Map2
NDWI
Map3 = geemap.Map()
Map3.addLayer(MOD09GA,NDWIvis,'NDWI')
Map3.add_colorbar(NDWIvis['palette'],label = 'NDWI')
Map3