我是谷歌地球引擎的新用户。我正在尝试删除图像集合的一些图像。下面的示例中是一个示例。我的图像集合有更多图像。
// Load Landsat 8 brightness temperature data for 1 year.
var test = ee.ImageCollection('LANDSAT/LC8_L1T_32DAY_TOA')
.filterDate('2012-12-25', '2016-12-25')
.select('B1');
print(test)
我的图像集合有 45 张图像。为了清楚起见,我将 index1 称为我的第一个图像,将 index45 称为我的最后一个图像,依此类推。如何保留或删除索引 10 到索引 15 和从索引 30 到 index40 的图像。
我尝试使用列表,但捕获元素不起作用。
可以使用以下函数按其元数据筛选集合。
.filterMetadata(name, operator,value)
如果要保留的图像具有相同的值,则可以使用该值。 例如,要按WRS_ROW和WRS_PATH进行筛选,请执行以下操作。
var testFiltered = test.filterMetadata("WRS_ROW","equals",15)
.filterMetadata("WRS_PATH","equals",36)
只需选择最适合您的元数据即可。 最好不要按数字选择,因为那样它们在其他年份就不起作用了。
除了按元数据属性(如 WRS-2 路径和行(进行筛选之外,还可以为集合运行方法.filterBounds(geometry)
,这将生成一个仅包含与几何图形相交的元素的新集合。下面是一个示例:
// Load Landsat 8 TOA data.
var timeFiltered = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
.filterDate('2013-01-01', '2014-01-01');
// define an ee.Geometry to filter by
// San Francisco Lon/Lat
var geom = ee.Geometry.Point([122.4194, 37.7749]);
// filter by a geometry
var spaceTimeFiltered = timeFiltered.filterBounds(geom);
print('Before spatial filtering: ',timeFiltered);
print('After spatial filtering: ',spaceTimeFiltered);
在这种情况下,仅按时间筛选的集合将不会打印,因为它有超过 5000 个元素,但当您按空间和时间筛选时,它会返回 2013 年旧金山的 15 个场景。