如何根据位置在谷歌地球引擎中对图像集进行子集?



我是谷歌地球引擎的新用户。我正在尝试删除图像集合的一些图像。下面的示例中是一个示例。我的图像集合有更多图像。

// 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 个场景。

相关内容

  • 没有找到相关文章

最新更新