我正在通过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
吗?如果可以,是否有用于收藏的类似功能?
答案 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())