目录
[二、基础参数定义(第 1-2 步)](#二、基础参数定义(第 1-2 步))
[三、Landsat 8 影像加载与预处理(第 3 步)](#三、Landsat 8 影像加载与预处理(第 3 步))
[四、生态核心指数计算(第 4 步)](#四、生态核心指数计算(第 4 步))
[(二)NDVI 极值统计(用于植被覆盖度计算)](#(二)NDVI 极值统计(用于植被覆盖度计算))
[五、指数标准化(第 5 步)](#五、指数标准化(第 5 步))
[六、主成分分析(PCA,第 6 步)](#六、主成分分析(PCA,第 6 步))
[(一)PCA 的核心作用](#(一)PCA 的核心作用)
[(二)PCA 实现步骤](#(二)PCA 实现步骤)
[1. 生成主成分波段名称](#1. 生成主成分波段名称)
[2. 数组转换与协方差矩阵计算](#2. 数组转换与协方差矩阵计算)
[3. 特征值与特征向量分解](#3. 特征值与特征向量分解)
[4. PCA 投影与第一主成分提取](#4. PCA 投影与第一主成分提取)
[七、RSEI 构建与归一化(第 7 步)](#七、RSEI 构建与归一化(第 7 步))
[(一)RSEI 的定义](#(一)RSEI 的定义)
[八、RSEI 五分类(LSES 等级划分,第 8 步)](#八、RSEI 五分类(LSES 等级划分,第 8 步))
[九、统计分析与图例添加(第 9-10 步)](#九、统计分析与图例添加(第 9-10 步))
[(一)RSEI 直方图统计](#(一)RSEI 直方图统计)
[(二)LSES 等级图例添加](#(二)LSES 等级图例添加)

若觉得代码对您的研究 / 项目有帮助,欢迎点击打赏支持!需要完整代码的朋友,打赏后可在后台私信(复制文章标题发给我),我会尽快发您完整可运行代码,感谢支持!
本代码基于 Google Earth Engine(GEE)平台,以 Landsat 8 卫星影像为数据源,通过一系列数据预处理、指数计算、标准化、主成分分析(PCA)等步骤,最终构建遥感生态指数(RSEI),并将其划分为 5 个土地生态状况等级(LSES),同时实现结果可视化与统计分析。核心应用场景包括区域生态环境质量评价、生态变化监测等。
一、前言
代码按 "数据准备→指数计算→数据标准化→PCA 分析→RSEI 构建→等级划分→可视化与统计" 的逻辑分步执行,各步骤环环相扣,前序结果为后序输入,具体流程如下:
- 定义研究区与基础参数(时间范围、可视化规则)
- 加载 Landsat 8 影像并完成预处理(去云、辐射定标)
- 计算生态评价核心指数(植被、温度、湿度、干燥度相关)
- 指数标准化(消除量纲影响)
- 主成分分析(提取核心生态信息)
- 构建 RSEI 并归一化
- RSEI 五分类与可视化
- 统计分析(直方图)与图例添加
| 等级 | RSEI 范围 | 生态状况 |
|---|---|---|
| 1 | 0.0-0.2 | 极低 |
| 2 | 0.2-0.4 | 较低 |
| 3 | 0.4-0.6 | 中等 |
| 4 | 0.6-0.8 | 较高 |
| 5 | 0.8-1.0 | 极高 |
| [按照 RSEI 阈值进行生态分级 LSES(五等级)] |
二、基础参数定义(第 1-2 步)
(一)研究区定义
javascript
var aoi = geometry; // 研究区边界(需提前通过绘制或加载矢量文件定义)
Map.centerObject(aoi, 10); // GEE地图居中显示研究区,缩放级别10(0-20,数值越大越清晰)
- **核心作用:**确定分析的空间范围,所有后续数据处理与计算均限定在该区域内。
- 关键说明:
geometry是 GEE 内置的空间几何对象,需用户提前通过 GEE 地图界面绘制多边形,或加载 Shapefile 等矢量数据获取。
(二)时间范围与可视化参数
javascript
var year = 2015;
var startDate = year + '-08-01'; // 分析起始时间:2015年8月1日
var endDate = year + '-11-30'; // 分析结束时间:2015年11月30日
var visParams = {min: -1, max: 1, palette: ['red', 'yellow', 'green']};
- **时间范围设计逻辑:**选择 8-11 月(北半球夏末至秋初),该时段植被覆盖稳定、云量相对较少,能减少季节因素对生态指数的干扰,适合生态质量评价。
- 可视化参数:
min和max限定数据显示范围,palette定义颜色映射规则(红色→黄色→绿色,通常用于表示 "差→中→好" 的梯度)。
三、Landsat 8 影像加载与预处理(第 3 步)
(一)核心目标
获取研究区范围内、指定时间内的高质量 Landsat 8 影像,消除云及云阴影干扰,并完成反射率与地表温度的辐射定标(将原始 DN 值转换为具有物理意义的地表参数)。
(二)云掩膜函数(去云处理)
javascript
function maskL8sr(image) {
var cloudShadowBitMask = (1 << 3); // 云阴影对应的位掩码(基于Landsat 8 QA_PIXEL波段编码规则)
var cloudsBitMask = (1 << 5); // 云对应的位掩码
var qa = image.select('QA_PIXEL'); // 选择质量控制波段(QA_PIXEL记录影像质量信息)
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask); // 应用掩膜,保留非云、非云阴影像素
}
- 技术原理: Landsat 8 的 QA_PIXEL 波段为 16 位整数,每一位(bit)代表特定的质量信息(如是否为云、云阴影、水体等)。通过 "按位与(bitwiseAnd)" 运算筛选出非云、非云阴影的像素,再通过
updateMask函数屏蔽无效像素。 - 关键说明:
1 << 3表示将二进制数1左移 3 位(结果为1000),对应 QA_PIXEL 波段中云阴影的标志位;eq(0)表示筛选该位为 0 的像素(即非云阴影 / 云像素)。
(三)影像集加载与预处理链
javascript
var landsat8Image = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterBounds(aoi) // 筛选研究区范围内的影像
.filterDate(startDate, endDate) // 筛选指定时间范围内的影像
.filter(ee.Filter.lt('CLOUD_COVER', 1)) // 筛选云量<1%的影像(进一步保证数据质量)
.map(maskL8sr) // 应用云掩膜函数
.median() // 中值合成(将多景影像融合为单景,减少噪声)
.clip(aoi); // 裁剪影像至研究区范围
- 数据源说明:
LANDSAT/LC08/C02/T1_L2是 Landsat 8 的 Level-2 级产品(经过大气校正),包含反射率(SR_B1-SR_B7)和地表温度(ST_B10)等波段,可直接用于生态指数计算。 - **中值合成优势:**相比均值合成,更能抑制极端值(如残留云像素、传感器噪声)的影响,保留影像的真实信息。
(四)辐射定标(反射率与温度缩放)
javascript
var scaledLandsat8 = landsat8Image
.select(['SR_B.*']) // 选择所有反射率波段(SR_B1-SR_B7)
.multiply(0.0000275) // 反射率缩放系数(Landsat 8官方提供)
.add(-0.2) // 反射率偏移量(官方系数,用于还原真实反射率)
.addBands( // 添加缩放后的地表温度波段
landsat8Image.select('ST_B10')
.multiply(0.00341802) // 温度缩放系数(官方提供)
.add(149.0) // 温度偏移量(官方系数)
);
- **核心目的:**Level-2 级影像的原始值为量化值(DN),需通过官方提供的系数转换为真实的地表反射率(0-1 范围)和亮温(单位:K)。
- **关键依据:**缩放系数和偏移量来自 USGS(美国地质调查局)发布的 Landsat 8 数据使用手册,确保数据的准确性。
四、生态核心指数计算(第 4 步)
这一步是构建 RSEI 的核心,共计算 7 个指数 / 参数,涵盖植被状况、地表温度、湿度条件、地表覆盖类型四大生态评价维度,各指数的计算逻辑与生态意义如下:
(一)归一化植被指数(NDVI)
javascript
var ndvi = scaledLandsat8.normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');
- 计算原理: 归一化差异指数,公式为
(NIR - RED)/(NIR + RED),其中SR_B5是近红外波段(植被强反射),SR_B4是红波段(植被强吸收)。 - **生态意义:**NDVI 是反映植被覆盖度和生长状况的核心指标,取值范围 [-1,1],值越大表示植被覆盖越好、生态状况越优(负值通常为水体、裸地等)。
(二)NDVI 极值统计(用于植被覆盖度计算)
javascript
var ndviStats = ndvi.reduceRegion({
reducer: ee.Reducer.minMax(), // 统计研究区内NDVI的最小值和最大值
geometry: aoi,
scale: 30, // 空间分辨率(Landsat 8影像原生分辨率)
maxPixels: 1e13 // 最大计算像素数(避免因研究区过大导致溢出)
});
var ndviMin = ee.Number(ndviStats.get('NDVI_min')); // 提取NDVI最小值
var ndviMax = ee.Number(ndviStats.get('NDVI_max')); // 提取NDVI最大值
**核心作用:**为后续计算植被覆盖度(FV)提供基础参数,NDVI 极值反映研究区内植被覆盖的极端情况(裸地 / 水体的 NDVI 最小值、茂密植被的 NDVI 最大值)。
(三)植被覆盖度(FV)
javascript
var fv = ndvi.subtract(ndviMin)
.divide(ndviMax.subtract(ndviMin))
.pow(2) // 二次函数模型(相比线性模型,更贴合植被覆盖的实际情况)
.rename('FV');
- 计算原理: 基于 NDVI 的植被覆盖度估算模型,公式为
FV = ((NDVI - NDVI_min)/(NDVI_max - NDVI_min))²,取值范围 [0,1]。 - **生态意义:**表示某一像素中植被所占的比例,值越大植被覆盖越密集,是反映地表生态状况的重要参数。
(四)地表比辐射率(EM)
javascript
var em = fv.multiply(0.004).add(0.986).rename('EM');
- **计算原理:**基于植被覆盖度的经验公式(适用于中低纬度地区),EM 是地表向外辐射能量的效率,取值范围接近 [0.986, 0.990]。
- **核心作用:**是后续反演地表温度(LST)的关键参数,不同地表类型(植被、裸地、建筑)的比辐射率存在差异,需通过植被覆盖度校正。
(五)地表温度(LST)
javascript
var thermal = scaledLandsat8.select('ST_B10').rename('thermal');
var lst = thermal.expression(
'(TB / (1 + (0.00115 * (TB / 1.438)) * log(em))) - 273.15',
{
'TB': thermal.select('thermal'), // 亮温(从影像中获取的原始温度值,单位K)
'em': em.max(0.001) // 比辐射率(避免0值导致计算错误)
}
).rename('LST');
- **反演原理:**基于普朗克定律的地表温度反演公式,通过亮温(TB)和比辐射率(EM)校正,将亮温转换为真实的地表温度,并减去 273.15 转换为摄氏度(℃)。
- **生态意义:**地表温度是反映区域热环境的核心指标,与城市热岛效应、生态舒适度密切相关,温度越低通常生态状况越优。
(六)湿度指数(Wetness,缨帽变换湿度分量)
javascript
var wetness = scaledLandsat8.expression(
'0.1511*B2 + 0.1973*B3 + 0.3283*B4 + 0.3407*B5 - 0.7117*B6 - 0.4559*B7',
{
'B2': scaledLandsat8.select('SR_B2'), // 蓝波段
'B3': scaledLandsat8.select('SR_B3'), // 绿波段
'B4': scaledLandsat8.select('SR_B4'), // 红波段
'B5': scaledLandsat8.select('SR_B5'), // 近红外波段
'B6': scaledLandsat8.select('SR_B6'), // 短波红外1
'B7': scaledLandsat8.select('SR_B7') // 短波红外2
}
).rename('Wetness');
- **计算原理:**缨帽变换(Tasseled Cap Transformation)的湿度分量,通过各波段的线性组合,提取地表的湿度信息,系数来自学者针对 Landsat 8 的验证结果。
- **生态意义:**湿度指数值越大,表明地表含水量越高(如湿地、植被覆盖好的区域),生态状况越优;值越小则地表越干燥(如裸地、建筑用地)。
(七)归一化建筑裸土指数(NDBSI,干燥度指数)
javascript
var ndbsi = scaledLandsat8.expression(
'((RED + SWIR1) - (NIR + BLUE)) / ((RED + SWIR1) + (NIR + BLUE))',
{
'RED': scaledLandsat8.select('SR_B4'), // 红波段
'SWIR1': scaledLandsat8.select('SR_B6'),// 短波红外1
'NIR': scaledLandsat8.select('SR_B5'), // 近红外波段
'BLUE': scaledLandsat8.select('SR_B2') // 蓝波段
}
).rename('NDBSI');
- **计算原理:**类似 NDVI 的归一化差异指数,通过红波段、短波红外 1 波段(建筑、裸土强反射)与近红外、蓝波段(建筑、裸土弱反射)的组合,突出建筑和裸土信息。
- **生态意义:**NDBSI 值越大,表明建筑或裸土覆盖比例越高,地表越干燥,生态状况越差;值越小则植被或水体覆盖比例越高,生态状况越优。
五、指数标准化(第 5 步)
(一)标准化的目的
不同生态指数的量纲和取值范围差异较大(如 NDVI:[-1,1],LST:[0,40]℃,Wetness:[-0.5,0.5]),直接进行 PCA 分析会受量纲影响,导致结果偏向取值范围大的指数。通过 Z-Score 标准化将所有指数转换为均值为 0、标准差为 1 的标准化数据,消除量纲干扰,使各指数在 PCA 中权重平等。
(二)标准化函数
javascript
function standardize(band, name) {
var stats = band.reduceRegion({
reducer: ee.Reducer.mean().combine({ // 同时计算波段的均值和标准差
reducer2: ee.Reducer.stdDev(),
sharedInputs: true
}),
geometry: aoi,
scale: 30,
maxPixels: 1e13
});
var mean = ee.Number(stats.get(name + '_mean')); // 提取均值
var std = ee.Number(stats.get(name + '_stdDev')); // 提取标准差
return band.subtract(mean).divide(std).rename(name + '_std'); // Z-Score标准化:(x-mean)/std
}
核心逻辑: Z-Score 标准化公式为标准化值 = (原始值 - 该指数均值) / 该指数标准差,使标准化后的数据集中在 [-3,3] 范围内,且均值为 0、标准差为 1。
(三)标准化指数整合
javascript
var standardizedComponents = ndvi.rename('NDVI')
.addBands(standardize(wetness, 'Wetness')) // 湿度指数标准化
.addBands(standardize(lst, 'LST')) // 地表温度标准化
.addBands(standardize(ndbsi, 'NDBSI')) // 干燥度指数标准化
.clip(aoi);
结果说明: 整合后的standardizedComponents影像包含 4 个波段(NDVI、Wetness_std、LST_std、NDBSI_std),其中后 3 个为标准化后的指数,NDVI 因原始取值范围已相对统一,未进行额外标准化(也可根据需求统一标准化)。
六、主成分分析(PCA,第 6 步)
(一)PCA 的核心作用
PCA 是一种降维算法,通过线性变换将多个相关的变量(此处为 4 个生态指数)转换为少数几个不相关的主成分(PC),其中第一主成分(PC1)包含原始变量的大部分信息(通常 > 60%)。在 RSEI 构建中,PC1 综合了植被、温度、湿度、干燥度四大生态维度的核心信息,可作为生态质量评价的综合指标。
(二)PCA 实现步骤
1. 生成主成分波段名称
javascript
function getNewBandNames(prefix) {
return ee.List.sequence(1, 4).map(function(i) {
return ee.String(prefix).cat(ee.Number(i).int());
});
}
**功能:**生成 4 个主成分的波段名称(pc1、pc2、pc3、pc4),用于后续 PCA 结果的波段命名。
2. 数组转换与协方差矩阵计算
javascript
var arrayImage = standardizedComponents.toArray(); // 将影像转换为数组格式(用于矩阵运算)
var covariance = arrayImage.reduceRegion({
reducer: ee.Reducer.centeredCovariance(), // 计算中心化协方差矩阵(PCA的核心输入)
geometry: aoi,
scale: 30,
maxPixels: 1e9
});
var covarianceArray = ee.Array(covariance.get('array')); // 提取协方差矩阵数组
**协方差矩阵意义:**协方差矩阵中的元素表示两个指数之间的相关性,如 NDVI 与 LST 的协方差为负(植被覆盖越好,温度越低),通过协方差矩阵可反映各指数的相关结构。
3. 特征值与特征向量分解
javascript
var eigens = covarianceArray.eigen(); // 对协方差矩阵进行特征分解
var eigenValues = eigens.slice(1, 0, 1); // 提取特征值(第一列)
var eigenVectors = eigens.slice(1, 1); // 提取特征向量(其余列)
print('特征值(Eigenvalues):', eigenValues); // 在GEE控制台打印特征值
- **特征值意义:**特征值的大小表示对应主成分的方差贡献度,特征值越大,该主成分包含的原始信息越多。通常 PC1 的特征值最大,贡献度最高。
- **特征向量意义:**特征向量决定了主成分的构成的权重,如 PC1 的特征向量中,NDVI 和 Wetness 的权重为正(正向贡献生态质量),LST 和 NDBSI 的权重为负(负向贡献生态质量),与生态评价逻辑一致。
4. PCA 投影与第一主成分提取
javascript
var principalComponents = ee.Image(eigenVectors)
.matrixMultiply(arrayImage.toArray(1)) // 矩阵乘法:将标准化指数投影到特征向量空间
.arrayProject([0]) // 投影到第一维(主成分维度)
.arrayFlatten([getNewBandNames('pc')]);// 将数组展平为影像波段(pc1-pc4)
var principalComponents1 = principalComponents.select('pc1').clamp(-4, 4); // 提取PC1,限制取值范围[-4,4]
核心逻辑: 通过矩阵乘法将标准化后的 4 个指数转换为 4 个主成分,其中 PC1 包含原始数据的最大方差,是生态质量的综合体现。clamp(-4,4)用于剔除极端异常值,保证后续计算的稳定性。
七、RSEI 构建与归一化(第 7 步)
(一)RSEI 的定义
遥感生态指数(RSEI)以 PCA 的第一主成分(PC1)为基础,通过归一化将其转换为 [0,1] 范围的指数,用于量化生态环境质量。RSEI 值越接近 1,生态质量越好;越接近 0,生态质量越差。
(二)归一化计算
javascript
var pc1Stats = principalComponents1.reduceRegion({
reducer: ee.Reducer.minMax(),
geometry: aoi,
scale: 30,
maxPixels: 1e9
});
var pc1Min = ee.Number(pc1Stats.get('pc1_min')); // 提取PC1的最小值
var pc1Max = ee.Number(pc1Stats.get('pc1_max')); // 提取PC1的最大值
var RSEI = principalComponents1
.subtract(pc1Min)
.divide(pc1Max.subtract(pc1Min))
.rename('RSEI'); // 归一化公式:(PC1 - PC1_min)/(PC1_max - PC1_min),转换为[0,1]范围
Map.addLayer(RSEI, {palette: ['red', 'yellow', 'green']}, 'RSEI'); // 在GEE地图中添加RSEI图层
**归一化意义:**将 PC1 的取值范围统一到 [0,1],便于直观理解和比较不同区域的生态质量,同时符合指数评价的常规标准。
八、RSEI 五分类(LSES 等级划分,第 8 步)
(一)分类目的
将连续的 RSEI 值划分为离散的等级,便于快速识别生态质量的空间差异(如 "极低""中等""极高" 区域),为生态保护和规划提供更直观的决策依据。
(二)分类实现
javascript
var thresholds = [0.2, 0.4, 0.6, 0.8]; // 分类阈值(基于生态评价常规标准设定)
var LSES = RSEI.expression(
'(b(0) <= thresholds[0]) ? 1 : ' + // RSEI≤0.2 → 1级(极低)
'(b(0) <= thresholds[1]) ? 2 : ' + // 0.2<RSEI≤0.4 → 2级(较低)
'(b(0) <= thresholds[2]) ? 3 : ' + // 0.4<RSEI≤0.6 → 3级(中等)
'(b(0) <= thresholds[3]) ? 4 : 5', // 0.6<RSEI≤0.8 →4级(较高);RSEI>0.8→5级(极高)
{thresholds: thresholds}
).clip(aoi).rename('LSES_Class');
// 添加分类图层到地图
Map.addLayer(LSES, {
min: 1,
max: 5,
palette: ['#B2182B', '#EF6548', '#FEE08B', '#66BD63', '#006837']
}, 'LSES 五等级分类');
- **阈值设定逻辑:**采用等间隔阈值(0.2 为间隔),是生态指数分类的常用方法,兼顾科学性和直观性;也可根据研究区实际情况(如生态背景、评价目标)调整阈值(如采用自然断点法)。
- **颜色设计:**采用 "红→橙→黄→绿→深绿" 的渐变,符合人类对 "差→好" 的视觉认知习惯,其中:
- 1 级(极低):#B2182B(深红色)
- 2 级(较低):#EF6548(橙红色)
- 3 级(中等):#FEE08B(黄色)
- 4 级(较高):#66BD63(浅绿色)
- 5 级(极高):#006837(深绿色)
九、统计分析与图例添加(第 9-10 步)
(一)RSEI 直方图统计
javascript
var RSEIHistogram = RSEI.reduceRegion({
reducer: ee.Reducer.histogram(255), // 统计255个区间的直方图
geometry: aoi,
scale: 30,
maxPixels: 1e9
});
var histogram = ee.Dictionary(RSEIHistogram.get('RSEI'));
var bucketMeans = ee.List(histogram.get('bucketMeans')); // 区间均值(RSEI值)
var histogramValues = ee.List(histogram.get('histogram')); // 区间频数(像素个数)
// 绘制直方图并在控制台显示
var chart = ui.Chart.array.values({
array: ee.Array(histogramValues),
axis: 0,
xLabels: bucketMeans
})
.setChartType('ColumnChart')
.setOptions({
title: 'RSEI 直方图',
hAxis: {title: 'RSEI'},
vAxis: {title: '频数'},
legend: {position: 'none'}
});
print(chart);
**核心作用:**通过直方图可直观了解研究区 RSEI 的分布特征,如:
- 若频数峰值集中在高 RSEI 区间(0.6-1.0),说明研究区整体生态质量较好;
- 若峰值集中在低 RSEI 区间(0-0.4),说明生态质量较差,需重点关注。
(二)LSES 等级图例添加
javascript
var legend = ui.Panel({style: {position: 'bottom-left', padding: '8px 15px'}});
// 图例标题
legend.add(ui.Label({value: 'LSES 等级图例', style: {fontWeight: 'bold', fontSize: '14px'}}));
// 图例分类与颜色对应
var classNames = ['极低', '较低', '中等', '较高', '极高'];
var classColors = ['#B2182B', '#EF6548', '#FEE08B', '#66BD63', '#006837'];
// 循环添加图例项(颜色块+分类名称)
for (var i = 0; i < classNames.length; i++) {
legend.add(ui.Panel({
widgets: [
ui.Label({style: {backgroundColor: classColors[i], padding: '8px', margin: '0 8px 4px 0'}}),
ui.Label({value: classNames[i]})
],
layout: ui.Panel.Layout.Flow('horizontal')
}));
}
Map.add(legend); // 将图例添加到GEE地图左下角
**核心作用:**为地图中的 LSES 分类图层添加图例,便于用户快速识别不同颜色对应的生态等级,提升结果的可读性。
十、核心技术亮点与关键说明
技术亮点:
- **多维度生态指数融合:**综合植被(NDVI、FV)、热环境(LST)、湿度(Wetness)、地表覆盖(NDBSI)四大维度,全面反映生态质量;
- **数据质量控制严格:**通过 "云量筛选 + 云掩膜" 双重处理,保证影像数据质量,减少噪声干扰;
- **标准化 + PCA 降维:**消除量纲影响,提取核心生态信息,避免信息冗余;
- **结果可视化丰富:**包含 RSEI 连续值图层、LSES 分类图层、直方图统计、图例,便于多视角分析。
关键注意事项:
- 研究区定义:
geometry需提前定义,否则代码会报错; - 影像可用性: 若研究区在指定时间范围内无云量 < 1% 的影像,会导致
landsat8Image为空,需调整时间范围或云量阈值; - **阈值调整:**LSES 分类阈值(0.2、0.4、0.6、0.8)为通用标准,可根据研究区实际生态状况(如干旱区、湿润区)调整;
- 计算资源限制:
maxPixels参数需根据研究区大小调整,避免因像素过多导致 GEE 计算超时。
十一、应用场景与扩展方向
主要应用场景:
- 区域生态环境质量评价(如城市、流域、自然保护区);
- 生态变化监测(如对比不同年份的 RSEI,分析生态质量改善或退化趋势);
- 生态保护红线划定、生态修复效果评估等。
扩展方向:
- **时间序列分析:**增加多年份数据,构建 RSEI 时间序列,分析生态变化趋势及驱动因素;
- **优化指数体系:**根据研究区特点添加特色指数(如水体指数、土壤侵蚀指数);
- **空间格局分析:**结合景观生态学指标(如斑块密度、连通性),分析生态质量的空间格局特征;
- **驱动因素探究:**结合 GDP、人口密度、土地利用类型等数据,分析人类活动对生态质量的影响。
十二、运行结果
研究区遥感生态指数(RSEI)反演结果可视化
生态分级 LSES(五等级)结果可视化
控制台输出的相关信息
遥感生态指数(RSEI)直方图
若觉得代码对您的研究 / 项目有帮助,欢迎点击打赏支持!需要完整代码的朋友,打赏后可在后台私信(复制文章标题发给我),我会尽快发您完整可运行代码,感谢支持!