GEE12:按年和月合成数据,分别获取年总和月均GPP遥感数据

1.前提

由于某些数据的时间分辨率为8天或者16天,然而我们需要了解他的年总值或者均值,因此需要将整年的数据进行计算,为了方便起见,在GEE平台上进行操作,可以避免下载大量的数据到本地。

2. 按年合成数据(总值):以MOD17A2H.006数据为例

在这里插入图片描述

数据描述:
MOD17A2H.006: Terra Gross Primary Productivity 8-Day Global 500M 500m:
The MOD17A2H V6 Gross Primary Productivity (GPP) product is a cumulative 8-day composite with a 500m resolution. The product is based on the radiation-use efficiency concept and can be potentially used as inputs to data models to calculate terrestrial energy, carbon, water cycle processes, and biogeochemistry of vegetation.

数据波段:
在这里插入图片描述
该数据为8天合成数据

GEE code:

// 设置感兴趣区域
var geometry = table.geometry();
Map.centerObject(geometry, 5);
Map.addLayer(geometry, {color: "black"}, "ROI")

// 加载 MODIS/006/MOD17A2H 数据集
var dataset = ee.ImageCollection("MODIS/006/MOD17A2H").select('Gpp');

var gppVis = {
  min: 0,
  max: 600,
  palette: ['bbe029', '0a9501', '074b03'],
};
Map.addLayer(dataset.filterBounds(geometry), gppVis, 'GPP');


// 定义起始年份和结束年份
var startYear = 2001;
var endYear = 2004;

// 定义一个函数用于按年合成并导出影像
var exportYearlyComposite = function(year) {
  year = ee.Number(year);

  // 过滤特定年份的影像集合
  var yearCollection = dataset.filterBounds(geometry)
                       .filter(ee.Filter.calendarRange(year, year, 'year'));

  // 合成影像
  var yearImage = yearCollection.sum().multiply(0.1);

  // 设置导出参数
  var exportParams = {
    image: yearImage.toFloat(),
    description: 'modis_gpp_yearly_' + year.getInfo(),
    folder: 'Gpp',
    region: geometry,
    scale: 500,
    crs: "EPSG:4326",
    maxPixels: 1e13,
  };

  // 导出影像
  Export.image.toDrive(exportParams);
  print(exportParams)
  print(year)
  print(yearCollection)
};

// 遍历每个年份并导出影像
for (var year = startYear; year <= endYear; year++) {
  exportYearlyComposite(year);
}

控制台:

在这里插入图片描述

主要函数介绍:
ee.Filter.calendarRange(year, year, ‘year’):
在这里插入图片描述

3. 按月合成数据(均值):以MOD17A2H.006数据为例

代码解释: 合成指定月份之间的遥感数据,并求得统计数据(最大值、最小值、总值和平均值等)

合成每年7-8月份遥感数据,获得生长季平均值数据:

// 设置感兴趣区域
var geometry = table.geometry();
Map.centerObject(geometry, 5);
Map.addLayer(geometry, {color: "black"}, "ROI")

// 加载 MODIS/006/MOD17A2H 数据集
var dataset = ee.ImageCollection("MODIS/006/MOD17A2H").select('Gpp');

var gppVis = {
  min: 0,
  max: 600,
  palette: ['bbe029', '0a9501', '074b03'],
};
//Map.addLayer(dataset.filterBounds(geometry), gppVis, 'GPP');

// 定义起始年份和结束年份
var startYear = 2020;
var endYear = 2022;

// 定义一个函数用于按年合成并导出影像
var exportYearlyComposite = function(year) {
  year = ee.Number(year);

  // 过滤特定年份的影像集合
  var yearCollection = dataset.filterBounds(geometry)
                       .filter(ee.Filter.calendarRange(year, year, 'year'))
                       .filter(ee.Filter.calendarRange(7, 8, 'month'));

  // 计算7月到8月的平均值影像
  var compositeImage = yearCollection.mean().multiply(0.1);

  // 设置导出参数
  var exportParams = {
    image: compositeImage.toFloat(),
    description: 'modis_gpp_yearly_' + year.getInfo(),
    folder: 'Gpp',
    region: geometry,
    scale: 500,
    crs: "EPSG:4326",
    maxPixels: 1e13,
  };

  // 导出影像
  Export.image.toDrive(exportParams);
  print(exportParams)
  print(year)
  print(yearCollection)
};

// 遍历每个年份并导出影像
for (var year = startYear; year <= endYear; year++) {
  exportYearlyComposite(year);
}

控制台:

在这里插入图片描述

上述代码中,我在exportYearlyComposite函数中添加了一个额外的过滤器,用于过滤7月到8月的影像集合:.filter(ee.Filter.calendarRange(7, 8, ‘month’))。然后,我使用yearCollection.mean()来计算7月到8月的平均值影像,并将其命名为compositeImage。最后,将compositeImage导出到Google Drive。

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jackson的生态模型

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值