zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Google Earth Engine(GEE)——估算2000-2020年森林覆盖度的案例分析

Google案例 分析 2020 Engine Earth GEE 森林
2023-09-11 14:15:11 时间

第一步:我们导入一个关于树冠覆盖的数据集,并使用 10% 的树覆盖阈值计算森林

// 输入国界
var countries = ee.FeatureCollection("USDOS/LSIB_SIMPLE/2017");
// 选择哥伦比亚特区
var kh = countries.filter(ee.Filter.eq("country_na","Cambodia")).geometry();
 
// 输入树冠覆盖率数据
var tcc2000 = ee.Image("projects/servir-mekong/UMD/tree_canopy/tcc_2000").clip(kh);
var tcc2020 = ee.Image("projects/servir-mekong/UMD/tree_canopy/tcc_2020").clip(kh);
 
// 输入大于10%的
var forest2000  = tcc2000.gt(10);
var forest2020  = tcc2020.gt(10);
 
// 加载在地图上
Map.addLayer(tcc2000,{min:0,max:100,palette:"white,green,darkgreen"},"tree canopy cover 2000");
Map.addLayer(tcc2020,{min:0,max:100,palette:"white,green,darkgreen"},"tree canopy cover 2020");
 
// 在地图上添加森林层
Map.addLayer(forest2000,{min:0,max:1,palette:"white,darkgreen"},"Forest 2000");
Map.addLayer(forest2020,{min:0,max:1,palette:"white,darkgreen"},"Forest 2020");

第二步: 我们现在计算 2020 年到 2000 年之间的森林损失。在现有代码中复制以下几行

var forestLoss = forest2000.and(forest2020.eq(0))
Map.addLayer(forestLoss,{min:0,max:1,palette:"white,red"},"forest loss");

第三步:我们计算 2000 年的像素面积。将下面的行复制到您现有的代码中 

var areaImage = forest2000.rename("forest").multiply(ee.Image.pixelArea());
 
// 计算2000年的森林量
var stats = areaImage.reduceRegion({
  reducer: ee.Reducer.sum(),
  geometry: kh,
  scale: 30,
  maxPixels: 1e9
});
 
 
print('pixel area in 2000 ', stats.get('forest'), 'square meters');

 第四步:在 2020 年做同样的事情

var areaImage = forest2020.rename("forest").multiply(ee.Image.pixelArea());
 
// 计算2020年的森林量
var stats = areaImage.reduceRegion({
  reducer: ee.Reducer.sum(),
  geometry: kh,
  scale: 30,
  maxPixels: 1e9
});
 
 
print('pixel area in 2020 ', stats.get('forest'), 'square meters');

 第五步:计算 2000 年到 2020 年期间的森林损失

var areaImage = forestLoss.rename("loss").multiply(ee.Image.pixelArea());
// 计算市区的面积
var stats = areaImage.reduceRegion({
  reducer: ee.Reducer.sum(),
  geometry: kh,
  scale: 30,
  maxPixels: 1e9
});
 
print('pixels representing loss: ', stats.get('loss'), 'square meters');

第六步:现在我们计算每个省的森林损失。将下面的代码复制到您现有的脚本中并点击运行

// 定义感兴趣的区域
var cambodia = ee.FeatureCollection("projects/servir-mekong/admin/KHM_adm1")
 
var chart =
    ui.Chart.image.byRegion
        ({
          image:areaImage.divide(10000),
          regions: cambodia,
          reducer: ee.Reducer.sum(),
          scale: 100,
          xProperty: 'NAME_1'
        })
        .setSeriesNames(['loss area'])
        .setChartType('ColumnChart')
        .setOptions({
          title: 'forest loss',
          hAxis: {title: 'Date', titleTextStyle: {italic: false, bold: true}},
          vAxis: {
            title: 'area loss (ha)',
            titleTextStyle: {italic: false, bold: true}
          },
          lineWidth: 5,
          colors: ['red'],
          curveType: 'function'
        });
          
print(chart);