谷歌地球引擎GEE基于8天合成MODIS数据计算并下载全球每八天NDVI数据

  本文介绍在谷歌地球引擎GEE中,基于8天的MODIS遥感影像数据,计算并下载全球每8NDVI数据,并将每一景数据名称按照YYYYddd格式命名的方法。

  首先,明确一下本文的需求。现在希望在GEE中,利用MOD09A1这个8天合成产品的地表反射率产品,计算全球的逐8NDVI,指定其坐标系与空间分辨率后下载数据到本地;同时,下载的数据名称需要包含其年份与Day of the Year(DOY)。

  本文所用代码如下。

var mod09a1 = ee.ImageCollection("MODIS/061/MOD09A1").select(["sur_refl_b01", "sur_refl_b02"])
.filterDate("2023-01-01", "2025-12-31");
var region = ee.Geometry.Polygon([[[180, 90], [-180, 90], [-180, -90], [180, -90]]], null, false);

var calculateScaledNDVI = function(image) {
  var ndvi = image.normalizedDifference(["sur_refl_b02", "sur_refl_b01"])
    .multiply(10000)
    .round()
    .clamp(-10000, 10000)
    .int16()
    .rename("NDVI");
  return ndvi.copyProperties(image, ["system:time_start"]);
};

var batchExport = function(image) {
  var date = ee.Date(image.get("system:time_start"));
  var year = date.format("YYYY");
  var doy = date.getRelative("day", "year").add(1).format("%03d");
  
  Export.image.toDrive({
    image: calculateScaledNDVI(image),
    description: ee.String("NDVI_").cat(year).cat(doy).getInfo(),
    scale: 5565.97,
    region: region,
    crs: 'EPSG:4326',
    maxPixels: 1e13,
    folder: "NDVI"
  });
};

var imageList = mod09a1.toList(mod09a1.size());
for (var i = 0; i < imageList.size().getInfo(); i++) {
  // print(imageList.get(i));
  var image = ee.Image(imageList.get(i));
  batchExport(image);
}

  代码整体思路也很简单。

  首先,获取MOD09A1数据产品的sur_refl_b01(红光波段)和sur_refl_b02(近红外波段),并定义一个多边形来覆盖全球(经度±180°,纬度±90°)。

  随后,是计算NDVI的函数。在函数中,计算NDVI,并将结果放大10000倍取整,设置数据范围(也就是NDVI-11的范围),同时将数据设置为整型。这是为了减少文件体积,方便数据存储。

  接下来,是导出数据的函数。在函数中,提取每一景数据的年份DOY,并将数据导出至Drive;其中,在导出时设定数据的坐标系与空间分辨率等参数。

  最后,就是一个循环,用以将所选定的MOD09A1数据分别加以处理并导出。

  执行上述代码,即可在GEE右侧Tasks中看到导出任务,如下图所示;点击RUN即可运行任务。

  当导出任务比较多时,可以参考文章Google Earth Engine谷歌地球引擎计算遥感影像在每个8天间隔内的多年平均值(https://fkxxgis.blog.csdn.net/article/details/138588432)中提到的批量点RUN方法来运行上述任务。

  任务执行完毕后,数据会暂存在Drive中;随后手动再将数据下载到本地即可。

  至此,大功告成。

欢迎关注:疯狂学习GIS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

疯狂学习GIS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值