利用 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 分析的过程中遇到任何问题,或者有其他感兴趣的地理空间分析需求,欢迎在评论区留言交流!