我想使用谷歌地球引擎中的LANDSAT/LE07/C01/T1_TOA集合,我正在努力理解bits是如何工作的,以便用云和阴影掩盖区域。我设法写了以下内容,但我不是很有信心,也不知道如何掩盖阴影。
var dataset = ee.ImageCollection('LANDSAT/LE07/C01/T1_TOA')
.filterBounds(geometry)
.map(function(image){return image.clip(geometry)})
.filter(ee.Filter.calendarRange(6,8,'month'))
.filterDate('1999-05-01','2017-09-30');
var qas = function(image) {
var qa = image.select('BQA');
var mask = qa.eq(672);
return image.updateMask(mask).copyProperties(image);
}
var merged = dataset.map(qas);
var addNDVI = function(image) {
var ndvi = image.normalizedDifference(['B4', 'B3']).rename('NDVI');
return image.addBands(ndvi);
};
var ndvi = merged.map(addNDVI);如何正确地使用bits进行质量掩蔽?
发布于 2021-08-13 22:03:47
var cloudMaskL7 = function(image) {
var qa = image.select('BQA');
var cloud = qa.bitwiseAnd(1 << 4)
.and(qa.bitwiseAnd(1 << 6))
.or(qa.bitwiseAnd(1 << 8));
var mask2 = image.mask().reduce(ee.Reducer.min());
return image
.select(['B3', 'B4'], ['Red', 'NIR'])
.updateMask(cloud.not()).updateMask(mask2)
.set('system:time_start', image.get('system:time_start'));
};
var dataset = ee.ImageCollection("LANDSAT/LE07/C01/T1_TOA")
.filterBounds(geometry)
.filterDate('2012-05-01','2017-09-30')
.map(cloudMaskL7)
var NDVIofLANDSAT = function(image) {
var ndvi = image.normalizedDifference(['NIR', 'Red']).rename('NDVI');
return image.addBands(ndvi);
};
var ndviCollection = dataset
.map(NDVIofLANDSAT)
.select("NDVI");
print("Total no of LANDSAT Images ", ndviCollection);
Map.addLayer (ndviCollection.first().select('NDVI').clip(geometry), {min:0, max:1, 'palette': ['red','yellow', 'green']}, 'NDVI')https://stackoverflow.com/questions/68588437
复制相似问题