当前位置:   article > 正文

GEE代码实例教程详解:年度和月度土地覆盖变化分析_google earth engine fao gaul

google earth engine fao gaul

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 对土地覆盖变化进行年度和月度的分析。通过Google的Dynamic World数据集,我们可以识别2023年至2024年间土地覆盖的类型和变化。

背景知识

Google Dynamic World数据集

Google/DYNAMICWORLD/V1数据集提供了高分辨率的土地覆盖数据,这些数据可以用来分析土地覆盖类型和变化。

土地覆盖变化分析

土地覆盖变化分析是环境监测和土地管理的重要组成部分,有助于了解地表覆盖和利用模式的转变。

完整代码

// 定义研究点坐标
var cor = [49.349581955929196, 37.390543498162955];
var loc = ee.Geometry.Point(cor);

// 加载FAO GAUL数据集并筛选研究区域
var roi = ee.FeatureCollection("FAO/GAUL/2015/level1").filterBounds(loc);
Map.centerObject(roi);
Map.addLayer(roi);

// 加载Google Dynamic World土地覆盖数据集
var map = ee.ImageCollection("GOOGLE/DYNAMICWORLD/V1")
  .filterDate('2023', '2024')
  .filter(ee.Filter.calendarRange(1, 12, 'month'))
  .filterBounds(roi);

// 计算年度土地覆盖
var annual_map = map.select('label').mode();
var VIS_PALETTE = [
  '419bdf', '397d49', '88b053', '7a87c6', 'e49635', 'dfc35a', 'c4281b',
  'a59b8f', 'b39fe1'
];

Map.addLayer(annual_map.clip(roi), {min: 0, max: 8, palette: VIS_PALETTE}, 'map2013', false);

// 导出年度土地覆盖图像
Export.image.toDrive({
  image: annual_map.clip(roi),
  description: 'annual_map',
  scale: 30,
  maxPixels: 1e13,
  region: roi,
  crs: annual_map.getInfo().crs
});

// 定义时间序列集合函数
function temporal_collection(collection, start, count, interval, unit) {
  var seq = ee.List.sequence(0, ee.Number(count).subtract(1));
  var origin_date = ee.Date(start);
  return ee.ImageCollection(seq.map(function (i) {
    var start_date = origin_date.advance(ee.Number(interval).multiply(i), unit);
    var end_date = origin_date.advance(ee.Number(interval).multiply(ee.Number(i).add(1)), unit);
    return collection.filterDate(start_date, end_date).mode()
      .set('system:time_start', start_date.millis())
      .set('system:time_end', end_date.millis());
  }));
}

// 创建月度土地覆盖集合
var monthly = temporal_collection(map.select('label'), '2023', 12, 1, 'month');

Map.addLayer(monthly.toBands().clip(roi), [], 'monthly_map', false);

// 更新月度土地覆盖图像的波段名称
var monthly_updated = monthly.map(function (img) {
  var date = img.date().format('YYYY-MM-dd');
  return img.rename(date);
});

print(monthly_updated.toBands());

// 导出月度土地覆盖图像
Export.image.toDrive({
  image: monthly_updated.toBands().clip(roi),
  description: 'monthly_lc',
  scale: 30,
  maxPixels: 1e13,
  region: roi,
  crs: monthly_updated.toBands().getInfo().crs
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

代码详解

1. 定义研究点

创建一个点对象loc,用于确定研究区域。

2. 加载FAO GAUL数据集

加载并筛选与研究点相交的区域roi

3. 加载Google Dynamic World土地覆盖数据集

加载指定时间范围内的Google Dynamic World土地覆盖数据。

4. 计算年度土地覆盖

使用mode方法计算2023年的土地覆盖类型。

5. 导出年度土地覆盖图像

将年度土地覆盖图像导出到Google Drive。

6. 定义时间序列集合函数

定义temporal_collection函数,用于生成时间序列的土地覆盖图像集合。

7. 创建月度土地覆盖集合

使用temporal_collection函数创建2023年的月度土地覆盖集合。

8. 更新月度土地覆盖图像的波段名称

将每个月份的图像波段重命名,以反映对应的日期。

9. 导出月度土地覆盖图像

将月度土地覆盖图像导出到Google Drive。

结论

本教程展示了如何使用GEE对Google Dynamic World数据集进行年度和月度土地覆盖变化分析。通过这些分析,我们可以了解土地覆盖类型的分布和随时间的变化。

进一步探索

GEE提供了多种工具和方法来进行土地覆盖变化分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/936314
推荐阅读
相关标签
  

闽ICP备14008679号