Изображение GEE не отображается после применения маски облака на основе диапазона SCL - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в GEE и хочу работать с временными рядами NDVI, но перед этим я хочу предварительно обработать изображения Sentinel-2A, используя маску облака на основе диапазона классификации сцен (SCL).

По этой причине я использовал репозиторий, доступный по адресу https://github.com/fitoprincipe/geetools-code-editor

Код ниже импортирует три типа масок, примените один из них и визуализируйте изображение до и после применения маски.

Мой вопрос заключается в том, что при использовании Mask2 или Mask3 изображение после применения маски не отображается. Тем не менее, Mask1 работает отлично!

Вот ссылка на код в GEE: https://code.earthengine.google.com/429990239fd25488aa9614bc87685385

Пожалуйста, мне нужна ваша помощь, чтобы решить эту проблему.

var cld = require('users/fitoprincipe/geetools:cloud_masks');

var col = ee.ImageCollection('COPERNICUS/S2_SR');
          
var img = ee.ImageCollection('COPERNICUS/S2_SR')
                .filterDate('2018-04-01', '2018-04-30')
                .median().select('TCI_R','TCI_G','TCI_B');
print('img', img);
Map.addLayer(img);                

// Mask useless classes from built-in Scene Classification
var Mask1 = function(image) {
    var masked = cld.sentinel2(['opaque', 'cirrus'])(image)
    return masked
}

var Mask2 = function(image) {
    var masked = cld.sclMask(['cloud_low', 'cloud_medium', 
    'cloud_high', 'cirrus', 'shadow', 'saturated', 'dark',
    'snow'])(image)
    return masked
  }

var Mask3 = function(image) {
    var masked = cld.hollstein_S2(['cloud', 'snow', 'shadow', 'water', 'cirrus'])(image)
    return masked
}

// Apply the mask
var Masked_col = col.map(Mask2);  
var msk_img = Masked_col.filterDate('2018-04-01', '2018-04-30')
                .median().select('TCI_R','TCI_G','TCI_B');
print('masked img', msk_img);
Map.addLayer(msk_img);

this code gives me the following error

...