Google Earth Engine(GEE)——容易犯的错误7(JOIN 和Fiter)
【摘要】
JOIN vs 地图过滤器
假设您想根据时间、位置或某些元数据属性加入集合。通常,这是通过连接最有效地完成的。以下示例在 Landsat 8 和 Sentinel-2 集合之间进行时空连接:
var s2 = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(ee.Geome...
JOIN vs 地图过滤器
假设您想根据时间、位置或某些元数据属性加入集合。通常,这是通过连接最有效地完成的。以下示例在 Landsat 8 和 Sentinel-2 集合之间进行时空连接:
var s2 = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(ee.Geometry.Point([-2.0205, 48.647]));
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR');
//两者进行合并保存链接
var joined = ee.Join.saveAll('landsat').apply({
primary: s2,
secondary: l8,
condition: ee.Filter.and(
ee.Filter.maxDifference({//这里影像合并的容许误差在一天内以毫秒计算
difference: 1000 * 60 * 60 * 24, // One day in milliseconds
leftField: 'system:time_start',//链接的方式通过这个属性波段
rightField: 'system:time_start',
}),
ee.Filter.intersects({//两者相交的时候的名称
leftField: '.geo',
rightField: '.geo',
})
)
});
print(joined);
尽管您应该首先尝试连接(Export
如果需要),但有时 a filter()
内的 amap()
也可能有效,尤其是对于非常大的集合。
var s2 = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(ee.Geometry.Point([-2.0205, 48.647]));
var l8 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR');
var mappedFilter = s2.map(function(image) {//这个map比较男鞋,里面主要包含时间,然后时间的筛选和误差,最后返回值的范围和要筛选的返回值大小等等
var date = image.date();
var landsat = l8
.filterBounds(image.geometry())
.filterDate(date.advance(-1, 'day'), date.advance(1, 'day'));//时间的差异
// 在属性中返回具有匹配场景的输入图像。
return image.set({
landsat: landsat,
size: landsat.size()
});
}).filter(ee.Filter.gt('size', 0));
print(mappedFilter);
文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31988139/article/details/119839808
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)