【发布时间】:2017-12-03 02:14:32
【问题描述】:
在Google Earth Engine Developer's Guide 中,建议避免for() 循环。他们推荐使用map()函数作为这个例子:
// to avoid
var clientList = [];
for(var i = 0; i < 8; i++) {
clientList.push(i + 1);
}
print(clientList);
// to use
var serverList = ee.List.sequence(0, 7);
serverList = serverList.map(function(n) {
return ee.Number(n).add(1);
});
print(serverList);
我正在尝试在计算 VCI 之前从每个月/年中选择 MODIS 场景。所以,我采取的方法是双循环:
modis = ee.ImageCollection("MODIS/MYD13A1");
var modis_list = [];
for(var i = 1; i <13; i++) {
for(var j = 2000; j <2018; j++){
modis_list.push(modis.filter(ee.Filter.calendarRange(i, i, 'month'))
.filter(ee.Filter.calendarRange(j, j, 'year')));
}
}
print(modis_list);
有没有办法使用map() 函数复制这样的双循环以达到服务器端方法?
【问题讨论】:
标签: javascript loops dictionary for-loop google-earth-engine