GEE学习笔记 八十:批量下载影像(影像集合)

44 篇文章 315 订阅
10 篇文章 7 订阅

GEE导出这个我之前写过相关内容,下面链接是之前写的内容。

最近问如何批量导出集合的小伙伴非常多,一个一个回复太麻烦,我这里直接给一段例子代码吧:

var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_SR");

var roi = /* color: #d63000 */ee.Geometry.Polygon(

        [[[115.64960937499995, 39.112756306811285],

          [116.28681640624995, 39.163883889810315],

          [116.21540527343745, 39.58850167846649],

          [115.70454101562495, 39.6054326422912]]]);


Map.centerObject(roi, 8);


function rmL8Cloud(image) {

  var cloudShadowBitMask = (1 << 3);

  var cloudsBitMask = (1 << 5);

  var qa = image.select('pixel_qa');

  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)

                 .and(qa.bitwiseAnd(cloudsBitMask).eq(0));

  return image.updateMask(mask);

}


var l8Imgs = l8.filterBounds(roi)

               .filterDate("2018-1-1", "2018-3-1")

               .map(rmL8Cloud);

print("l8Imgs", l8Imgs);

Map.addLayer(l8Imgs, {min:0, max:3000, bands:["B4","B3","B2"]}, "l8Imgs");

Map.addLayer(roi, {color: "red"}, "roi");



//影像集合导出方法

function exportImageCollection(imgCol) {

  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])

                        .get("list");

  indexList.evaluate(function(indexs) {

    for (var i=0; i<indexs.length; i++) {

      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();

      image = image.toInt16();

      Export.image.toDrive({

        image: image.clip(roi),

        description: indexs[i],

        fileNamePrefix: indexs[i],

        region: roi,

        scale: 30,

        crs: "EPSG:4326",

        maxPixels: 1e13

      });

    }

  });

}



exportImageCollection(l8Imgs);

 

代码分析:

我这里说几个要注意的地方吧

(1)这里使用的是异步导出数据方式 evaluate() 方法

(2)导出代码中有一句话

image = image.toInt16();

这句话的作用是将image影像的波段都强制转为Int16类型数据,这么做的原因是使用toDrive()方法影像的波段类型必须是一致的,这点和导出到Asset不太一样

(3)region参数必须要设置,同时需要注意的是它的类型是geometry,不是featureCollection。如果我们用的是矢量集合,那么一般做法是:

featureCollection.geometry().bounds()作为region的参数

(4)maxPixels必须设置,因为我们在导出大范围的影像时候会出现默认参数过小导致导出失败(默认参数是1e8)

(5)crs推荐设置为EPSG:4326

 

运行结果:

导出界面

导出到drive后

 


大家如果有问题需要交流或者有项目需要合作,可以微信联系我,加微信好友请留言加上“GEE”。

知乎专栏:https://zhuanlan.zhihu.com/c_123993183

CSDN:https://blog.csdn.net/shi_weihappy

  • 11
    点赞
  • 109
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值