GEE代码实例教程详解:湖泊面积变化分析

2024-07-09 08:12:05 浏览数 (1)

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的其他应用,包括气候变化监测、土地覆盖分类等。

0 人点赞