在第一期里面,我们讲到了RSEI的应用现状、利用GEE计算RSEI的优势以及注意事项,并对其进行了讨论。讨论内容主要强调了影像级别、时期、质量以及差异性对研究结果的影响。
今天我们阐述一下RSEI中的指数计算,了解RSEI的内核。
反映生态质量的诸多自然因素中,
绿度、湿度、热度、干度可谓是与人类生存息息相关的4 个重要指标
,也是人类直观感觉生态条件优劣的重要因素,因此常被用于评价生态系统
。就遥感技术本身而言,它可以利用专题信息增强技术来从纷杂的遥感影像信息中提取这4 个重要指标的信息,如采用植被指数、地表温度、缨帽变换的湿度分量就可以分别代表绿度、热度和湿度。由于建筑物是人工生态系统的重要组成部分,建筑不透水面的大量出现取代了地表原有的自然生态系统,导致了地表的“干化”,而裸土也是地表“干化”的原因之一,因此可用建筑和裸土指数来代表 “干度”。这样,拟建的遥感生态指数(RSEI) 就可以表示为这4 个指标的函数,即:
其遥感定义为:
RSEI = f (VI, Wet, LST, NDBSI)
其中,G 为绿度,W 为湿度,T 为热度,D 为干度,VI 为植被指数,Wet 为湿度分量,LST 为地表温度,NDBSI 为 建筑和裸土指数。
绿度指数:归一化差值植被指数( NDVI) 无疑是应用最广泛的植被指数,它与植物生物量、叶面积指数以及植被覆盖度都有密切的关系。因此,选用NDVI 来代表绿度指标,公式为:
NDVI = (NIR-RED) / (NIR+RED)
湿度指数:缨帽变换是一种有效的数据压缩和去冗余技术,其亮度、绿度、湿度分量与地表物理参量 有直接的关系,因此已被广泛地应用于生态监测中。由于其中的湿度分量与植被和土壤的湿度紧密相关,因此本研究的湿度指标以湿度分量Wet 来代表,以Landsat7为例,其表达式为:
Wet = 0.2626*blue+0.2141*green+0.0926*red+0.0656*nir-0.7629*swir1-0.5388*swir2
热度指数:代表热度指标的地表温度可采用Landsat用户手册的模型以及Chander等最新修订的定标参数进行计算:
式中,L6 为ETM+热红外6波段的象元在传感器处的辐射值; DN 为象元灰度值,gain和bias分别为6波段的增益值与偏置值,可以从影像的头文件获得; T 为传感器处温度值; K1和K2分别为定标参数: K1=606.09W/( m2·sr·μm),K2=1282.71K。
经过计算,温度T 须进行比辐射率纠正才能成为地表温度LST
:
LST = T/[(1+λT/ρ)Inε]
式中,λ 为ETM+ 6 波段的中心波长( λ = 11.45 μm) ; ρ = 1.438 × 10-2 mK; ε 为地表比辐射率。
干度指数:代表干度指标的建筑指数选择IBI建筑指数,但在区域环境中,还有相当一部分的裸土,它们同样造成地表的“干化”,因此干度指标(NDBSI) 可由二者合成,即由建筑指数IBI和土壤指数SI合成:
NDBSI = (IBI+SI)/2
其中:
SI = [(SWIR1+RED)-(NIR+BLUE)]/[(SWIR1+RED)+(NIR+BLUE)];
IBI={2*SWIR1/(SWIR1+RED)-[NIR/(NIR+RED)+GREEN/(GREEN+SWIR1)]}/
{
2*
SWIR1/(
SWIR1
+RED
)+[NIR/(NIR+RED
)+GREEN/(GREEN+
SWIR1
)
]
}
遥感生态指数(RSEI)指数计算的GEE代码
绿度指数(NDV
I,以Landsat7为例))
:
var NDVI = image.normalizedDifference(['SR_B7','SR_B5'])
湿度指数(Wet,以Landsat7为例):
var WET = image.expression(‘0.2626*blue+0.2141*green+0.0926*red
+0.0656*nir-0.7629*swir1-0.5388*swir2’,
{
blue: img.select('SR_B1'),
green: img.select('SR_B2'),
red: img.select('SR_B3'),
nir: img.select('SR_B4'),
swir1: img.select('SR_B5'),
swir2: img.select('SR_B7'),
})
热度指数(
T,以Landsat7为例
)
:
var L7_B6 = img.select('SR_B6').multiply(0.1)
var ndvi = img.normalizedDifference(['SR_B4', 'SR_B3'])
var pv = (ndvi.subtract(ee.Image(0.05)).divide((ee.Image(0.95)).subtract(ee.Image(0.05)))).pow(ee.Number(2))
var c = pv.expression("0.004*pv+0.986", {pv: pv})
var LST = L7_B6.expression(
'(L7_B6/(1 + (0.001145* (L7_B6 / 1.438))*log(c)))', {
L7_B6: L7_B6,
c: c,
})
var T = LST.substract(273.15)
干度指数(NDBSI
,以Landsat7为例)
:
var ibi = img.expression('(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1))) / (2 * SWIR1 / (SWIR1 + NIR)
+ (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1)))', {
'SWIR1': img.select('B5'),
'NIR': img.select('B4'),
'RED': img.select('B3'),
'GREEN': img.select('B2')
var si = img.expression('((SWIR1 + RED) - (NIR + BLUE)) /
((SWIR1 + RED) + (NIR + BLUE))', {
'SWIR1': img.select('SR_B5'),
'NIR': img.select('SR_B4'),
'RED': img.select('SR_B3'),
'BLUE': img.select('SR_B1')
})
var ndbsi = (ibi.add(si)).divide(2)
1.在GEE中,指数计算只需要根据公式进行计算就能够快速获得,非常方便快捷;
2.我
们
必
须注
意,本例是以Landsat-7数据为例,计算的RSEI的4个指数。
然而,
不同Landsat卫星存在一定的光谱差异,详细可见RSE论文
:
3.
在开展指数计算的时候,需要先对指数进行比例换算,再开展相应的计算,否则计算的指数存在错误
,这一点是数据处理中小白常常出现的错误。