Я писал функцию для маскировки облачных пикселей данных Sentinel-2.
Функция 1:
function cloudMask(image) {
var qa = image.select('QA60');
var cloudBitMask = 1 << 10; ###
var cirrusBitMask = 1 << 11; ###
var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(
qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
Функция 2:
function cloudMask(image) {
var qa = image.select('QA60');
var cloudBitMask = Math.pow(2, 10); ###
var cirrusBitMask = Math.pow(2, 11); ###
var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(
qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
Какая функция правильная? Разница между двумя функциями заключается в том, как определяются cloudBitMask
и cirrusBitMask
.