Фильтрация изображений из коллекции изображений с высоким процентом облаков (sentinel-2). Это возвращает 0 элементов?

Я запускаю коллекцию изображений через NDWI функция. Я пытаюсь отфильтровать изображения с большим количеством облаков. Страж-2 имеет метаданные 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 объект, который должен возвращать изображения со значениями, которые меньше указанного значения (100) для указанных метаданных (Cloud Pixel Percentage). Я должен вернуть практически все изображения? но я ничего не возвращаю...

могу ли я не бежать ee.Filter.lt на ImageCollection? если да, то используется ли подобная функция для коллекций?

1 ответ

Необходимое свойство метаданных называется 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())
Другие вопросы по тегам