**

GEE如何批量点run导出不卡死的解决方案

**
觉得有用的可以给个赞吗?您的支持是我创作的最大动力!

方案一:js转python

将js的gee代码全部改为python,然后python运行,在这里我附上GEE JS代码转为Python的指南:https://developers.google.com/earth-engine/guides/python_install

此外python还需要:
1.导入包

import ee
ee.Authenticate()
ee.Initialize()

2.导出影像

def exportImage(image, region, filename, year):
    task_config = {'folder': 'images_doys_' + str(year),'scale': 30,'region': region, 'maxPixels': 1e13,'crs': 'EPSG:4326'}
    task = ee.batch.Export.image(image.toInt16(), filename, task_config)
    task.start()

3.其余部分直接根据指南依据语法差异转过来就行

方案二:js代码批量点run导出

js导出这块,有好几个大佬已经给出了js的导出代码,但是如果导出太多,容易卡死,解决方案:导出指定个数(比如100)后,睡眠一段时间,继续点击导出即可,这里我设置的个数为100个,时间间隔为1分钟也就是60000ms,可根据需求自己设定。

var timer=null
function runTaskListAndConfirm() {
    var tasklist = document.getElementsByClassName('awaiting-user-config');
    if(tasklist.length <100){
    for (var i = 0; i < tasklist.length; i++)
        tasklist[i].children[2].click();
    var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');
    for (var i = 0; i < ok.length; i++)
        ok[i].click(); 
    clearInterval(timer)
    }
    else
    {
    for (var i = 0; i < 100; i++)
        tasklist[i].children[2].click();
    var ok = document.getElementsByClassName('goog-buttonset-default goog-buttonset-action');
    for (var i = 0; i < ok.length; i++)
        ok[i].click(); 
    }
    
    
}
timer = setInterval(runTaskListAndConfirm,60000) 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐