我需要将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')