从图像收集中过滤出具有高云百分比的图像(前哨2)。这返回0个元素?

时间:2019-02-01 02:12:59

标签: google-earth-engine

我正在通过NDWI函数运行图像收集。我正在尝试过滤掉很多云的图像。 Sentinel-2具有metaData CLOUD_PIXEL_PERCENTAGE,我希望可以过滤出小于特定云像素百分比(例如10-20%)的图像。由于某种原因,无论我使用什么值,它都会返回零张图像,因此我必须使用了错误的函数。

var bands = ['B11','B8','B3'];
var collection = ee.ImageCollection('COPERNICUS/S2').select(bands);
var filtered = collection.
filterBounds(geometry4).
filterDate('2017-05-01','2017-12-01');

var filterClouds
=filtered.filter(ee.Filter.lt('CLOUD_PIXEL_PERCENTAGE',100));
print(filterClouds);

我正在使用ee.Filter.lt对象,该对象应返回小于指定metaData(Cloud Pixel Percentage)的指定值(100)的图像。我实际上应该归还所有图像吗?但我什么也没回来...

我不能在ee.Filter.lt上运行ImageCollection吗?如果可以,是否有用于收藏的类似功能?

1 个答案:

答案 0 :(得分:0)

您需要的元数据属性称为CLOUDY_PIXEL_PERCENTAGE,因此您正在过滤不存在​​的条目,该条目不会返回错误,但也不会返回结果。

另外,ImageCollection有一个内置方法,称为filterMetadata,它可以实现与您获得的相同结果,但无需指定ee.Filter

var geometry4 = ee.Geometry.Point(-107.42, 36.63)

var bands = ['B11','B8','B3'];
var collection = ee.ImageCollection('COPERNICUS/S2').select(bands);

var filtered = collection
.filterBounds(geometry4)
.filterDate('2017-05-01','2017-12-01');

var filterClouds = filtered
.filterMetadata('CLOUDY_PIXEL_PERCENTAGE','less_than',50);

// returns 21 results
print(filtered.size())