Google Earth Engine-填补图像收集中的图像空白

时间:2019-08-01 11:35:53

标签: javascript google-earth-engine

我需要将MODIS Terra和Aqua集合合并到一个新集合中,以便每天获取最大NDSI值。

问题在于,多年来,该数据集存在一些差距,并且join函数仅将两个图像上的公共图像保留在一起。

例如,在2003年,Terra数据集有358张图像,而Aqua数据集有365张图像,合并后的数据集结果只有358张图像。

我希望当Terra图像不可用时,combin函数可以保留Aqua图像值,以便最后获得365张图像。

有什么建议吗?谢谢!

这是代码的GEE链接 https://code.earthengine.google.com/b71873bff48fe5f3de883763f25c4938

这是代码

var MOD = ee.ImageCollection("MODIS/006/MOD10A1")
var MYD = ee.ImageCollection("MODIS/006/MYD10A1")



var ROI = geometry


// MONITORING DATE
var currdate = ee.Date.fromYMD(2004,1,1)
var firstdate = ee.Date.fromYMD(2003,1,1)



Map.centerObject(ROI,5);

var clip = function(img) {return img.clip(ROI);}   

var MOD  = MOD.filterDate(firstdate, currdate)
              .map(clip)
var MYD  = MYD.filterDate(firstdate, currdate)
              .map(clip)
print(MOD,'MOD')
print(MYD,'MYD')



// Combine collections (MOD & MYD)
var Filter = ee.Filter.equals({
  leftField: 'system:time_start',
  rightField: 'system:time_start'
});

var simpleJoin = ee.Join.inner();
var innerJoin = ee.ImageCollection(simpleJoin.apply(MOD, MYD, Filter))

var comb = innerJoin.map(function(feature) {
  return ee.Image.cat(feature.get('primary'), feature.get('secondary'));
})
print(comb,'comb');


// calculate maximum value from the two MODIS images
var max = function(img) {
  var br = img.select('NDSI_Snow_Cover').max(img.select('NDSI_Snow_Cover_1'))
     return br.rename('NDSI')
            .copyProperties(img, ['system:time_start', 'system:time_end']);
}


var NDSImax = comb.map(max)

print(NDSImax,'NDSImax')
// Map.addLayer(NDSImax.first().clip(ROI).select('NDSI'),{min: -9,max: 100,palette: ['red', 'white', 'blue']}, 'NDSImax')

0 个答案:

没有答案