我想在Google Earth Engine中过滤和选择集合中的特定图像。
var l51990 = ee.ImageCollection('LANDSAT/LT5_L1T_TOA')
.filterBounds(table)
.filterDate('1990-01-01','2013-01-01')
.sort('CLOUD_COVER');我想选择从1990年到2013年每年云量最少的图像。
有没有一种干净利落的方法可以做到这一点,而不是一遍又一遍地重复那段代码?
发布于 2018-07-31 00:27:33
您可以使用first()获取图像,或者使用mosaic()获取像素。
发布于 2018-07-31 00:35:38
有没有一种干净利落的方法来做到这一点,而不是一遍又一遍地重复那段代码?
是-使用for或while循环来根据需要多次迭代相同的代码块。在循环中使用变量来确定边界、日期和排序选项(可能还包括lat和long值)
我不会为你写一段有效的代码,但如果你发布自己的代码,我会帮助你的。
发布于 2018-08-22 05:49:03
您应该在映射函数中对您希望获得最少云量图像的年份列表中的每一年进行时间过滤。首先在映射函数外部进行空间过滤,然后执行过滤并获取函数内的第一个图像。这将产生一个图像集合,其中包含您研究区域内每年最少的多云图像。
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)一旦你有了经过过滤的图像集合,你就可以对其执行任何分析。
https://stackoverflow.com/questions/51569636
复制相似问题