我需要在一个年度集合中应用一个函数,对六个相邻图像进行图像插值。但是,该功能必须从图像N°7开始才能正确运行。我尝试使用循环,但返回错误,因为集合长度与函数中的子集不匹配。另一方面,我自己的代码仅返回循环执行的子集中的第一张图像。
var terraCollection = ee.ImageCollection('MODIS/006/MOD10A1').filterBounds(pt).select('NDSI_Snow_Cover').sort('system:time_start', true).filterDate('2015-01-01', '2017-12-30');
var collectionSize = terraCollection.size().getInfo();
print(terraCollection); //356 images
var list= terraCollection.toList(terraCollection.size());
var filteradj = function(image) {
for (var i = 7; i <= collectionSize; i= i+1){
var b0 = ee.Image(list.get(i-0)).select('remapped');
var b1 = ee.Image(list.get(i-1)).select('remapped');
var b2 = ee.Image(list.get(i-2)).select('remapped');
var b3 = ee.Image(list.get(i-3)).select('remapped');
var b4 = ee.Image(list.get(i-4)).select('remapped');
var b5 = ee.Image(list.get(i-5)).select('remapped');
var b6 = ee.Image(list.get(i-6)).select('remapped');
var ft = b0.where(b0.eq(1).and(b1.eq(3)),3)
.where(b0.eq(1).and(b1.eq(2)),2)
.where(b0.eq(1).and(b2.eq(3)),3)
.where(b0.eq(1).and(b2.eq(2)),2)
.where(b0.eq(1).and(b3.eq(3)),3)
.where(b0.eq(1).and(b3.eq(2)),2)
.where(b0.eq(1).and(b4.eq(3)),3)
.where(b0.eq(1).and(b4.eq(2)),2)
.where(b0.eq(1).and(b5.eq(3)),3)
.where(b0.eq(1).and(b5.eq(2)),2)
.where(b0.eq(1).and(b6.eq(3)),3)
.where(b0.eq(1).and(b6.eq(2)),2);
return ft;
}
};
var filter = terraCollection.map(filteradj);
var final=ee.ImageCollection(filter);