当前位置: 首页 > web >正文

利用 Google Earth Engine 探索江宁区 2010 - 2020 年 EVI 时空变化

引言

增强型植被指数(Enhanced Vegetation Index,EVI)是一种用于量化植被生长状态和覆盖程度的重要指标,它在监测植被动态、生态环境评估以及气候变化研究等领域发挥着关键作用。Google Earth Engine(GEE)作为一个强大的地理空间分析平台,提供了丰富的遥感数据资源和高效的数据处理能力,能够帮助我们轻松地对长时间序列的 EVI 数据进行分析和可视化。本文将详细介绍如何使用 GEE 对南京市江宁区 2010 - 2020 年的 EVI 数据进行处理和分析,以揭示该地区植被在这十年间的时空变化特征。

一、数据与研究区域概述

1.1 研究区域

江宁区位于南京市中南部,是南京重要的经济、文化和生态区域。该区域地形多样,涵盖了山地、平原、水域等多种地貌类型,植被类型丰富,包括森林、农田、城市绿地等。因此,对江宁区的 EVI 进行分析,有助于了解该地区的生态环境变化和植被生长状况。

1.2 数据来源

本文使用的 EVI 数据来自 MODIS(Moderate Resolution Imaging Spectroradiometer)的 MOD13Q1 产品,其数据集 ID 为 MODIS/006/MOD13Q1。该产品具有 250 米的空间分辨率,每 16 天提供一次全球覆盖的影像数据,能够较好地捕捉植被的季节性变化。我们主要关注其中的 EVI 波段。

二、代码实现步骤详解

2.1 定义研究区域

// ==========================================
// 1. 定义江宁区经纬度矩形范围
// ==========================================
var jiangning = ee.Geometry.Rectangle([118.5, 31.7, 119.2, 32.2]);

通过 ee.Geometry.Rectangle 函数,我们使用经纬度坐标定义了江宁区的矩形范围。这个范围将作为后续数据筛选和分析的地理边界。

2.2 加载 MODIS EVI 数据集

// ==========================================
// 2. 加载 MODIS EVI 数据集
// ==========================================
// 用 MOD13Q1 产品,16 天一景,250 米分辨率
var eviCollection = ee.ImageCollection('MODIS/006/MOD13Q1').select('EVI');

使用 ee.ImageCollection 函数加载 MODIS MOD13Q1 数据集,并通过 .select('EVI') 方法只选择 EVI 波段,以减少数据处理量。

2.3 设置分析时间段

// ==========================================
// 3. 设置分析时间段
// ==========================================
var startYear = 2010;
var endYear = 2020;
var years = ee.List.sequence(startYear, endYear);

定义了分析的起始年份和结束年份,并使用 ee.List.sequence 函数生成一个包含这些年份的列表,为后续逐年分析做准备。

2.4 逐年生成每年的年均 EVI 图层

// ==========================================
// 4. 逐年生成每年的年均 EVI 图层
// ==========================================
var eviYearlyImages = years.map(function(year){year = ee.Number(year);var yearlyEvi = eviCollection.filterDate(year.format('%d-01-01'), year.format('%d-12-31')).filterBounds(jiangning).mean().clip(jiangning).set('year', year);return yearlyEvi;
});// 转为影像集合
var eviYearlyCollection = ee.ImageCollection(eviYearlyImages);

使用 .map 函数遍历年份列表,对每年的 EVI 数据进行筛选、计算均值、裁剪,并为每个影像添加年份属性。最后将处理后的影像列表转换为影像集合,方便后续统一处理。

2.5 设置 EVI 可视化参数

// ==========================================
// 5. 设置 EVI 可视化参数
// ==========================================
// 注意 MODIS EVI 原值放大了 1e4,要缩放
var eviVis = {min: 0,max: 8000,   // 因为 EVI 放大了 10000 倍palette: ['white', 'lightblue', 'yellow', 'green', 'darkgreen']
};

由于 MODIS 的 EVI 数据原值被放大了 10000 倍,因此在设置可视化参数时,min 和 max 值需要相应调整。palette 定义了颜色映射方案,从白色到深绿色,直观地表示 EVI 值从低到高的变化。

2.6 动态播放准备

// ==========================================
// 6. 动态播放准备
// ==========================================
Map.centerObject(jiangning, 10);// 每年图层可视化
var eviWithYear = eviYearlyCollection.map(function(image){var year = ee.Number(image.get('year')).format('%d年');return image.visualize(eviVis).set({'label': year});
});// 生成动态图序列
var eviList = eviWithYear.toList(eviWithYear.size());

将地图视图定位到江宁区,并设置缩放级别为 10。对每年的 EVI 影像进行可视化处理,并添加年份标签。最后将可视化后的影像集合转换为列表,为生成动态动画做准备。

2.7 使用 ui.Thumbnail 动态播放

// ==========================================
// 7. 使用 ui.Thumbnail 动态播放
// ==========================================
var thumbnailParams = {dimensions: 600,region: jiangning,framesPerSecond: 2,crs: 'EPSG:4326'
};print('2010 - 2020 江宁区 EVI 变化动画:');
print(ui.Thumbnail({image: ee.ImageCollection(eviList),params: thumbnailParams,style: {height: '400px'}
}));

通过 ui.Thumbnail 函数生成一个动态动画,展示江宁区 2010 - 2020 年 EVI 的逐年变化。设置了动画的分辨率、区域范围、播放速度和坐标参考系统等参数。

2.8 可选:添加 2010 年和 2020 年静态对比图层

// ==========================================
// 8. 可选:添加 2010 年和 2020 年静态对比图层
// ==========================================
var evi2010 = eviYearlyCollection.filter(ee.Filter.eq('year', 2010)).first();
var evi2020 = eviYearlyCollection.filter(ee.Filter.eq('year', 2020)).first();Map.addLayer(evi2010, eviVis, '2010 年 EVI');
Map.addLayer(evi2020, eviVis, '2020 年 EVI');// 绘制江宁区边界
var outline = ee.Image().byte().paint({featureCollection: ee.FeatureCollection(jiangning),color: 1,width: 2
});
Map.addLayer(outline, {palette: 'red'}, '江宁区边界');

提取 2010 年和 2020 年的年均 EVI 影像,并添加到地图上进行静态对比。同时,绘制江宁区的边界,方便直观地观察该区域内 EVI 的变化。

三、结果分析与意义

通过上述代码的运行,我们可以得到江宁区 2010 - 2020 年 EVI 的动态变化动画和 2010 年与 2020 年的静态对比图。从动态动画中,我们可以直观地观察到植被的季节性变化以及长期的趋势,例如某些区域的植被覆盖度是否增加或减少。静态对比图则可以更清晰地比较两个关键年份之间的 EVI 差异,有助于分析该地区在这十年间的生态环境变化,如城市化进程对植被的影响、生态保护措施的效果等。

四、总结与拓展

本文详细介绍了如何使用 Google Earth Engine 对江宁区 2010 - 2020 年的 EVI 数据进行处理和分析,通过动态动画和静态对比图展示了该地区植被的时空变化特征。在实际应用中,我们还可以进一步拓展分析,例如计算 EVI 的变化率、进行趋势分析、结合其他环境数据(如气象数据、地形数据)进行综合研究等。希望本文能够为相关领域的研究人员和爱好者提供有益的参考。

如果你在使用 GEE 进行 EVI 分析的过程中遇到任何问题,或者有其他感兴趣的地理空间分析需求,欢迎在评论区留言交流!

http://www.xdnf.cn/news/2732.html

相关文章:

  • 51c大模型~合集122
  • 【人工智能】边缘智能的突破:Ollama模型压缩技术与DeepSeek部署实践
  • 锁和事务谁在外层
  • 西门子PLC结构化编程_水处理系统水泵多备多投
  • Linux中的shell脚本练习
  • 在线图书管理系统的结构化需求分析过程讲解
  • 【Git】项目多个分支开发、维护与优化处理 -- 还未实测 记录初
  • PCL实时动态加载显示点云功能以及laslib配置
  • 使用Python在excel里创建柱状图
  • 如何搭建spark yarn 模式的集群集群
  • uniapp利用生命周期函数实现后台常驻示例
  • auto(x) decay copy
  • 一键叠图工具
  • 浏览器存储
  • 服务器文件同步工具有哪些?
  • 经典数仓架构深度解析与演进:从离线处理到新型架构对比
  • 实战篇:在QEMU中编写和调试VHost/Virtio驱动
  • 从数据到决策:如何使用Python进行自动驾驶数据分析
  • 利用Python打印有符号十进制数的二进制原码、反码、补码
  • 问题 ERROR: for jobmanager ‘ContainerConfig‘ 原因及解决
  • ComfyUI 学习笔记:安装篇及模型下载
  • 2025-4-27-C++ 学习 数组(2)
  • springboot项目文件上传到服务器本机,返回访问地址
  • 高级数据库对象全面解析:视图、存储过程与触发器
  • Express.js 框架教程:从入门到精通
  • 【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU
  • T-BOX应用 NXP S32K148控芯片搭配 SD NAND(嵌入式SD卡)存储的完美结合
  • 设计模式(状态模式)
  • 【力扣刷题实战】丢失的数字
  • vue代码规范管理