首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Earth引擎过滤

Google Earth引擎过滤
EN

Stack Overflow用户
提问于 2018-07-28 16:45:53
回答 3查看 1.6K关注 0票数 0

我想在Google Earth Engine中过滤和选择集合中的特定图像。

代码语言:javascript
复制
var l51990 = ee.ImageCollection('LANDSAT/LT5_L1T_TOA')
.filterBounds(table)   
.filterDate('1990-01-01','2013-01-01')  
.sort('CLOUD_COVER');

我想选择从1990年到2013年每年云量最少的图像。

有没有一种干净利落的方法可以做到这一点,而不是一遍又一遍地重复那段代码?

EN

回答 3

Stack Overflow用户

发布于 2018-07-31 00:27:33

您可以使用first()获取图像,或者使用mosaic()获取像素。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 00:35:38

有没有一种干净利落的方法来做到这一点,而不是一遍又一遍地重复那段代码?

是-使用forwhile循环来根据需要多次迭代相同的代码块。在循环中使用变量来确定边界、日期和排序选项(可能还包括lat和long值)

我不会为你写一段有效的代码,但如果你发布自己的代码,我会帮助你的。

票数 0
EN

Stack Overflow用户

发布于 2018-08-22 05:49:03

您应该在映射函数中对您希望获得最少云量图像的年份列表中的每一年进行时间过滤。首先在映射函数外部进行空间过滤,然后执行过滤并获取函数内的第一个图像。这将产生一个图像集合,其中包含您研究区域内每年最少的多云图像。

代码语言:javascript
复制
var years = ee.List.sequence(1990,2013)
var l5 = ee.ImageCollection('LANDSAT/LT5_L1T_TOA').filterBounds(table)

var leastCloudy = ee.ImageCollection(years.map(function(i){
    var t1 = ee.Date.fromYMD(i,1,1)
    var t2 = t1.advance(1,'year')
    return ee.Image(l5.filterDate(t1,t2).sort('CLOUD_COVER').first())
}))

print(leastCloudy)

一旦你有了经过过滤的图像集合,你就可以对其执行任何分析。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51569636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档