资讯动态

基于 GEE 的 MODIS 温度植被干旱指数(TVDI)计算与可视化分析

发布时间:2026/8/24 20:47:17 来源:尧图企业网站定制
目录一、TVDI 原理与算法基础一NDVI-LST 特征空间理论二TVDI 计算公式二、数据源与预处理一数据产品介绍二研究区与时间范围定义三NDVI 数据加载与反归一化四LST 数据加载与单位转换五生成均值合成影像三、干湿边拟合一NDVI 区间分箱与极值提取二线性拟合获取干湿边方程四、TVDI 计算与干旱等级划分一逐像元 TVDI 计算二干旱等级划分五、参数调优与实操注意事项六、总结七、运行结果若觉得代码对您的研究 / 项目有帮助欢迎点击打赏支持需要完整代码的朋友打赏后可在后台私信复制文章标题发给我我会尽快发您完整可运行代码感谢支持温度植被干旱指数Temperature Vegetation Dryness Index, TVDI是 Sandholt 等2002基于 NDVI-LST 特征空间提出的一种遥感干旱监测指标。该指数同时兼顾植被覆盖度与地表温度两方面信息能够有效指示区域土壤水分状况被广泛应用于农业干旱监测、生态环境评估等领域。本文基于 Google Earth EngineGEE云平台以 MODIS 的 MOD13A2NDVI和 MOD11A2LST产品为数据源完整演示了 TVDI 的计算流程包括数据预处理与反归一化、NDVI 区间分箱与干湿边极值提取、线性拟合获取干湿边方程、逐像元 TVDI 计算、干旱等级划分以及特征空间散点图与空间分布图的可视化输出。GEE 平台免去了遥感数据下载、预处理和本地计算的繁琐流程可在浏览器端完成从数据获取到成果输出的全链条分析尤其适合大范围、多时相的干旱监测研究。一、TVDI 原理与算法基础一NDVI-LST 特征空间理论大量研究表明当研究区的植被覆盖度从裸土到完全覆盖、土壤水分由干燥到湿润时遥感反演的地表温度LST与归一化植被指数NDVI存在负相关关系像元散点图大致呈三角形或梯形分布。在这一特征空间中干边Dry Edge连接各 NDVI 区间内 LST 最大值的边界代表极端干旱条件下土壤水分接近于凋萎含水量地表温度的上限湿边Wet Edge连接各 NDVI 区间内 LST 最小值的边界代表充分湿润条件下土壤水分接近于田间持水量地表温度的下限。二TVDI 计算公式TVDI 的定义式为其中——任意像元的地表温度℃​ ——同一 NDVI 值对应的最低地表温度即湿边温度​ ——同一 NDVI 值对应的最高地表温度即干边温度。干边与湿边通常采用线性函数拟合干边湿边代入 TVDI 公式可得TVDI 取值范围为 [0, 1]值越接近 1 表示越干旱越接近 0 表示越湿润。二、数据源与预处理一数据产品介绍本方案采用以下 MODIS 三级网格产品数据产品介绍产品波段时间分辨率空间分辨率说明MOD13A2NDVI16天1 km植被指数产品原始值为缩放整数×0.0001MOD11A2LST_Day_1km8天1 km地表温度产品需辐射定标与单位转换二研究区与时间范围定义// 定义研究区与时间范围 var roi table; var startDate 2024-05-01; var endDate 2024-07-30;注意事项table为 GEE 中预先导入的矢量资产如 Shapefile 或 GeoJSON需在 Assets 中上传并命名为table。若使用其他名称需同步修改变量名。三NDVI 数据加载与反归一化MODIS MOD13A2 产品的 NDVI 波段存储为 16 位整型有效值范围为 -2000 到 10000需乘以缩放系数 0.0001 还原为真实 NDVI 值-0.2 ~ 1.0。var ndviCol ee.ImageCollection(MODIS/061/MOD13A2) .filterDate(startDate, endDate) .select(NDVI) .map(function(img) { return img.divide(10000).clip(roi); });.divide(10000)完成反归一化.clip(roi)将影像裁剪至研究区边界减少后续计算量。四LST 数据加载与单位转换MOD11A2 的 LST 波段存储为缩放整型真实值 原始值 × 0.02单位为开尔文K。需转换为摄氏度℃ K - 273.15。var lstCol ee.ImageCollection(MODIS/061/MOD11A2) .filterDate(startDate, endDate) .select(LST_Day_1km) .map(function(img) { return img.multiply(0.02).subtract(273.15).clip(roi); });五生成均值合成影像var NDVI ndviCol.mean(); var LST lstCol.mean();对时间范围内的所有影像逐像元取平均得到研究期内的 NDVI 和 LST 均值影像作为后续 TVDI 计算的基础输入。三、干湿边拟合一NDVI 区间分箱与极值提取干湿边拟合的关键在于将 NDVI 划分为若干等间距区间在每个区间内分别统计 LST 的最大值和最小值。var ndviMin 0.2; var ndviMax 0.85; var step 0.02; var bins ee.List.sequence(ndviMin, ndviMax, step); var edges bins.map(function(bin) { var ndviLow ee.Number(bin); var ndviHigh ndviLow.add(step); var mask NDVI.gte(ndviLow).and(NDVI.lt(ndviHigh)); var lstMasked LST.updateMask(mask); var maxVal lstMasked.reduceRegion({ reducer: ee.Reducer.max(), geometry: roi, scale: 1000, maxPixels: 1e13 }).get(LST_Day_1km); var minVal lstMasked.reduceRegion({ reducer: ee.Reducer.min(), geometry: roi, scale: 1000, maxPixels: 1e13 }).get(LST_Day_1km); return ee.Feature(null, { ndvi: ndviLow, emax: maxVal, emin: minVal }); }); var edgeCol ee.FeatureCollection(edges);ndviMin 0.2、ndviMax 0.85剔除裸土NDVI 过低和密集植被NDVI 过高的极端区间保证拟合稳定性step 0.02区间步长步长越小分箱越细但可能因像元过少导致极值不稳定scale 1000与 MODIS 产品空间分辨率1 km一致maxPixels 1e13放宽像素数限制避免大区域计算时报错。二线性拟合获取干湿边方程var dryFit edgeCol.reduceColumns({ reducer: ee.Reducer.linearFit(), selectors: [ndvi, emax] }); print( 干边拟合结果 , dryFit); var wetFit edgeCol.reduceColumns({ reducer: ee.Reducer.linearFit(), selectors: [ndvi, emin] }); print( 湿边拟合结果 , wetFit);ee.Reducer.linearFit()返回scale斜率和offset截距两个参数var a ee.Number(dryFit.get(scale)); // 干边斜率 var b ee.Number(dryFit.get(offset)); // 干边截距 var c ee.Number(wetFit.get(scale)); // 湿边斜率 var d ee.Number(wetFit.get(offset)); // 湿边截距注意事项若拟合结果中scale或offset为null通常是因为edgeCol中有效数据过少。可检查 NDVI 区间范围是否与研究区实际 NDVI 分布匹配或适当调整ndviMin/ndviMax。四、TVDI 计算与干旱等级划分一逐像元 TVDI 计算基于拟合得到的干湿边方程逐像元计算 TVDIvar LSTmax NDVI.multiply(a).add(b); var LSTmin NDVI.multiply(c).add(d); var TVDI LST.subtract(LSTmin) .divide(LSTmax.subtract(LSTmin)) .clamp(0, 1) .rename(TVDI);.clamp(0, 1)将所有计算结果强制限制在 [0, 1] 区间消除因拟合误差或异常值导致的越界情况。二干旱等级划分参考相关研究中的 TVDI 分级标准将 TVDI 划分为 5 个等级var dryGrade ee.Image(0) .where(TVDI.lt(0.3), 1) // 1级湿润 .where(TVDI.gte(0.3).and(TVDI.lt(0.5)), 2) // 2级正常 .where(TVDI.gte(0.5).and(TVDI.lt(0.7)), 3) // 3级轻度干旱 .where(TVDI.gte(0.7).and(TVDI.lt(0.9)), 4) // 4级中度干旱 .where(TVDI.gte(0.9), 5) // 5级重度干旱 .clip(roi) .rename(dry_grade);将 TVDI 划分为 5 个等级等级TVDI 范围干旱程度色标1[0, 0.3)湿润#0066ff2[0.3, 0.5)正常#66ccff3[0.5, 0.7)轻度干旱#ffff994[0.7, 0.9)中度干旱#ff99335[0.9, 1.0]重度干旱#cc0000五、参数调优与实操注意事项NDVI 有效区间选择NDVI 区间的起止范围ndviMin、ndviMax直接影响干湿边拟合质量。一般建议下限0.15~0.2剔除裸土、水体等非植被像元上限0.8~0.9剔除饱和植被区域NDVI 过高时 LST 变化幅度小极值提取不稳定。若研究区以农田为主可适当收窄区间如 0.2~0.8若为森林覆盖区可适当上调上限。区间步长的权衡步长过小如 0.01分箱过细部分区间像元数不足极值易受异常值干扰步长过大如 0.05分箱过粗损失特征空间细节拟合精度下降。推荐从 0.02 开始尝试根据散点图分布酌情调整。maxPixels 参数设置reduceRegion()默认maxPixels 1e7对于大区域研究区可能不足。设置为1e13可避免因像素数超限而报错但需注意计算效率。若仍报错可尝试增大tileScale如设为 4 或 16启用bestEffort: true以降低采样分辨率。数据时相一致性NDVIMOD13A216天与 LSTMOD11A28天的时间分辨率不同。本方案采用均值合成适用于月尺度或季节尺度的干旱评估。若需更精细的时间分辨率可考虑使用 MOD09GA MOD11A1 日尺度数据或采用时空融合方法生成逐日 TVDI。六、总结本文系统介绍了基于 Google Earth Engine 平台、利用 MODIS 数据计算温度植被干旱指数TVDI的完整技术流程核心要点如下数据预处理MOD13A2 NDVI 需除以 10000 反归一化MOD11A2 LST 需乘以 0.02 并减去 273.15 转换为摄氏度。干湿边拟合通过 NDVI 区间分箱提取 LST 极值再经线性回归得到干湿边方程是 TVDI 计算中最关键的步骤。TVDI 计算基于干湿边方程逐像元计算 TVDI取值范围 [0, 1]值越大越干旱。干旱分级与可视化将 TVDI 划分为 5 个等级结合空间分布图和特征空间散点图实现干旱状况的直观展示与定量分析。技术优势GEE 平台实现了“零下载、零安装”的云端遥感分析大幅降低了 TVDI 计算的技术门槛适合大范围、多时相的干旱监测研究。适用场景农业干旱监测、区域生态环境评估、土壤水分空间分布反演、气候变化对植被影响研究等。研究人员可根据实际需求调整时间范围、空间尺度和干旱分级阈值将本方案灵活迁移至不同区域和不同时相的分析任务中。七、运行结果归一化植被指数NDVI地表温度LST温度植被干旱指数Temperature Vegetation Dryness Index, TVDI干旱等级划分控制台输出的计算结果统计信息NDVI-LST特征空间与干湿边拟合若觉得代码对您的研究 / 项目有帮助欢迎点击打赏支持需要完整代码的朋友打赏后可在后台私信复制文章标题发给我我会尽快发您完整可运行代码感谢支持

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价