当前位置:   article > 正文

Google earth Engine批量导出影像集合collection_google earth engine输出一整张影像

google earth engine输出一整张影像

0.背景

不少朋友问我,GEE该如何批量导出一个数据集。

因此,我把自己常用的导出collection方法写出来,可能有人用得到。

1.数据筛选

首先,在GEE中导入自己需要的矢量边界ROI,这个ROI可以上传shp或者自己在gee中勾画。随后选择卫星数据类型、时间。
本文选择了2021年之后,覆盖了研究区域的所有Landsat8影像。

Map.addLayer(ROI)
Map.centerObject(ROI,9)
var roi_collection =landsat.filter(ee.Filter.date('2021-01-01','2021-12-31'))
                            .filter(ee.Filter.bounds(ROI))
  • 1
  • 2
  • 3
  • 4

2.引入批量导出函数

var batch = require('users/fitoprincipe/geetools:batch')
  • 1

这个函数来自于github的一名大神,他针对gee批量导出做了一个整理,并且做成了API,我们可以直接调用。

该批量导出的具体代码如下所示:

Download.ImageCollection.toDrive = function(collection, folder, options) {
    
    var defaults = {
      scale: 1000,
      maxPixels: 1e13,
      type: 'float',
      region: null,
      name: '{id}',
      crs: null,
      dateFormat: 'yyyy-MM-dd',
      async: false
    }
    var opt = tools.get_options(defaults, options)
    var colList = collection.toList(collection.size());
    
    var wrap = function(n, img) {
      var geom = opt.region || img.geometry()
      var region = getRegion(geom)
      var imtype = IMAGE_TYPES(img, opt.type)
      var description = helpers.string.formatTask(n)
      var params = {
        image: imtype,
        description: description,
        folder: folder,
        fileNamePrefix: n,
        region: region,
        scale: opt.scale,
        maxPixels: opt.maxPixels
      }
      if (opt.crs) {
        params.crs = opt.crs
      }
      Export.image.toDrive(params)
    }
    
    var i = 0
    while (i >= 0) {
      try {
        var img = ee.Image(colList.get(i));
        var n = tools.image.makeName(img, opt.name, opt.dateFormat).getInfo()
        wrap(n, img)
        i++
      } catch (err) {
        var msg = err.message
        if (msg.slice(0, 36) === 'List.get: List index must be between') {
          break
        } else {
          print(msg)
          break
        }
      }
    }
  }
  • 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

3.设置导出函数

主要是设置影像分辨率以及导出区域。

//导出影像
batch.Download.ImageCollection.toDrive( roi_collection, 'Landsat_image', {
  scale: 30,
  region: ROI
})
  • 1
  • 2
  • 3
  • 4
  • 5

4.下载

点击Run,直接下载影像。

需要注意,下载的影像是覆盖ROI区域的所有原始影像,并没有按研究区进行裁剪。

5.测试链接

https://code.earthengine.google.com/3c462340ce5d3e2ec1087401c83d55fd?noload=true

可以前往“地信遥感数据汇”(https://www.gisrsdata.com/)获取更多数据。

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

闽ICP备14008679号