GEE代码实例教程详解:湖泊面积变化分析
简介
在本篇博客中,我们将通过Google Earth Engine (GEE) 探索湖泊面积随时间的变化。通过分析MODIS数据集中的归一化差异水体指数(NDWI),我们可以识别湖泊区域并监测其面积变化。
背景知识
MODIS数据集
MODIS(Moderate Resolution Imaging Spectroradiometer,中分辨率成像光谱辐射计)数据集是NASA提供的高分辨率遥感数据集,广泛应用于地球表面监测。
NDWI
归一化差异水体指数(NDWI)是一种用于遥感图像中水体检测的指数。它基于水体在不同光谱波段的反射特性差异。
完整代码
代码语言:javascript复制// 定义研究区域的坐标点
var cor = [
[44.82021271860131, 37.08040466447922],
[46.11659943735131, 37.08040466447922],
[46.11659943735131, 38.37506300104177],
[44.82021271860131, 38.37506300104177],
[44.82021271860131, 37.08040466447922]
];
// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);
// 将多边形添加到地图上并设置视图中心
Map.addLayer(roi, {color: 'red'});
Map.centerObject(roi);
// 定义时间范围
var time_start = '2001';
var time_end = '2023';
// 创建MODIS图像集合并筛选数据
var modis = ee.ImageCollection("MODIS/061/MOD09A1")
.filterDate(time_start, time_end);
// 计算NDWI
var ndwi = modis.map(function(img) {
var band = img.select('sur_refl_b01').multiply(0.0001); // 选择MODIS的特定波段
var index = band.normalizedDifference(['sur_refl_b04', 'sur_refl_b02']).rename('ndwi');
return index
.copyProperties(img, img.propertyNames());
});
// 将NDWI图层添加到地图上
Map.addLayer(ndwi.filterDate('2010', '2011').toBands().clip(roi), {min: 0, max: 1, palette: ['blue', 'green', 'yellow']}, 'NDWI 2010-2011');
// 计算2010-2011年的NDWI平均值
var ndwi_average = ndwi.filterDate('2010', '2011').median();
// 打印NDWI平均值的直方图
print(
ui.Chart.image.histogram(ndwi_average, roi, 500)
.setOptions({title: 'NDWI Histogram'})
);
// 计算湖泊面积
var lake_area = ndwi.map(function(img) {
var thr = img.gt(0.1); // 设置NDWI阈值
var mask = thr.updateMask(thr);
var area = mask.multiply(ee.Image.pixelArea().divide(1e6)); // 计算像素面积
return area
.copyProperties(img, img.propertyNames());
});
// 打印湖泊面积随时间变化的图表
print(
ui.Chart.image.series(lake_area, roi, ee.Reducer.sum(), 500, 'system:time_start')
.setOptions({title: 'Lake Area Change Over Time'})
);
代码详解
1. 定义研究区域
我们定义了一个多边形区域作为研究对象,使用ee.Geometry.Polygon
创建,并将其添加到地图上。
2. 创建MODIS图像集合
我们使用ee.ImageCollection
获取MODIS数据,并根据时间范围筛选图像。
3. 计算NDWI
对MODIS图像集合中的每张图像,我们选择特定的波段并计算NDWI。然后,我们将结果复制到原始图像的属性中。
4. 可视化NDWI
我们选择2010-2011年的NDWI图像,并将其添加到地图上,使用颜色映射来区分不同的NDWI值。
5. 计算NDWI平均值
我们计算2010-2011年NDWI的中位数,并打印其直方图,以了解NDWI值的分布。
6. 湖泊面积计算
我们设置NDWI阈值为0.1,以此识别水体。然后,我们计算每个像素的水体面积,并复制图像属性。
7. 湖泊面积变化分析
我们使用ui.Chart.image.series
打印湖泊面积随时间变化的图表,这有助于我们了解湖泊面积如何随时间变化。
结论
通过本教程,我们学习了如何使用GEE分析湖泊面积随时间的变化。我们使用了MODIS数据集,并计算了NDWI来识别水体。通过分析NDWI的直方图和湖泊面积的时间序列,我们可以监测湖泊面积的变化趋势。
进一步探索
GEE提供了丰富的工具和方法来进行地理空间数据分析。在后续的教程中,我们将继续探索GEE的其他应用,包括气候变化监测、土地覆盖分类等。