问题描述
我在一段时间内从 GEE 图像集合中创建了一个中值合成。我继续从中值合成中计算集合中每个图像的欧几里德距离,并将它们作为波段添加到集合中的每个图像中。 现在我想根据欧几里德距离带将集合减少到单个图像中。
这是我到目前为止所做的代码:
//要选择的波段
var bands = ['B2','B3','B4','B5','B6','B7','B8','B8A','B11','B12'];
//云遮罩
var maskcloud1 = function(image){
var QA60 = image.select(['QA60']);
var clouds = QA60.bitwiseAnd(1<<10).or(QA60.bitwiseAnd(1<<11));
return image.updateMask(clouds.not());
}
// 过滤后的图片集合
var coll = imageCollection
.filterDate('2018-04-01','2018-12-16')
.filterBounds(aoi)
.map(maskcloud1)
.select(bands).map(function(image){return image.clip(aoi)});
//中值复合
var med = coll.median();
// 计算和附加欧几里得距离的函数
var euclD2 = function(img1,img2){
var dev = (img2.subtract(img1)).pow(2);
var euclidean = dev.reduce(ee.Reducer.sum()).pow(0.5).rename('euclidean');
return img1.addBands(euclidean);
};
// 具有欧几里得距离的新图像集合
var newColl = coll.map(euclD2.bind(null,med));
我想减少“newColl”以返回一个新的图像合成,其中每个像素位置的波段值对应于集合中所有图像的最小欧几里德距离。 请问有什么帮助吗? 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)