GEE:批量下载数据,按月合成,不同景,全实验区域,一键执行

  • Post author:
  • Post category:其他


有时候我们下载的数据可能因为遥感影像采集时间不同,下载的数据需要拼接。所以在这里给大家一个GEE代码,可以直接下载按月份拼接的遥感影像。比如,将2021年3月的不同景的数据按最大值合成且拼接在一起。此代码可以下载2014年-2020年每个月的数据,且按照矢量边界裁剪。方便了下载数据的繁琐过程。当然也可能有一些莫名的错误,希望大家指正,欢迎讨论。

(此代码没有去云,读者可以根据需要自行加入)




一、批量下载

结果如图所示

在这里插入图片描述

在这里插入图片描述




批量下载代码

版本2.0

源代码:

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

var roi = table;

for(var i=2019;i<=2020;i++){
  for(var j=1;j<=12;j++){
    var data_collection = imageCollection.filter(ee.Filter.calendarRange(j,  j,'month'))
  .filter(ee.Filter.calendarRange(i, i, 'year'))
  .map(function(img) {
    return img.set('year', img.date().get('year'));
  }).filterBounds(roi);

    var HY_collection = data_collection.max().clip(roi)
    print(data_collection,i+"_year_"+j+"_month");
    Map.addLayer(HY_collection,{},i+'-'+j);
    Export.image.toDrive({
      image: HY_collection,
      description: i+'-'+j,
      crs: "EPSG:32649",
      scale: 30,
      region: roi,
      maxPixels: 1e13,
      folder: 'ShanXi'
      
    })
  }
}

Map.addLayer(roi,{},'hengyang Boundary');



版本1.0

源代码:

https://code.earthengine.google.com/0b36b131830d748366bd94c50e65f0a6?noload=true


var HY = table.filterBounds(point).geometry();

for(var i=2014;i<=2020;i++){

  for(var j=1;j<=12;j++){
  
    var data_collection = imageCollection.filterDate(i+'-'+j+'-01',i+'-'+j+'-28').filterBounds(table);
    
    var HY_collection = data_collection.max().clip(HY)
    
    print(data_collection);
    
    Map.addLayer(HY_collection,{},i+'-'+j);
    
    Export.image.toDrive({
    
      image: HY_collection,
      
      description: i+'-'+j,
      
      crs: "EPSG:32649",
      
      scale: 30,
      
      region: table,
      
      maxPixels: 1e13,
      
      folder: 'ShanXi'
      
    })
  }
}

Map.addLayer(table,{},'hengyang Boundary');



二、一键导出

第一步:生成导出任务,显示了运行按钮。

第二步:

按F12进入控制台,然后将这些脚本粘贴到其中,然后按输入。


第三步:所有任务都将自动启动。

function runTaskList() {
 
    var tasklist = document.getElementsByClassName('awaiting-user-config');
    
    for (var i = 0; i < tasklist.length; i++)
    
        tasklist[i].children[2].click();
}
function confirmAll() {

    var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');
    
    for (var i = 0; i < ok.length; i++)
    
        ok[i].click();
}

runTaskList();

confirmAll();



三、一键取消所有上传任务

使用GEE导出运算结果到drive中,如果代码有误需要取消上传任务,下面的代码可以部分实现

一键取消所有上传任务

function runTaskList() {

var tasklist = document.getElementsByClassName('indicator');

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

tasklist[i].click();

}
function confirmAll() {

var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');

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

ok[i].click();

}

runTaskList();

confirmAll();



版权声明:本文为qq_35591253原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。