之前只知道怎么Copy代码,但是不会去深究每行代码的含义,今天是周六,正好闲来无事打算瞅瞅这么个事。
evaluate:主要用来异步导出和显示,加快速度,一般没有返回值,结合 for 和 map 一起用,这里的 map 里可以有 print,Map,toDrive 方法
//批量下载函数
function exportImage(image, fileName) {
Export.image.toDrive({
image: image,
description: fileName,
fileNamePrefix: fileName, //文件命名 导出文件的前缀
folder: "wgs_500m_8d", //保存的文件夹
scale: 500, //分辨率
//region: roi, //研究区
maxPixels: 1e13, //最大像元素
crs: "EPSG:4326" //设置投影
});
}
//生成列表,迭代下载
var indexList = wgs_500m_8d.reduceColumns(ee.Reducer.toList(), ["system:index"]).get("list");
//返回的是一个列表,,每个图像都有一个 system:index 属性,它是图像的唯一标识符。
//通常,您可以使用该属性来查找或筛选图像。
//如果您想获取图像的时间信息,可以使用 ["system:time_start"],
//而如果您想获取图像的云量信息,可以使用 ["CLOUDY_PIXEL_PERCENTAGE"]。
print("indexList", indexList);
indexList.evaluate(function(indexs) {
for (var i=0; i<indexs.length; i++) {
var image = wgs_500m_8d.filter(ee.Filter.eq("system:index", indexs[i]))
.first()
.uint8() //设置数据类型
exportImage(image, indexs[i]); //保存图像至Google网盘
}
});