遥感生态指数(RSEI):理论发展、方法论争与实践进展
遥感生态指数(RSEI):理论发展、方法论争与实践进展
所以给大家更新文章吧,这事好久不做了,好多年不做了。啊~谢谢谢谢,献丑了献丑了。
摘要
遥感生态指数(RSEI)是一种基于多光谱遥感数据,通过主成分分析(PCA)耦合绿度、湿度、热度和干度四个指标,以实现区域生态环境快速、客观、可视化评价的综合指数。本文系统回顾了RSEI从2013年提出至今的理论发展与实践演进历程,重点阐述了其在解决特征向量方向不确定性、数据标准化处理等关键问题上的改进与优化。同时,文章探讨了当前围绕RSEI模型的核心争议(如指标方向固定方法的局限性),并通过福州、拉萨的案例展示了其具体实现流程与应用效果。旨在为相关领域的研究者提供一个关于RSEI指数发展、现状与前沿争鸣的清晰框架。
一、RSEI的诞生
2013年,徐涵秋教授首次提出遥感生态指数(RSEI)[1],旨在解决传统生态评价方法中数据获取难、主观性强、结果不可视等问题。
RSEI选取了四个与人类生存息息相关的生态要素:
- 绿度,用植被指数(NDVI)表示
- 湿度,用缨帽变换的湿度分量(Wet)表示
- 热度,用地表温度(LST)表示
- 干度,用建筑裸土指数(NDBSI)表示
与传统多指标加权求和的方法不同,RSEI采用主成分分析(PCA) 将四个指标压缩成一个综合指数,权重由数据本身决定,避免了人为定权的主观性。
二、RSEI的完善
随着RSEI的广泛应用,其本身的一些问题也逐渐暴露,学者们提出了多种改进方案:
1. 解决特征向量方向不确定性问题
早期RSEI在计算第一主成分(PC1)时,特征向量方向随机,导致结果可能出现完全相反的情况。Li等人通过固定特征向量方向,提出改进模型,确保结果一致性和可比性[3]。
2. 标准化替代归一化
郑子豪等人发现,传统归一化方法在时间序列分析中易受极值干扰,提出使用标准化处理并结合离散化方案(DRSEI),显著提高了时间序列分析的稳定性[2]。
3. MRSEI
有学者提出加入第二、三主成分以“增加信息量”,但徐涵秋指出这反而会混淆生态信息[4]
4. 核主成分分析(kPCA)
有学者建议用kPCA处理非线性关系,但徐涵秋研究表明四个指标间实为线性强相关,kPCA反而引入过度拟合[5]
三、 RSEI的争议
Li等基于四个指标对生态环境的实际影响来固定特征向量方向,对生态环境有正面影响的归一化植被指数(NDVI)和湿度指数(Wet)的特征向量取绝对值,对生态环境有负面影响的地表温度(LST)和归一化雪盖指数(NDSI)的特征向量取绝对值的相反数,以此对模型进行改进。但是在实际应用中,存在一些问题
当四个指标的方向如下:
NDVI | Wet | LST | NDBSI |
---|---|---|---|
正 | 正 | 负 | 负 |
此时为理想情况,不做任何处理,RSEI计算公式为RSEI0=PC1RSEI0 = PC1RSEI0=PC1
当四个指标的方向如下:
NDVI | Wet | LST | NDBSI |
---|---|---|---|
负 | 负 | 正 | 正 |
当出现这种方向相反的情况时,可以令RSEI0=1−PC1RSEI0 = 1 - PC1RSEI0=1−PC1,其结果在经过归一化后是与理想情况等价的。
或者根据Li的方法,手动将四个指标的方向改为正正负负,此时该方向只是原始特征向量方向量的反转,仍是方差最大的方向,如图:
将修正后的特征向量方向参与主成分分析,不影响后续计算,RSEI计算公式仍为RSEI0=PC1RSEI0 = PC1RSEI0=PC1。
当四个指标的方向如下:
NDVI | Wet | LST | NDBSI |
---|---|---|---|
正 | 正 | 正 | 正 |
正 | 正 | 正 | 负 |
负 | 正 | 负 | 正 |
… | … | … | … |
负 | 负 | 负 | 正 |
负 | 负 | 负 | 负 |
当出现正正负负和负负正正之外的情况时,如果仍手动将四个指标的方向改为正正负负,则修正后的特征向量方向为原始特征向量方向量的对称轴,不是方差最大的方向,如图:
出现这种异常
是否意味着Li的方法具有局限性
或者RSEI使用区域有限。
或者输入数据可能存在特殊问题。
排查建议:
**数据源与时相:**影像是否来自植被生长季? cloud mask是否干净?
**研究区特殊性:**研究区域是否有大范围水体、冰雪、盐碱地或特殊的城市结构,导致 Wet 分量与其他指标的关系背离常理?(例如,在干旱区,水体很少,Wet 分量可能主要响应的是土壤或建筑材质,而非植被)。
**计算过程:**确认四个指标都使用了相同范围的有效像元,并且都进行了正确的标准化(归一化或标准化)。
四、RSEI的实现
以下是基于Google Earth Engine的RSEI实现代码:
// 定义全局变量
var scale = 1000; // 分析尺度
var year = 2020; // 分析年份
var table = ee.FeatureCollection("users/lijian960708/china-shp/china-city"); // 中国城市行政区划数据// 选择研究区域 - 福州市
var roi = table.filter(ee.Filter.eq("地名", "福州市"));
Map.centerObject(roi, 9); // 地图中心定位到研究区域,缩放级别9/*** 云掩膜函数* 使用QA_PIXEL波段去除云和云阴影*/
var maskclouds = function(img) {var cloudShadowBitMask = 1 << 4; // 云阴影位掩码var cloudsBitMask = 1 << 3; // 云位掩码var qa = img.select("QA_PIXEL"); // 选择质量评估波段// 创建掩膜:无云阴影且无云var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));return img.addBands(img.updateMask(mask), null, true); // 应用掩膜
};/*** 应用比例因子函数* 将DN值转换为地表反射率和地表温度*/
var applyScaleFactors = function(image) {var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2); // 光学波段比例因子var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0).subtract(273.15); // 热红外波段比例因子,转换为摄氏度return image.addBands(opticalBands, null, true).addBands(thermalBands, null, true); // 添加处理后的波段
};/*** 计算NDVI(归一化植被指数)* 公式:(NIR - Red) / (NIR + Red)*/
var NDVI = function(image) {return image.addBands(image.normalizedDifference(["NIR", "Red"]).rename("NDVI")); // 添加NDVI波段
};/*** 计算WET(湿度分量)* 基于缨帽变换的湿度分量*/
var WET = function(image) {var WET = image.expression('Blue * 0.1511 + Green * 0.1973 + Red * 0.3283 + NIR * 0.3407 + SWIR1 * (-0.7117) + SWIR2 * (-0.4559)',{'Blue': image.select('Blue'),'Green': image.select('Green'),'Red': image.select('Red'),'NIR': image.select('NIR'),'SWIR1': image.select('SWIR1'),'SWIR2': image.select('SWIR2')}).rename('WET');return image.addBands(WET); // 添加WET波段
};/*** 计算NDBSI(归一化建筑指数)* 结合SI(裸土指数)和IBI(建筑指数)*/
var NDBSI = function(image) {// 计算SI(裸土指数)var SI = image.expression('((SWIR1 + Red) - (NIR + Blue)) / ((SWIR1 + Red) + (NIR + Blue))',{'SWIR1': image.select('SWIR1'),'Red': image.select('Red'),'NIR': image.select('NIR'),'Blue': image.select('Blue')});// 计算IBI(建筑指数)var IBI = image.expression('(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + Red) + Green / (Green + SWIR1))) / ' +'(2 * SWIR1 / (SWIR1 + NIR) + (NIR / (NIR + Red) + Green / (Green + SWIR1)))',{'SWIR1': image.select('SWIR1'),'NIR': image.select('NIR'),'Red': image.select('Red'),'Green': image.select('Green')});// 计算NDBSI:SI和IBI的平均值var NDBSI = SI.add(IBI).divide(2).rename('NDBSI');return image.addBands(NDBSI); // 添加NDBSI波段
};/*** 图像归一化函数* 将各波段值归一化到0-1范围*/
var img_norm = function(image) {var minMax = image.reduceRegion({reducer: ee.Reducer.minMax(), // 最小最大值归约器geometry: roi, // 研究区域scale: scale, // 空间尺度maxPixels: 10e13, // 最大像素数});// 对每个波段进行归一化var image_norm = ee.ImageCollection.fromImages(image.bandNames().map(function(name) {name = ee.String(name);var band = image.select(name);var min = ee.Number(minMax.get(name.cat('_min'))); // 获取最小值var max = ee.Number(minMax.get(name.cat('_max'))); // 获取最大值var norm = band.subtract(min).divide(max.subtract(min)); // 归一化计算return norm;})).toBands();image_norm = image_norm.rename(image.bandNames()); // 重命名波段return image_norm;
};/*** 主成分分析函数* 计算四个指标(NDVI, WET, LST, NDBSI)的主成分*/
var getPAC = function(image){var bandNames = image.bandNames();// 数据中心化var meanDict = image.reduceRegion({reducer: ee.Reducer.mean(), // 平均值归约器geometry: roi,scale: scale,maxPixels: 1e13});var means = ee.Image.constant(meanDict.values(bandNames));var centered = image.subtract(means); // 减去均值var arrays = centered.toArray(); // 转换为数组// 计算协方差矩阵var covar = arrays.reduceRegion({reducer: ee.Reducer.centeredCovariance(), // 中心化协方差归约器geometry: roi,scale: scale,maxPixels: 1e13});// 特征值分解var covarArray = ee.Array(covar.get('array'));var eigens = covarArray.eigen();print('eigens', eigens);// 计算各主成分的方差贡献率var eigenValues = eigens.slice(1, 0, 1);var eigenValuesList = eigenValues.toList().flatten();var total = eigenValuesList.reduce(ee.Reducer.sum());var percentageVariance = eigenValuesList.map(function(item) {return ee.Number(item).divide(total).multiply(100).format("%.2f");});print('percentageVariance', percentageVariance); // 获取特征向量var eigenVectors = eigens.slice(1, 1);print('原特征向量方向', eigenVectors);// 获取PC1的系数并调整方向(根据RSEI理论)var NDVICoef = eigenVectors.get([0, 0]);var WETCoef = eigenVectors.get([0, 1]);var LSTCoef = eigenVectors.get([0, 2]);var NDBSICoef = eigenVectors.get([0, 3]);print('NDVI系数', NDVICoef);print('WET系数', WETCoef);print('LST系数', LSTCoef);print('NDBSI系数', NDBSICoef);// 调整PC1系数方向:NDVI和WET取正,LST和NDBSI取负var PC1Coef = ee.Array([[NDVICoef.abs(),WETCoef.abs(),LSTCoef.abs().multiply(-1),NDBSICoef.abs().multiply(-1)]]);eigenVectors = ee.Array.cat([PC1Coef, eigenVectors.slice(0, 1)], 0);print('调整后特征向量方向', eigenVectors);// 计算主成分var arrayImage = arrays.toArray(1);var principalComponents = ee.Image(eigenVectors).matrixMultiply(arrayImage);var PCA = principalComponents.arrayProject([0]).arrayFlatten([['PC1', 'PC2', 'PC3', 'PC4']]);return PCA;
};// 创建水体掩膜(去除永久水体和季节性水体)
var water = ee.ImageCollection('JRC/GSW1_4/YearlyHistory').filterDate(year + '-01-01', year + '-12-31').first();
var mask = water.eq(2).add(water.eq(3)).unmask().eq(0).clip(roi); // 掩膜掉水体(值2和3)// 定义波段名称映射
var srcBands = ["SR_B2", "SR_B3", "SR_B4", "SR_B5", "SR_B6", "SR_B7", "ST_B10"];
var toBands = ["Blue", "Green", "Red", "NIR", "SWIR1", "SWIR2", "LST"];// 加载和处理Landsat 8影像
var imageCol = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2").filterBounds(roi) // 空间过滤.filterDate(year + '-01-01', year + '-12-31') // 时间过滤.map(maskclouds) // 云掩膜.map(applyScaleFactors) // 应用比例因子.select(srcBands, toBands) // 选择并重命名波段.map(NDVI) // 计算NDVI.map(WET) // 计算WET.map(NDBSI); // 计算NDBSI// 合成中值影像并应用水体掩膜
var image = imageCol.select(['NDVI', 'WET', 'LST', 'NDBSI']).median().updateMask(mask).clip(roi);// 归一化四个生态指标
var image_norm = img_norm(image);// 主成分分析
var PCA = getPAC(image_norm);// 提取第一主成分作为初始RSEI
var RSEI_0 = PCA.select("PC1");// 对RSEI进行归一化得到最终结果
var RSEI = img_norm(RSEI_0);// 创建RSEI直方图
var Histogram = ui.Chart.image.histogram({image: RSEI,region: roi,scale: scale,maxPixels: 1e10
});
print('Histogram of RSEI', Histogram);// 定义可视化参数
var visParam = {min: 0, // 最小值max: 1, // 最大值palette: ['C2523C', 'F2B60E', '77ED00', '1BAA7D', '0B2C7A'] // 颜色方案:从差到好
};// 在地图上显示RSEI结果
Map.addLayer(RSEI, visParam, 'RSEI');
福州市的结果:
拉萨市的结果:
四、结语
以上便是个人对RSEI的一些浅见与总结。遥感生态评价领域方兴未艾,其中必然还有许多值得探讨的细节与不同的见解。文中若有任何疏漏或不当之处,欢迎各位大佬批评指正,期待能与大家一同交流讨论!
参考文献
[1] 徐涵秋. 区域生态环境变化的遥感评价指数[J]. 中国环境科学, 2013,33(5):889-897.
[2] Zheng Z, Wu Z, Chen Y, et al. Instability of remote sensing based ecological index (RSEI) and its improvement for time series analysis[J]. Science of the Total Environment, 2022, 814: 152595.
[3] Li N, Wang J, Qin F. The improvement of ecological environment index model RSEI[J]. Arabian Journal of Geosciences, 2020, 13: 403.
[4] 徐涵秋, 邓文慧. MRSEI指数的合理性分析及其与RSEI指数的区别[J]. 遥感技术与应用, 2022, 37(1):1-7.
[5] 徐涵秋, 李春强, 林梦婧. RSEI应使用主成分分析或核主成分分析?[J]. 武汉大学学报(信息科学版), 2023,48(4):506-513.