在gee中我们经常会使用ee.ImageCollection对某一个时间段的影像进行合成,但是不好看出使用的具体是哪几景影像,为了保证实验的准确性,需要了解具体使用了哪几景影像
分享一下我是如何进行数据查询筛选哒,也可以使用该代码快速查找自己研究区云量少质量好的影像~
//上传矢量文件table可视化显示
var styling = {color:'red',fillColor:'00000000'}//设置显示样式
Map.centerObject(table,11)//设置显示的大小(如果研究区比较小,可以把数值调高)
Map.addLayer(table.style(styling),{},'table')//可视化地理数据
//定义筛选时间
var roi=table
var star_date = '2021-01-01'//定义起始时间
var end_date = '2021-12-31'//定义终止时间
// //landsat5
// function applyScaleFactors(image) {
// var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
// var thermalBand = image.select('ST_B6').multiply(0.00341802).add(149.0);
// return image.addBands(opticalBands, null, true)
// .addBands(thermalBand, null, true);
// }
//var dataset = ee.ImageCollection("LANDSAT/LT05/C02/T1_L2")
// .filterBounds(roi)
// .filterDate(star_date, end_date)//时间过滤
// .filter(ee.Filter.lt("CLOUD_COVER",30)) //云量小于xx%
// .map(applyScaleFactors)
//print(dataset)
// Landsat 8
function applyScaleFactors(image) {
var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
return image.addBands(opticalBands, null, true)
.addBands(thermalBands, null, true);
}
var dataset= ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterBounds(roi)
.filterDate(star_date, end_date)//时间过滤
.filter(ee.Filter.lt("CLOUD_COVER",2))//云量小于xx%
.map(applyScaleFactors)
print(dataset)
var dataset1 = dataset.median()
// //landsat5 显示合成的影像
// Map.addLayer(dataset1.clip(roi), {bands: ['SR_B3', 'SR_B2', 'SR_B1'], min: 0, max: 0.3});
//landsat8 显示合成的影像
Map.addLayer(dataset1.clip(roi), {bands: ['SR_B4', 'SR_B3', 'SR_B1'], min: 0, max: 0.3});
运行后可查看符合筛选条件的的影像有哪些(这里的筛选条件是:云量<2%;2021年全年;研究区)
可以看到,符合条件的影像有4景,时间分别是1月3日、1月19日、2月20日、12月5日
查看符合筛选条件的影像合成结果